我正在尝试建立一个碰撞检测系统,其中每个游戏对象通过检查与之碰撞的游戏对象的类型来对其他游戏对象作出不同的反应。
我一直在:
'鼠'是'类型',但用作'变量'。
这是我用来检测哪种物体碰撞并决定当物体与某种类型的物体发生碰撞时该怎么做的代码:
switch (other.Type) {
case Rat:
float tooClose = (Radius * 2) - distance.Length();
distance.Normalize();
PositionAfterCollisions += distance * tooClose * 0.5f;
VelocityAfterCollisions = -Velocity;
}
'other'
这里是对碰撞列表中游戏对象的引用。
这是从类的顶端/ GameObjectI我试图识别它继承的类:
public enum ObjectType
{
Default,
Player,
Rat,
Cheese,
Trap,
Home
}
public ObjectType Type = ObjectType.Rat;
答案 0 :(得分:2)
在C#中,枚举始终按名称限定。
你需要
case ObjectType.Rat: