我想更改与我的对象playerPawn
关联的预制件。我试着用这段代码来做:
int i = 0;
PrefabUtility.DisconnectPrefabInstance(this.playerPawn);
PrefabUtility.ConnectGameObjectToPrefab (this.playerPawn, this.playerPawnPrefabs [i]);
Debug.Log(this.playerPawnPrefabs[i]);
PrefabUtility.ResetToPrefabState(this.playerPawn);
但是,最后一行是抛出此错误:
MissingReferenceException:类型' GameObject'的对象一直都是 被摧毁但你还在试图访问它。你的脚本应该 要么检查它是否为空,否则你不应该销毁该对象。
Debug.Log()
告诉我this.playerPawnPrefabs[i]
包含我期待的GameObject,所以我不明白错误的来源。
答案 0 :(得分:1)
也许您可以尝试将ConnectGameObjectToPrefab方法的返回重新分配给您的playerPawn对象:
this.playerPawn = PrefabUtility.ConnectGameObjectToPrefab (this.playerPawn, this.playerPawnPrefabs [i]);
然后你可以调用ResetToPrefabState方法。