当你想到看这个的时候或者想了解这个的时候,也应该知道为什么要用对象池了。所以我这里主要是讲对象池的怎么建立,他的怎么运行步骤一步一步解释下来,希望帮主新手啃下这个硬骨头。
分3步讲解,一,普通的实例化cube,然后自动销毁
二,进行一步一步修改,使用对象池
三,全部代码。
步骤一。我先把关联的脚本对应关系写一下。Main Camera-----------------MoveCamera.cs
Gamemanager----------------Gmmanager.cs
这个预制体Cube---------------cubeForce.cs
这个Gmpool.cs里面是静态的函数,所以不用和任何物体挂载。
别忘了在每个脚本开头带上
using System.Collections.Generic; 命名空间
好了,那么步骤一呢,实现一个很简单的功能,就是键盘控制摄像头的移动MoveCamera.cs,这个不是重点可有可无,还有是点击鼠标发射小球。然后小球按照给的力向前面飞出去,几秒后自己摧毁。具体代码如下。
public class MoveCamera : MonoBehaviour {//这个后面不会修改了 public float movespeed; // Update is called once per frame void Update () { float h = Input.GetAxis ("Horizontal"); float v = Input.GetAxis("Vertical"); transform.Translate (new Vector3(h,v,0)*movespeed); } }
public class cubeForce : MonoBehaviour {//这个后面对象池的时候要加点东西了 public float mforce; void Start () { GetComponent<</span>Rigidbody>().AddForce (Vector3.forward*mforce); } public class Gmmanager : MonoBehaviour { public GameObject mCube; //这个到时候就不需要了 void Start () { } void Update () { if(Input.GetMouseButtonDown(0)){ Instantiate (mCube,transform.position,transform.rotation);//这个应该是关键要改的地方 } } } // 留着明天写对象池吧。 下面一步重要就在于这个类了Gmpool.cs
转载请注明原文地址: https://ju.6miu.com/read-1302923.html