Beispiel #1
0
    void Start()
    {
        coinCountUI = GameObject.FindGameObjectWithTag("CoinCount").GetComponent <Text>();
        rockCountUI = GameObject.FindGameObjectWithTag("RockCount").GetComponent <Text>();

        rigidBody = GetComponent <Rigidbody2D>();
        limit     = 0.8f;
        speed     = 5f;
        rockCount = 0;
        coinCount = 0;
        UpdateRockCountUI();

        light = transform.GetChild(0).gameObject;
        UpdateCoinCountUI();

        if (GameObjectPoolController.AddEntry(PoolKey, prefab, 10, 15))
        {
            Debug.Log("Pre-populating pool");
        }
        else
        {
            Debug.Log("Pool already configured");
        }

        //running = GetComponent<AudioSource>();

        //anim = GetComponent<Animator>();
    }
    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 100, 30), "Scene 1"))
        {
            ChangeLevel(0);
        }

        if (GUI.Button(new Rect(10, 50, 100, 30), "Scene 2"))
        {
            ChangeLevel(1);
        }

        if (GUI.Button(new Rect(10, 90, 100, 30), "Dequeue"))
        {
            Poolable obj = GameObjectPoolController.Dequeue(PoolKey);
            float    x   = Random.Range(-10, 10);
            float    y   = Random.Range(0, 5);
            float    z   = Random.Range(0, 10);
            obj.transform.localPosition = new Vector3(x, y, z);
            obj.gameObject.SetActive(true);
            instances.Add(obj);
        }

        if (GUI.Button(new Rect(10, 130, 100, 30), "Enqueue"))
        {
            if (instances.Count > 0)
            {
                Poolable obj = instances[0];
                instances.RemoveAt(0);
                GameObjectPoolController.Enqueue(obj);
            }
        }
    }
    static void CreateSharedInstance()
    {
        GameObject obj = new GameObject("GameObject Pool Controller");

        DontDestroyOnLoad(obj);
        instance = obj.AddComponent <GameObjectPoolController>();
    }
    void Start()
    {
        GameObjectPoolController.AddEntry(EntryPoolKey, entryPrefab, MenuCount, int.MaxValue);

        panel.SetPosition(HideKey, false);
        canvas.SetActive(false);
    }
Beispiel #5
0
        public virtual Poolable Dequeue()
        {
            Poolable item = GameObjectPoolController.Dequeue(key);

            didDequeue?.Invoke(item);
            return(item);
        }
 public void DeactivateMoveRangeIndicators()
 {
     while (ActiveMoveRangeObjects.Count != 0)
     {
         GameObjectPoolController.Enqueue(ActiveMoveRangeObjects.Pop());
     }
 }
Beispiel #7
0
    public virtual Poolable Dequeue()
    {
        var item = GameObjectPoolController.Dequeue(Key);

        DidDequeue?.Invoke(item);
        return(item);
    }
 void ReleaseInstances()
 {
     for (int i = instances.Count - 1; i >= 0; --i)
     {
         GameObjectPoolController.Enqueue(instances[i]);
     }
     instances.Clear();
 }
Beispiel #9
0
 public virtual void Enqueue(Poolable item)
 {
     if (willEnqueue != null)
     {
         willEnqueue(item);
     }
     GameObjectPoolController.Enqueue(item);
 }
Beispiel #10
0
 public void Register()
 {
     if (string.IsNullOrEmpty(key))
     {
         key = prefab.name;
     }
     GameObjectPoolController.AddEntry(key, prefab, prepopulate, maxCount);
     isRegistered = true;
 }
Beispiel #11
0
 public void Register()
 {
     if (string.IsNullOrEmpty(Key))
     {
         Key = Prefab.name;
     }
     GameObjectPoolController.AddEntry(Key, Prefab, PrepopulateAmt, MaxCount);
     IsRegistered = true;
 }
Beispiel #12
0
    public virtual Poolable Dequeue()
    {
        Poolable item = GameObjectPoolController.Dequeue(key);

        if (didDequeue != null)
        {
            didDequeue(item);
        }
        return(item);
    }
    StatusIndicatorEntry Dequeue(StatPanel panel)
    {
        Poolable             p     = GameObjectPoolController.Dequeue(EntryPoolKey);
        StatusIndicatorEntry entry = p.GetComponent <StatusIndicatorEntry>();

        entry.transform.SetParent(panel.statusParent.transform, false);
        entry.transform.localScale = Vector3.one;
        entry.gameObject.SetActive(true);
        return(entry);
    }
    private void Start()
    {
        MouseoverHighlightPrefab = Instantiate(MouseoverHighlightPrefab);

        GameObjectPoolController.AddEntry(
            PoolKey,
            MoveRangeHighlightPrefab,
            PoolPrePopulation,
            PoolMax);
    }
 public void ActivateMoveRangeIndicators(List <Point> points)
 {
     foreach (Point point in points)
     {
         Poolable obj = GameObjectPoolController.Dequeue(PoolKey);
         obj.transform.position = point.ToWorldPoint();
         obj.gameObject.SetActive(true);
         ActiveMoveRangeObjects.Push(obj);
     }
 }
