更改预制对象与Unity相关联

时间:2017-01-17 14:35:18

标签: c# unity3d

我想更改与我的对象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,所以我不明白错误的来源。

1 个答案:

答案 0 :(得分:1)

也许您可以尝试将ConnectGameObjectToPrefab方法的返回重新分配给您的playerPawn对象:

this.playerPawn = PrefabUtility.ConnectGameObjectToPrefab (this.playerPawn, this.playerPawnPrefabs [i]);

然后你可以调用ResetToPrefabState方法。