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

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

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

基类代码:

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
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值