コード例 #1
0
ファイル: KVResourceMgr.cs プロジェクト: yuka800/XRUFramework
    public GameObject InstantiateObject(string path, KVResourceLoader loader, Transform parent)
    {
        if (loader.CheckValid())
        {
            var obj = loader.asset as GameObject;
            if (obj)
            {
                GameObject        gameObject        = Instantiate(obj, parent);
                KVResourceTracker kvResourceTracker = gameObject.AddComponent <KVResourceTracker>();
                kvResourceTracker.key          = path;
                kvResourceTracker.OnDestroyed += OnDestroyTracker;


                List <Object> objList;
                if (!_instantiateObjs.TryGetValue(path, out objList))
                {
                    objList = new List <Object>();
                    _instantiateObjs.Add(path, objList);
                }
                objList.Add(gameObject.gameObject);
                return(gameObject);
            }
        }

        Debug.LogError($"loader({loader.assetPath}) can not Instantiate");
        return(null);
    }
コード例 #2
0
ファイル: KVResourceMgr.cs プロジェクト: yuka800/XRUFramework
    void OnDestroyTracker(KVResourceTracker tracker)
    {
        List <Object> list;

        if (_instantiateObjs.TryGetValue(tracker.key, out list))
        {
            list.Remove(tracker.gameObject);
        }
        else
        {
            Debug.LogError($"OnDestroyTracker({tracker.key}) not found objects");
        }
    }