void Start()
 {
     if (reference != null)
     {
         reference.InstantiateAsync(this.transform);
     }
 }
Beispiel #2
0
 public void InstantiateFromAssetRef()
 {
     if (assetRef != null)
     {
         assetRef.InstantiateAsync(Vector3.right * 6.0f, Quaternion.identity);
     }
 }
Beispiel #3
0
        public async static Task CreatePool(AssetReferenceGameObject reference, PoolingData poolingData)
        {
            if (ContainsReference(reference))
            {
                return;
            }

            var pool = new Pool();

            pool.assetReference = reference;
            var operationHandle = reference.LoadAssetAsync();

            operationHandle.Completed += (op) => pool.loadedAsset = op.Result;
            int spawnCount = poolingData.GetSpawnCountFor(reference);

#if UNITY_EDITOR
            var parent = new GameObject($"{reference.editorAsset.name} - Pool").transform;
#endif
            for (int i = 0; i < spawnCount; i++)
            {
                var opHandle           = reference.InstantiateAsync(Vector3.zero, Quaternion.identity);
                var instantiatedObject = await opHandle.Task;
#if UNITY_EDITOR
                instantiatedObject.name = $"{reference.editorAsset.name} - {Guid.NewGuid()}";
#endif
                pool.ObjectList.Add(instantiatedObject);
#if UNITY_EDITOR
                instantiatedObject.transform.SetParent(parent);
#endif
                instantiatedObject.SetActive(false);
            }

            pools[reference.RuntimeKey] = pool;
        }
Beispiel #4
0
        internal AssetReferenceGameObjectTracker(AssetReferenceGameObject _reference, AssetReferenceGameObjectTrackerCallbackDelegate _callback, Transform _parent)
        {
            handle = _reference.InstantiateAsync(_parent);

            loadingTrackers.Add(handle, new Pair(this, _callback));
            handle.Completed += OnCompleted;
        }
Beispiel #5
0
        public static GameObject Instantiate(AssetReferenceGameObject reference, Transform parent = null, bool instantiateInWorldSpace = false)
        {
#if UNITY_OBJECTPOOLING_ADDRESSABLES_MANAGER
            var obj = AddressablesManager.InstantiateSync(reference, parent, instantiateInWorldSpace);
#else
            var handle = reference.InstantiateAsync(parent, instantiateInWorldSpace);
            var obj    = handle.WaitForCompletion();
#endif
            return(obj);
        }
Beispiel #6
0
        public static void GetScreen(string name, System.Action <GameObject> onComplete)
        {
            AssetReferenceGameObject a = null;

            UIScreenReference[] s = instance.uiScreens.screens;
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i].name == name)
                {
                    a = s[i].asset;
                    break;
                }
            }

            a.InstantiateAsync(instance.transform).Completed += (asyncOperationHandle) =>
            {
                GameObject screen = asyncOperationHandle.Result;
                Canvas     canvas = screen.GetComponent <Canvas>();
                canvas.renderMode  = RenderMode.ScreenSpaceCamera;
                canvas.worldCamera = instance.uiCam;

                onComplete?.Invoke(asyncOperationHandle.Result);
            };
        }
 void Start()
 {
     refObject.InstantiateAsync(Vector3.zero, Quaternion.identity, null).Completed += OnAssetInstantiated;
 }