Beispiel #16
0
 public void PlayGame()
 {
     foreach (PartyEntry entry in partyEntries)
     {
         entry.transform.SetParent(null, true);
         DontDestroyOnLoad(entry.gameObject);
     }
     GameObjectPoolController.ClearEntry(DemoUnitKey);
     SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
 }
Beispiel #17
0
    PartyEntry Dequeue()
    {
        Poolable   p     = GameObjectPoolController.Dequeue(DemoUnitKey);
        PartyEntry entry = p.GetComponent <PartyEntry>();

        entry.transform.SetParent(panel.transform, false);
        entry.transform.localScale = Vector3.one;
        entry.gameObject.SetActive(true);
        return(entry);
    }
Beispiel #18
0
    AbilityBarSlot Dequeue()
    {
        Poolable       p     = GameObjectPoolController.Dequeue(EntryPoolKey);
        AbilityBarSlot entry = p.GetComponent <AbilityBarSlot>();

        entry.transform.SetParent(spellContainer.transform, false);
        entry.transform.localScale = Vector3.one;
        entry.gameObject.SetActive(true);
        entry.Reset();
        return(entry);
    }
 void Start()
 {
     if (GameObjectPoolController.AddEntry(PoolKey, prefab, 10, 15))
     {
         Debug.Log("Pre-populating pool", this);
     }
     else
     {
         Debug.Log("Pool already configured", this);
     }
 }
Beispiel #20
0
 void Awake()
 {
     if (inst != null && inst != this)
     {
         Destroy(this);
     }
     else
     {
         inst = this;
     }
 }
 private void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this);
     }
     else
     {
         instance = this;
     }
 }
Beispiel #22
0
    // methods for getting and returning menu entries from the pool
    AbilityMenuEntry Dequeue()
    {
        Poolable         p     = GameObjectPoolController.Dequeue(EntryPoolKey);
        AbilityMenuEntry entry = p.GetComponent <AbilityMenuEntry>();

        entry.transform.SetParent(panel.transform, false);
        entry.transform.localScale = Vector3.one;
        entry.gameObject.SetActive(true);
        entry.Reset();
        return(entry);
    }
    CommandMenuButton Dequeue()
    {
        Poolable          p     = GameObjectPoolController.Dequeue(EntryPoolKey);
        CommandMenuButton entry = p.GetComponent <CommandMenuButton>();

        entry.transform.SetParent(buttonCenter, false);
        entry.transform.localScale = Vector3.one;
        entry.GetComponent <RectTransform>().localPosition = Vector3.zero;
        entry.gameObject.SetActive(true);
        entry.Reset();
        return(entry);
    }
    public GameObjectPool(GameObject prefab, int capacity, int preAllocateAmount)
    {
        Assert.IsNotNull(prefab);
        this.prefab = prefab;

        GameObject poolContainerObject = new GameObject(prefab.name + " Pool");

        poolController = poolContainerObject.AddComponent <GameObjectPoolController>();
        poolController.Initialize(capacity);

        Initialize(capacity, preAllocateAmount);
    }
 private void Awake()
 {
     // Singleton
     if (_instance != null && _instance != this)
     {
         Destroy(this);
     }
     else
     {
         _instance = this;
     }
 }
    protected override void Awake()
    {
        base.Awake();

        Pools = new Dictionary <string, PoolData>();

        if (_instance != null && _instance != this)
        {
            Destroy(this);
        }
        else
        {
            _instance = this;
        }
    }
Beispiel #27
0
    private void ThrowRock()
    {
        if (Input.GetKeyDown(KeyCode.Mouse0) && rockCount != 0)
        {
            //Instantiate(rock, throwPoint.position, throwPoint.rotation);

            Poolable obj = GameObjectPoolController.Dequeue(PoolKey);
            obj.transform.position = transform.position;
            obj.gameObject.SetActive(true);
            instances.Add(obj);
            obj.GetComponent <ThrowRock>().ShootRock();

            rockCount--;
            UpdateRockCountUI();
        }
    }
Beispiel #28
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.CompareTag("RockShot") || other.gameObject.CompareTag("Rock"))
        {
            int coinAmmount = Random.Range(1, 3);
            for (int i = 0; i < coinAmmount; i++)
            {
                Poolable obj = GameObjectPoolController.Dequeue(PoolKey);
                obj.transform.position = transform.position;
                obj.gameObject.SetActive(true);
                instances.Add(obj);
                Vector3 otherSpeed = other.GetComponent <Rigidbody2D>().velocity;
                obj.GetComponent <Rigidbody2D>().velocity = otherSpeed / 2;
            }

            gameObject.active = false;
        }
    }
Beispiel #29
0
    void Enqueue(AbilityMenuEntry entry)
    {
        Poolable p = entry.GetComponent <Poolable>();

        GameObjectPoolController.Enqueue(p);
    }
Beispiel #30
0
 //configure pool manager to generate the menu entries
 void Awake()
 {
     GameObjectPoolController.AddEntry(EntryPoolKey, entryPrefab, MenuCount, int.MaxValue);
 }
Beispiel #31
0
 static void CreateSharedInstance()
 {
     GameObject obj = new GameObject("GameObject Pool Controller");
     DontDestroyOnLoad(obj);
     instance = obj.AddComponent<GameObjectPoolController>();
 }
Beispiel #32
0
 void Awake()
 {
     if (instance != null && instance != this)
         Destroy(this);
     else
         instance = this;
 }