C# 如何使用Vector3方向声明枚举?
在W3中的一个示例中,我看到可以为枚举指定自定义值,如下所示: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
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)
,然后按类型名称访问。