C# 如何使用Vector3方向声明枚举?

C# 如何使用Vector3方向声明枚举?,c#,unity3d,optimization,vector,enums,C#,Unity3d,Optimization,Vector,Enums,在W3中的一个示例中,我看到可以为枚举指定自定义值,如下所示: enum Months { January, // 0 February, // 1 March=6, // 6 April, // 7 May, // 8 June, // 9 July // 10 } public enum Directions { BOTTOM = new Vector3Int(0, -1, 0), L

在W3中的一个示例中,我看到可以为枚举指定自定义值,如下所示:

enum Months
{
  January,    // 0
  February,   // 1
  March=6,    // 6
  April,      // 7
  May,        // 8
  June,       // 9
  July        // 10
}
public enum Directions
{
   BOTTOM = new Vector3Int(0, -1, 0),
   LEFT = new Vector3Int(-1, 0, 0), 
   TOP = new Vector3Int(0, 1, 0), 
   RIGHT = new Vector3Int(1, 0, 0) 
}
在我的游戏中,我经常需要检查某个位置的邻居(上、下、左、右),因此我制作了以下阵列:

Vector3Int[] neighborOffsets =
        {
            new Vector3Int(0, -1, 0), // Bottom
            new Vector3Int(-1, 0, 0), // Left 
            new Vector3Int(0, 1, 0), // Top
            new Vector3Int(1, 0, 0) // Right
        };
然而,如果我需要一个特定的已知值,我必须记住通过它的索引访问哪个位置。因此,如果我明确需要顶部方向,我必须写:
neighborofsets[2]

有没有更简单的方法来处理枚举?大概是这样的:

enum Months
{
  January,    // 0
  February,   // 1
  March=6,    // 6
  April,      // 7
  May,        // 8
  June,       // 9
  July        // 10
}
public enum Directions
{
   BOTTOM = new Vector3Int(0, -1, 0),
   LEFT = new Vector3Int(-1, 0, 0), 
   TOP = new Vector3Int(0, 1, 0), 
   RIGHT = new Vector3Int(1, 0, 0) 
}

因此,如果我需要向上的方向,我只需要写方向。顶部?

由@Charleh在评论中回答:


这已经存在于统一中:所以只要复制它;这就是你想要的语法吗?使用静态属性,例如,
publicstaticvector3int-bottom=newvector3int(0,-1,0)
,然后按类型名称访问。

unity中已经存在此属性:所以只需复制它;这就是你想要的语法吗?使用静态属性,例如,
publicstaticvector3int-bottom=newvector3int(0,-1,0)
,然后按类型名称访问。