假如当前有10种怪物,游戏中会产生100以上个怪物对象,此时想到了对象池和预设,
方案1:创建一个预设,挂载一个Sprite精灵组件,通过cc.instantiate克隆一个实例,然后根据不同怪物设置不同的精灵帧。方案2:创建10个预设,分别挂载一个Sprite精灵组件,并设置对应的精灵帧,根据不同怪物类型,分别通过cc.instantiate克隆一个实例。
问:这两种方案那种更好?是否还有更好的方案?
谢谢。
个人觉得只要一种prefab好,根据修改spriteFrame和各种属性来实例各种不同的怪物,除非你的各个怪物有很大的区别
如果你用第二种的话,你就需要十个对象池,如果不要对象池的话,就会有很多实例化操作
是的,当前就这样纠结中。谢谢。
如果是我我就不会纠结,我的信条就是,能少就少,不用最好
如果是方案1,在实例化后,分别设置精灵帧,那么这些精灵帧势必要之前就预加载进入缓存中?
应该是要的,你可以在要实例化之前用cc.loader.loadeRes加载,然后在加载回调里实例化
或者你在怪物的prefab里加个数组,保存所有不同的spriteFrame,要用的时候取出来就行了
well done!3q.