网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月22日漏签0天
unity3d吧 关注:116,408贴子:560,871
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 13回复贴,共1页
<<返回unity3d吧
>0< 加载中...

求助,有关对象池的问题

  • 只看楼主
  • 收藏

  • 回复
  • Kinzca_
  • Particle
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最近自己学了下unity自带的对象池,自己做了个刷怪的池子,有些问题实在解决不掉
我做的怪很简单,就行走,攻击,死亡。死亡后就会呆在死亡状态,然后透明度逐渐降低然后消失。但是第二波以及以后,从对象池中取出 就会一直重复,透明度降低然后消失的状态。所以我就写了下重置敌人所有状态的方法在actionOnGet中调用,方法如下

但是出现了下面的报错

这里出现了空应用,但是是哪啊,是active设为true再重置的
然后它 这里指向的是设置颜色的,我就把上面的 重置颜色的部分注释掉了,结果还是不行,出现了下面的错误,
也同样是个空应用,是找不到Walk这个状态。
两个错误的表现就是疯狂地刷怪,都指向下面这个pool.Get();
只好请教下吧友们了


  • 只用等待
  • Renderer
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第二个错误说你字典里没有这个状态,不知道你这个设置状态的方法和paramenter怎么写的


2025-07-22 09:14:40
广告
不感兴趣
开通SVIP免广告
  • Kinzca_
  • Particle
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼





上面是FSM的下面是重置敌人状态的方法


  • 贴吧用户_GGW31RP
  • Unitor
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码发全看一下吧,这样看不出来


  • Kinzca_
  • Particle
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下面是对象池的脚本






  • 贴吧用户_GGW31RP
  • Unitor
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
找到问题了,没有经验的话光看是很难看出来的,因为你写的代码真的是没毛病的,只要把start函数的代码移到awake函数里面就可以了。之前一直以为错误出在从对象池中取出被取消active的对象的时候。后面我自己试了一下,原来错误出现在对象第一次被创建出来的时候。而且错误只出现在操作对象身上的引用类型的时候,因为这时候start函数还没有被调用,引用类型还没有分配内存所以会出现空引用错误。而对值类型的操作就不会出现错误,比如在actiononget里面的对transform.position的赋值这一行就没问题。这是脚本生命周期的问题


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 13回复贴,共1页
<<返回unity3d吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示