C#中的访问变量

Ghe*_*sca -5 c# variables unity-game-engine

我有一个我想解决的问题.我有两节课

public class Class1
{
   [ReadOnly] public int Selector
   private void Start()
   {
      Selector = Random.Range(0, 4);
      Debug.Log("Selectorul " + selector);
   }
}

public class Class2
{
   private Class1 sp;
   private void Start()
   {
       Debug.log(sp.Selector);
   }
}
Run Code Online (Sandbox Code Playgroud)

我是初学者,我想了解为什么当我启动Unity第二个类时,选择器总是0?也许我不对!救命!!!

Ian*_* H. 5

看起来你正在使用Unity.

在Unity中,Start只有在类派生时才会调用脚本的方法MonoBehaviour,而目前这不是.

只需更换即可解决此问题

class Class1
Run Code Online (Sandbox Code Playgroud)

class Class1 : MonoBehaviour
Run Code Online (Sandbox Code Playgroud)

现在,如果将脚本拖到GameObject上,应调用该Start方法Class1.

  • 或者,如果您不想从MonoBehaviour派生,请使用构造函数,并使用`new`关键字创建一个新实例. (3认同)