Unity 简单的预制体管理方式带对象池功能

本文介绍了在游戏开发中,为避免频繁创建和销毁对象对垃圾回收造成压力,使用Unity实现对象池管理预制体的方法。通过创建一个基类来自动获取预制体并进行管理,具体包括预制体的制作、脚本继承与使用示例,使得对象池的使用变得简单易懂。
摘要由CSDN通过智能技术生成

游戏开发过程中遇到需要频繁创建和销毁的对象为了方便创建通常会使用预制体的方式进行生成,而为了避免对垃圾回收造成压力通常会使用对象池来对这些预制体进行管理。但是加载,实例化预制体需要额外的代码控制。这里提供了一种简单的管理方案。

首先创建一个基类,这个类用于自动获取预制体并将其放入对象池进行管理

基类代码:

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

public abstract class PrefabBehavior<T> : MonoBehaviour where T : MonoBehaviour
{
    private static Queue<T> objectPool = new Queue<T>();        //对象池
    private static T template;      //预制体


    /// <summary>
    /// 获取对象
    /// </summary>
    /// <returns></returns>
    public static T Get()
    {
        //读取Resources/Prefabs路径下所有带有继承PrefabBehavior脚本的物体,必须有且只能有一个,否则报错
        if (template == null)
        {
            T[] all = Resources.LoadAll<T>("Prefabs");
            if (all.Length == 0) { throw new Exception(string.Format("{0} has no prefab in path: Resources/Pref
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值