unity打包发布apk或ios时,tag值错乱导致触发器部分失效的问题

    最近做老项目升级,升级到unity5.6时遇到了一个很头痛的问题,就是在unity中运行一切正常。没有任何问题。但是导出发布ios或android时就会出现一些触发事件没反应。导致一些道具或功能失效。

    刚开始我以为是导出设置的问题。后来发现不是设置的问题。做了一些触发检测的demo导出运行时正常的(触发的条件查找的是物体的名字不是tag值)。

    经过一系列的打印输出。发现了问题所在。是tag值变了。在unity中运行tag值的索引是正确的(untiy4.6的时候没有这个问题,unity5.0以后tag的管理对于一些空字符占位的tag值在项目再次加载的时候会移除掉)。如图:


(红框中显示空的tag会在下次项目加载的时候移除掉)

再使用assetbundle打包的时候会保存下tag信息。但是这个tag信息保存的是tag列表信息,而不是tag的字符串名字。如果你的tag列表中有空位,那么打包保存的tag信息会把空出来的那个位置removed。把后面的tag往前移。这样就导致后面的tag索引变了。运行的时候加载出来的物体的tag就会发生变化。不是你想要的tag。那么你通过tag值来判断的触发条件将会失效。

    所以请注意我下面说的这句话:

    我们在添加tag值的时候一定要按顺序。中间不能留有空tag值!!!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值