对象池的简单实现

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 }

 

以上是关于对象池的简单实现的主要内容,如果未能解决你的问题,请参考以下文章

对象池的简单实现

Linux下简单线程池的实现

关于对象池技术的一些记录

数据库连接池的选择 | 实现

数据库连接池的选择 | 实现

Druid连接池的工具类以及简单代码实现