繁体   English   中英

如何通过枚举设置 Vector3 方向?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM