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

            clone.OnDestroyAsObservable().Subscribe(_ => assetRef.Release());
            return(clone);
        }
Esempio n. 2
0
    void OnGUI()
    {
        bundleName = GUI.TextField(new Rect(0, 0, 256, 32), bundleName);
        assetName = GUI.TextField(new Rect(256, 0, 256, 32), assetName);
        if (GUI.Button(new Rect(512, 0, 64, 32), "Load"))
        {
            BundleReader.GetInstance().AsyncLoad(bundleName, assetName, delegate(AssetRef ar)
            {
                if(ar!=null)
                {
                    go = GameObject.Instantiate(ar.asset) as GameObject ;
                    this.ar = ar;
                }
                else
                {
                    Debug.LogWarning("Load fail");
                }
            });
        }

        if (GUI.Button(new Rect(576, 0, 64, 32), "Delete"))
        {
            if(go != null)
            {
                GameObject.Destroy(go);
                ar.Release();
                go = null;
                ar = null;
            }
        }

        if (GUI.Button(new Rect(0, 64, 64, 32), "Print"))
        {
            BundleReader.GetInstance().PrintBundles();
        }
    }
Esempio n. 3
0
 public void Release(AssetRef assetRef)
 {
     assetRef.Release();
 }