Unity マルチプレイヤーでは、シーンがロードされた後にプレイヤー プレハブがスポーンします。必要なスクリプトを宣言し、NullReferenceException エラーを回避する最善の方法は何ですか?
質問する
297 次
2 に答える
0
プレハブがいつ生成されたかをスクリプトが探せるようにする代わりに、プレハブがスクリプトに生成されたことを知らせないのはなぜですか?
ユースケースが指定されていない場合、例を挙げるのは非常に困難です。
非常に基本的な例 (ネットワークに使用するので、クライアントを信頼しすぎないように、これを何度もやり直す必要があるかもしれません):
class ScriptA : Monobehaviour () {
List<GameObject> prefabs;
public void AddPrefab (GameObject Prefab) {
prefabs.Add (Prefab)
}
}
class Prefab : Monobehaviour () {
void Start () {
FindObjectOfType(ScriptA).AddPrefab(gameObject);
}
}
これは最良の例ではありませんが、ポイントは、アーキテクチャを再考する必要があるかもしれないということです
于 2016-08-07T00:24:46.463 に答える
0
私自身、マルチプレイヤーにはあまり詳しくありませんが、これは GameObject.Find("") と GetComponent を介して実行できると思います。私もFindObjectOfTypeに出くわしました。それがあなたが探しているものかどうかはわかりませんが、投稿しても問題ありません。幸運を。
于 2016-08-06T09:29:02.843 に答える