类,结构或接口成员声明中的意外符号`='

gre*_*ace 0 c# unity-game-engine

我收到以下代码的上述错误:

public class Sheep : Animal {
    //hpMax = 100;
    //power = 10;
    //defense = 10;
    //speed = 10;
    animalName = "Sheep Test";

    public override void Attack()
    {
        Debug.Log(animalName);
    }

}
Run Code Online (Sandbox Code Playgroud)

似乎我无法在方法之外分配变量.是这样的吗?这意味着我必须创建一个"AssignStats()"方法来分配HPMax,电源,防御,速度等.我认为可能很清楚为什么我要避免每次调用时都将这个添加的步骤添加到代码中动物对象.

还是我错过了一些明显的东西?

T M*_*own 5

您缺少animalName属性的类型声明.

如果animalName在基类中声明为受保护变量,则可以animalName在构造函数中设置如下:

public Sheep() : base(){
   animalName = "Sheep Test";
}
Run Code Online (Sandbox Code Playgroud)

这假定Animal类定义类似于:

public class Animal{
   protected string animalName;  //protected allows descendent classes 
                                 //direct access to the var.
}
Run Code Online (Sandbox Code Playgroud)