C# 为不同游戏对象/类之间的冲突检测类型/枚举

C# 为不同游戏对象/类之间的冲突检测类型/枚举,c#,enums,C#,Enums,我正在尝试制作一个碰撞检测系统,通过检查与之碰撞的游戏对象的类型,每个游戏对象对其他游戏对象的反应不同 我不断得到: “Rat”是一个“类型”,但与“变量”一样使用 这是我用来检测什么类型的对象发生碰撞的代码,并决定当一个对象与另一个特定类型的对象发生碰撞时应该做什么: switch (other.Type) { case Rat: float tooClose = (Radius * 2) - distance.Length(); distance.No

我正在尝试制作一个碰撞检测系统,通过检查与之碰撞的游戏对象的类型,每个游戏对象对其他游戏对象的反应不同

我不断得到:

“Rat”是一个“类型”,但与“变量”一样使用

这是我用来检测什么类型的对象发生碰撞的代码,并决定当一个对象与另一个特定类型的对象发生碰撞时应该做什么:

switch (other.Type) {
    case Rat:
        float tooClose = (Radius * 2) - distance.Length();
        distance.Normalize();

        PositionAfterCollisions += distance * tooClose * 0.5f;
        VelocityAfterCollisions = -Velocity;
}
“其他”
是对冲突列表中游戏对象的引用

这是从类/GameObjectI的顶部开始的,我试图确定它继承自的类:

public enum ObjectType
{
    Default,
    Player,
    Rat,
    Cheese,
    Trap,
    Home
}
public ObjectType Type = ObjectType.Rat;
在C#中,枚举总是按名称限定

你需要

case ObjectType.Rat:

现在我得到了这个错误:控件不能从一个case标签('case2:')掉到另一个case标签