Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4039.00元
NGUI背包系统做“整理”功能时出现了一个想不明白的问题,请求SIKI老师解惑。
tshiz1990发起了问答2017-07-14
10
回复
463
浏览

背包系统具体实现方式为siki老师常用教学方式。数据源:在TXT文件里面,之后创建的脚本有:Inventory.cs、InventoryManage.cs、Knapsack.cs、InventoryItemGrid.cs、InventroyItem.cs。在Knapsack脚本里面写的按X键进行测试往背包里添加装备,该功能没有问题,测试通过。但是当装备卖出之后进行整理时就出现错误了。

错误现象:在带有InventoryItemGrid脚本的格子下的带有InventoryItem脚本的子物体的精灵设置不了spriteName属性(除了遍历的第一个InventoryItem)。需要的ID信息都传过去了,使用Print打印出来也是正常的,但是就是赋不了值,把传过来的ID赋值给InventoryItem里面的全局变量inventoryID也赋不上值,显示的都是默认图片,不知道为什么?

代码实现如下:

InventoryItemGrid.cs

InventoryItem.cs

游戏画面错误现象:

获取卖出正常

整理后不正常:

所有回复
  • siki 2017-07-14

    可以检查一下整理的时候tidyDict中的内容得到的是否争取,这个是整理乱的核心点

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • tshiz1990 2017-07-14

    正确的呢,我有打印tidyDic字典中存放的所以ID出来,就是在设置spriteName属性的时候赋值不上,搞的我很费解。实在不行只能研究下其他方法了。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • tshiz1990 2017-07-14

    刚刚重新测试了一下,其实spriteName已经赋值上去了,但是不知道为什么只显示默认图片?我把它托放一下之后就变成正常的装备图片了,更加费解了。难道是脚本执行时间问题?

    • siki 2017-07-14

      这就有可能是你赋值的图片的问题了,是不是前后多个空格,或者大小写没有注意,认真检查下这个

      (0) 回复
    • siki 2017-07-14

      图片的名字

      (0) 回复
    • tshiz1990 2017-07-14

      都没问题呢,重新刷新一下图片就会正常。疑难杂症。 现在重新写遍,看下哪个环节出了问题。

      (0) 回复
    • siki 2017-07-15

      回复 @ tshiz1990: 可能是unity渲染延迟了,使用unity build出来,看看还有没有问题,如果build出来没问题的话,那就应该不是程序开发的问题了,建议升级unity和ngui版本

      (0) 回复
    • tshiz1990 2017-07-16

      回复 @ siki: 解决了呢,估计是渲染延迟了。我开了一段协程,整理时先隐藏原装备,过0.5秒后再销毁,新排序的装备就能显示正常了。

      (0) 回复
    • siki 2017-07-17

      回复 @ tshiz1990: 渲染延迟的问题,是unity或者插件自身的问题,不建议使用这种方式解决,建议通过升级unity和ngui版本解决,根除

      (0) 回复
    • tshiz1990 2017-07-18

      回复 @ siki: 嗯,我有时间试一下,谢谢。

      (0) 回复
    还有2条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!