统一C#从另一个类的run方法

时间:2014-04-21 14:30:37

标签: c# unity3d

我想在另一个类的类中运行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);
}
}

当我运行我的代码时,我发现了一个错误的“NullReferenceException:对象引用未设置为对象的实例”,它指向newscore.updateScoreBy(+1); 我该如何解决?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

取决于你想要做什么,你可以使函数静态像:

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

并将其命名为:

NewScore.updateScoreBy(1);

答案 2 :(得分:0)

你没有初始化新闻核心。

更改你的NewPlus类,这样它将在构造时初始化新闻核心。

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