簡體   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