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