在Unity多人游戏中,播放器预制在场景加载后产生,声明所需脚本的最佳方法是什么,并避免出现NullReferenceException错误?
答案 0 :(得分:0)
我自己并不熟悉多人游戏,但我相信这可以通过GameObject.Find(“”)和GetComponent来完成。 我偶然发现了FindObjectOfType。我不确定这是不是你要找的东西,但发布它并没有坏处。祝你好运。
答案 1 :(得分:0)
当预制件产生时,为什么不让预制件告诉它产生的脚本,而不是让脚本查找?
当未指定用例时,很难给出任何类型的示例。
真的是基本的例子(因为你要将它用于网络,你可能需要重做很多,所以你不要太信任客户端):
class ScriptA : Monobehaviour () {
List<GameObject> prefabs;
public void AddPrefab (GameObject Prefab) {
prefabs.Add (Prefab)
}
}
class Prefab : Monobehaviour () {
void Start () {
FindObjectOfType(ScriptA).AddPrefab(gameObject);
}
}
这不是最好的例子,但重点是,您可能需要重新考虑架构