欧美三级电影完整|亚洲一二三四久久|性爱视频精品一区二区免费在线观看|国产精品啪啪视频|婷婷六月综合操人妻视频网站|99爱免费视频在线观看|美女一级片在线观看|北京熟女88av|免费看黄色A级电影|欧美黄色毛片儿

Unity框架:JKFrame2.0學(xué)習(xí)筆記(四)——對(duì)象池系統(tǒng)(2)

2023-04-12

前言


書接上回,上一篇文章介紹了對(duì)象池系統(tǒng)的構(gòu)成和內(nèi)部實(shí)現(xiàn)的邏輯,這一篇文章主要記錄下對(duì)象池系統(tǒng)在JKFrame2.0的框架中該如何使用。


案例


我們做一個(gè)發(fā)射子彈的例子,來用到對(duì)象池系統(tǒng)。


創(chuàng)建子彈

創(chuàng)建子彈的預(yù)制體,可以用球來代替



添加子彈腳本

給子彈預(yù)制體添加子彈腳本,子彈2秒鐘后,自動(dòng)銷毀


using JKFrame;
using UnityEngine;

public class BulletController : MonoBehaviour
{
    public void Init()
    {
        transform.position=Vector3.zero; 
        Invoke(nameof(DestoryBullet),2f); 
    }
    void Update()
    {
        transform.Translate(Vector3.forward*Time.deltaTime*5);
    }

    private void DestoryBullet()
    {
        transform.position=Vector3.zero;
        //子彈放回對(duì)象池
        PoolSystem.PushGameObject(gameObject);
    }
}

添加控制發(fā)射腳本

寫一個(gè)控制發(fā)射子彈的腳本,掛載到場(chǎng)景的空物體上


using JKFrame;
using UnityEngine;

public class PoolTest : MonoBehaviour
{
    public GameObject bullet;
    void Start()
    {
        //初始化對(duì)象池
        PoolSystem.InitGameObjectPool(bullet,10,10);
    }
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            //從對(duì)象池中獲取子彈
            PoolSystem.GetGameObject("bullet", transform)?.Init();
        }
    }
}

最終效果


總結(jié)


只是舉了個(gè)簡(jiǎn)單的例子,拋磚引玉,大家可以多看下源碼,對(duì)象池系統(tǒng)的用法還有很多,要靈活運(yùn)用,以后的其他模塊也有很多要用到對(duì)象池系統(tǒng)的。





本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com