Exemplo n.º 1
0
        private IEnumerator LoadResourceEnumerator(Func <GameObject, Component> getTarget, byte?initialPopulateOverride)
        {
            if (IsResourceLoaded)
            {
                yield break;
            }
            var operation = targetReference.LoadAssetAsync <GameObject>();

            yield return(operation);

            if (operation.Status != AsyncOperationStatus.Succeeded)
            {
                Debug.LogErrorFormat(this, $"Failed to load {targetReference}.");
                yield break;
            }

            Pool = GetPool(getTarget(operation.Result));

            if (initialPopulateOverride.HasValue)
            {
                Pool.AddToPool(initialPopulateOverride.Value);
            }
            else if (initialPopulate > 0)
            {
                Pool.AddToPool(initialPopulate);
            }
        }
Exemplo n.º 2
0
        private IEnumerator LoadResourceEnumerator(Func <GameObject, Component> getTarget, byte?initialPopulateOverride)
        {
            if (IsResourceLoaded)
            {
                yield break;
            }

            var resourceRequest = Resources.LoadAsync <GameObject>(address);

            yield return(resourceRequest);

            Pool = GetPool(getTarget((GameObject)resourceRequest.asset));

            if (initialPopulateOverride.HasValue)
            {
                Pool.AddToPool(initialPopulateOverride.Value);
            }
            else if (initialPopulate > 0)
            {
                Pool.AddToPool(initialPopulate);
            }
        }
Exemplo n.º 3
0
        public override void LoadResource(Func <GameObject, Component> getTarget = null, byte?initialPopulateOverride = null)
        {
            if (IsResourceLoaded)
            {
                return;
            }

            if (getTarget == null)
            {
                getTarget = go => go.transform;
            }

            Pool = GetPool(getTarget(targetPrefab));

            if (initialPopulateOverride.HasValue)
            {
                Pool.AddToPool(initialPopulateOverride.Value);
            }
            else if (initialPopulate > 0)
            {
                Pool.AddToPool(initialPopulate);
            }
        }