Beispiel #1
0
        public GameObject Instantiate(AssetRef assetRef)
        {
            assetRef.Refrence();
            var clone = UnityEngine.Object.Instantiate(assetRef.Get <GameObject>());

            clone.OnDestroyAsObservable().Subscribe(_ => assetRef.Release());
            return(clone);
        }
Beispiel #2
0
        protected void CacheAssetRef(AssetRef assetRef)
        {
            var hashCode = assetRef.Get().GetHashCode();

            if (pathMap.ContainsKey(assetRef.path))
            {
                Log.Resource.E("{0} has already cached in pathMap", assetRef.path);
                return;
            }

            pathMap.Add(assetRef.path, hashCode);
            if (assetMap.ContainsKey(hashCode))
            {
                Log.Resource.E("{0} has already cached in assetMap", assetRef.path);
                return;
            }

            Log.Resource.I("CacheAssetRef {0}", assetRef.path);
            assetMap.Add(hashCode, assetRef);
        }