Sheep继承自Animal类。以下应该调用Sheep的Attack()方法,它是一个显示animalName变量的Debug.Log()。相反,Unity什么也没显示。
如果我将animalName的声明移动到Attack()方法中,它可以工作,但由于某种原因,如果它位于类本身而不是被调用的方法中,它就不会分配animalName。 / p>
public class Test : MonoBehaviour {
public Animal Animal;
void Update () {
Animal.Attack();
}
}
这是Animal对象无法正常工作。
public class Sheep : Animal {
string animalName = "wot";
public override void Attack()
{
Debug.Log(animalName);
}
}
以下是羊继承的动物类:
public abstract class Animal : MonoBehaviour {
public int hpMax;
public int power;
public int defense;
public int speed;
public string animalName ;
abstract public void Attack();
}
答案 0 :(得分:1)
尝试更改Sheep
课程,使其如下所示:
public class Sheep : Animal {
public Sheep()
{
animalName = "wot";
}
public override void Attack()
{
Debug.Log(animalName);
}
}