原来的代码:
生成实例化对象:
private void PlateCounter_OnPlateSpawned(object sender, System.EventArgs e) {
Transform plateVisualTransform = Instantiate(plateVisualPrefab, counterTopPoint);
float plateOffsetY = 0.1f;
plateVisualTransform.localPosition = new Vector3(0, plateOffsetY * plateVisualGameObjectList.Count, 0);
plateVisualGameObjectList.Add(plateVisualPrefab.gameObject);
}
删除实例化对象:
private void PlateCounter_OnPlateRemoved(object sender, System.EventArgs e) {
if(plateVisualGameObjectList.Count > 0) {
GameObject plateGameObject = plateVisualGameObjectList[plateVisualGameObjectList.Count - 1];
plateVisualGameObjectList.Remove(plateGameObject);
Destroy(plateGameObject);
}
}
错误原因:
在加入对象列表时候的代码:加入的是plateVisualPrefab.gameObject, 为资源文件的gameObject,不允许删除
plateVisualGameObjectList.Add(plateVisualPrefab.gameObject);
修改为:
plateVisualGameObjectList.Add(plateVisualTransform.gameObject);
加入的为实例化对象的gameObject,可以顺利删除