美文网首页
Unity对象池代码

Unity对象池代码

作者: 86a262e62b0b | 来源:发表于2019-07-23 22:35 被阅读0次

参考:官方

简介:
对象池就存放需要被反复调用资源的一个空间,当一个对象会大量生成的时候,如果每次都销毁创建会很费时间,通过对象池把暂时不用的对象放到一个池中(也就是一个集合),当下次要重新生成这个对象的时候先去池中查找一下是否有可用的对象,如果有的话就直接拿出来使用,不需要再创建,如果池中没有可用的对象,才需要重新创建,利用空间换时间来达到游戏的高速运行效果。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyObjectPooling : MonoBehaviour
{
    public static MyObjectPooling objectPooling;
    public GameObject targetObject;
    public int poolSize;
    public bool isGrow = true;

    public List<GameObject> pooledObjects;

    private void Awake()
    {
        objectPooling = this;
    }

    private void Start()
    {
        //初始化
        pooledObjects = new List<GameObject>();

        for (int i = 0; i < poolSize; i++)
        {
            GameObject obj = (GameObject)Instantiate(targetObject);
            obj.SetActive(false);
            pooledObjects.Add(obj);
        }
    }

    public GameObject GetPoolObject()
    {
        for (int i = 0; i < pooledObjects.Count; i++)
        {
            if (!pooledObjects[i].activeInHierarchy)
            {
                return pooledObjects[i];
            }
        }

        //上面如果去到了,就不会调用下面的代码
        if (isGrow)
        {
            GameObject obj = (GameObject)Instantiate(targetObject);
            pooledObjects.Add(obj);
            return obj;
        }

        return null;
    }
}

相关文章

  • Unity对象池代码

    参考:官方 简介:对象池就存放需要被反复调用资源的一个空间,当一个对象会大量生成的时候,如果每次都销毁创建会很费时...

  • Unity 学习笔记

    Unity 对象池实现方案:

  • Unity对象池

  • unity对象池

    在网上看见了对象池的一些应用,一直很好奇,所以来研究一下 对象池主要的用途就是在那些需要重复被创建和销毁的物体上可...

  • Unity——对象池

    前言 实现对象池的步骤 代码 该脚本可以添加到创建的空物体身上,注意游戏场景中必须要有带有碰撞器的对象存在,不然,...

  • [Unity]对象池

    对象池的作用 避免一直重复的创建和销毁某个对象,增加消耗 理解 就是在开辟一个地方,去储存会大量实例化和销毁的对象...

  • Unity 对象池

    最近在学习 Unity 官方的 《Tower Defense Template》[https://unity3d....

  • Unity 类对象池资源池对象池

    类对象池 包含创建对象池,取对象池中的内容,回收。 对象管理类 因为使用加载AB包的时候可能会频繁创建类,但是ne...

  • Unity-对象池

    简介 解决某些对象频繁创建或销毁造成的时间资源消耗 实例 参考 https://www.jianshu.com/p...

  • Unity对象池封装

    一共分为两个类,SubPool与ObjectPool,SubPool类为总对象池包含ObjectPool的子池子,...

网友评论

      本文标题:Unity对象池代码

      本文链接:https://www.haomeiwen.com/subject/teuzlctx.html