对象池的简单实现
Posted mafeihao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象池的简单实现相关的知识,希望对你有一定的参考价值。
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 5 public class GameInstatie : MonoBehaviour { 6 7 private Stack<GameObject> GameManager = new Stack<GameObject>();//未激活怪我的对象池 8 private Stack<GameObject> IntatiaManager = new Stack<GameObject>();//激活怪物的对象池; 9 public Transform transform; //设置的父物体位置; 10 public GameObject Cube; //所需要实例化的物体; 11 // Use this for initialization 12 void Start () { 13 14 } 15 16 // Update is called once per frame 17 void Update () { 18 //点击鼠标左键生成物体 19 if (Input.GetMouseButtonDown(0)) 20 { 21 if (GameManager.Count > 0) 22 { 23 GameObject obj = GameManager.Pop(); 24 obj.SetActive(true); 25 IntatiaManager.Push(obj); 26 Debug.Log(IntatiaManager.Count); 27 28 } 29 else 30 { 31 GameObject obj = Instantiate(Cube); 32 IntatiaManager.Push(obj); 33 Debug.Log(IntatiaManager.Count); 34 } 35 } 36 //点击鼠标右键把已经生成的物体回收 37 if (Input.GetMouseButtonDown(1)) 38 { 39 if (IntatiaManager.Count > 0) 40 { 41 Debug.Log(IntatiaManager.Count); 42 GameObject obj = IntatiaManager.Pop(); 43 obj.transform.SetParent(transform); 44 obj.SetActive(false); 45 GameManager.Push(obj); 46 47 } 48 49 } 50 51 52 } 53 }
以上是关于对象池的简单实现的主要内容,如果未能解决你的问题,请参考以下文章