コード例 #1
0
 private SpriteLoadingHandle(AssetInstance asset, SpriteAssetAssignment assignment, string path)
 {
     m_asset                  = asset;
     m_path                   = path;
     m_assignment             = new WeakReference <SpriteAssetAssignment>(assignment);
     m_asset.OnStatusChanged += OnAssetStatusChanged;
 }
コード例 #2
0
 private static void TryApplySprite(SpriteAssetAssignment assignment, AssetInstance spriteAsset)
 {
     if (spriteAsset.Status == AssetRefObject.AssetStatus.DONE)
     {
         spriteAsset.IncRef();
         assignment.Apply(spriteAsset.UnityObject as Sprite);
     }
 }
コード例 #3
0
 public void OnAssetUnloaded(AssetInstance asset)
 {
     lock ( m_loadedAssets ) {
         var index = m_loadedAssets.IndexOf(asset);
         if (index == -1)
         {
             return;
         }
         m_loadedAssets.RemoveSwapAt(index);
     }
 }
コード例 #4
0
        public void Execute(Type typ)
        {
            var hashCode = AssetInstance.GenerateHash(Location);

            Asset = Container.TryGetAsset(hashCode) as AssetInstance;
            if (Asset == null)
            {
                Asset = typ == typeof(GameObject) ? new PrefabAssetInstance(Location) : new AssetInstance(Location);
            }
            else if (Asset.IsFinished)
            {
                var service = CSharpServiceManager.Get <GlobalCoroutineRunnerService>(CSharpServiceManager.ServiceType.COROUTINE_SERVICE);
                service.StartCoroutine(AsyncLoadedAssetCallback());
                return;
            }

            Asset.OnStatusChanged += OnAssetReady;
            if (Asset.Status == AssetRefObject.AssetStatus.ASYNC_LOADING)
            {
                return;
            }
            Asset.Status = AssetRefObject.AssetStatus.ASYNC_LOADING;
            Provider.ProvideAsync(this, typ);
        }
コード例 #5
0
 public void OnAssetLoaded(AssetInstance asset)
 {
     lock ( m_loadedAssets ) {
         m_loadedAssets.Add(asset);
     }
 }
コード例 #6
0
 public static SpriteLoadingHandle Create(SpriteAssetAssignment assignment, AssetInstance asset, string path)
 {
     return(new SpriteLoadingHandle(asset, assignment, path));
 }