问题:
当我们使用Destroy删除物件的时候, 如果后续有代码继续访问此物件, 那么会出现异常. 还有我们的对象池, 当我们把物件A放回到池里, 但是此时F函数又来访问这个物件.
解决方案:
对物件进行封装, 外部访问时不直接操作物件, 而通过接口调用, 删除或放回池里时, 断开该引用即可
using UnityEngine;
using System.Collections.Generic;
public class MyGameObject
{
//缓存池//
private static Queue<GameObject> m_map = new Queue<GameObject>();
private static GameObject m_root;
//创建一个节点//
public static MyGameObject Create(MyGameObject parent, string name)
{
GameObject obj;
if (m_map.Count > 0)
obj = m_map.Dequeue();
else
obj = new GameObject();
obj.name = name;
if (parent != null && parent.IsExist())
obj.transform.parent = parent.gameObject.transform;
else
obj.transform.par