为什么只输出法师?

时间:2018-06-07 18:42:25

标签: c# unityscript

即使选择了“战士”,也只给予“法师”。我似乎不知道为什么。有没有人有想法?

    void OnGUI(){
    isMageClass = GUILayout.Toggle(isMageClass, "Mage Class");
    isWarriorClass = GUILayout.Toggle(isWarriorClass, "Warrior Class");
    if(GUILayout.Button("Create")){
        if(isMageClass)
        {
            newPlayer.PlayerClass = new BaseMageClass();
        }else if (isWarriorClass)
        {
            newPlayer.PlayerClass = new BaseWarriorClass();
        }
        newPlayer.PlayerLevel = 1;
        newPlayer.Stamina = newPlayer.PlayerClass.Stamina;
        newPlayer.Endurance = newPlayer.PlayerClass.Endurance;
        newPlayer.Intellect = newPlayer.PlayerClass.Intellect;
        newPlayer.Strength = newPlayer.PlayerClass.Strength;

        Debug.Log("player Class: " + newPlayer.PlayerClass.CharacterClassName);
        Debug.Log("player level: " + newPlayer.PlayerLevel);
        Debug.Log("player Stamina: " + newPlayer.Stamina);
        Debug.Log("player Endurance: " + newPlayer.Endurance);
        Debug.Log("player Intellect: " + newPlayer.Intellect);
        Debug.Log("player Strength: " + newPlayer.Strength);
    }
}

1 个答案:

答案 0 :(得分:0)

由于'isMageClass'已定义,因此将采用

    if(isMageClass)
    {
        newPlayer.PlayerClass = new BaseMageClass();
    }

每一次,甚至从未看过

    else if (isWarriorClass)
    {
        newPlayer.PlayerClass = new BaseWarriorClass();
    }

我很惊讶你在使用调试器时没有发现它(请告诉我你使用调试器......请!)