[英]How to set Vector3 direction via an enum?
摘要:我想在脚本中设置vector3的方向。 该脚本用于传送带。 我希望能够 select 传送带的走向。
问题:我似乎无法弄清楚如何从枚举中设置 vector3。 下面是包含我想用枚举更改的 vector3 的行。 '''
rBody.position += Vector3.up * speed * Time.fixedDeltaTime;
这是枚举。
public enum direction {up, down, left, right, forward, backward};
public direction moveDirection;
使用一个简单的switch - case
Vector3 dir;
switch(moveDirection)
{
case direction.up:
dir = Vector3.up;
break;
case direction.down:
dir = Vector3.down;
break;
case direction.right:
dir = Vector3.right;
break;
case direction.left:
dir = Vector3.left;
break;
case direction.forward:
dir = Vector3.forward;
break;
case direction.back:
dir = Vector3.back;
break;
default:
throw new InvalidEnumArgumentException();
}
rBody.position += dir * speed * Time.fixedDeltaTime;
或者马上把它变成字典
private Dictionary<direction, Vector3> directionToVector = new Dictionary<direction, Vector3>
{
{direction.up, Vector3.up},
{direction.down, Vector3.down},
{direction.right, Vector3.right},
{direction.left, Vector3.left},
{direction.forward, Vector3.forward},
{direction.back, Vector3.back}
}
然后像这样简单地使用它
var dir = directionToVector [moveDirection];
rBody.position += dir * speed * Time.fixedDeltaTime;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.