unity飞机大战(1)对象池

前言

最近在做一个飞机大战的小游戏,素材都是取自微信打飞机的,研究一下对象池,

游戏中需要重复实例化和销毁的游戏物体,比如子弹,敌机。通过对象池的使用可以优化游戏性能。

大致做法就是:

1 创建对象池,将频繁使用的游戏物体在对象池中预加载 

2 在游戏过程中,需要使用时,将游戏物体从对象池中取出来

3 在游戏物体使用结束后,不用的时候不要把它直接Destory掉,而是SetActive(false)。 

这样当你再次使用的时候只需要SetActivie(true) 这样对应这个游戏对象来说 它只会执行OnEnable()这一个方法,所以载入速度是最快的。

4 将对象池中的游戏物体,隔一段时间,定期清理掉(也就是Destory掉)

5 通过对象池的使用,避免了在游戏过程中频繁的实例化和销毁物体,从而提高游戏性能。

雨松大大有介绍对象池的用法和插件:Unity3D研究院之初探PoolManager插件(七十四)

动态的给内存池里面加对象


PoolManager插件的一些核心参数,雨松的文章中有详细的解释,

实际游戏中往往我们需要动态的去载入一些无法提前预知的游戏对象,

所以初始化内存池的操作建议还是在脚本里面来完成。

在飞机大战这个游戏中。有:三种敌机类型,两种子弹类型,两种奖励物品。

这里我们看下 敌机和奖励物品 是如何添加到对象池并且在游戏中使用的

using UnityEngine;
using System.Collections;
using PathologicalGames;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值