unity C#从另一个类运行方法

本文关键字:运行 方法 另一个 unity | 更新日期: 2023-09-27 17:59:16

我想在另一个类的类中运行metod,并且它们都被附加到不同的obj

两个班。第一种是:

public class NewScore: MonoBehaviour {
public void updateScoreBy( int intr) {
    Debug.Log("intr+4"+intr+4);
}
}

第二种是:

public class NewPlus: MonoBehaviour {
    public NewScore newscore;
public void OnTriggerEnter2D(Collider2D obj) {
    newscore.updateScoreBy(+1);
}
}

当我运行代码时,我收到一个arror"NullReferenceException:对象引用未设置为对象实例",它指向newscore.updateScoreBy(+1);我该怎么修?

unity C#从另一个类运行方法

您需要初始化public NewScore newscore;:在Inspector面板中拖放包含该脚本的对象

根据您想要做的事情,您可以将函数设置为静态的,如:

public static void updateScoreBy(int intr)
{
    Debug.Log("intr+4"+intr+4);
}

并称之为:

NewScore.updateScoreBy(1);

您没有初始化newscore。

像这样更改NewPlus类,使其在构造时初始化newscore。

public class NewPlus: MonoBehaviour {
  public NewScore newscore;
  public NewPlus(){
    newscore=NewScore();
  }
  public void OnTriggerEnter2D(Collider2D obj) {
    newscore.updateScoreBy(+1);
  }
}