开发过程中遇到的两个问题:Input.ResetInputAxes() 和 各个平台XML文件加载

来源:互联网 发布:poi数据库 编辑:程序博客网 时间:2024/06/06 13:23

demo收尾阶段遇到两个非常抓狂的问题,

第一个问题:

角色死亡弹出弹框,弹框上的按钮有鼠标经过状态,但是没有点击状态,怎么点都没有反应啊抓狂了都,

解决过程及方法:

找问题过程中发现,登陆场景中登陆弹框里的按钮是可以点击,一切正常,然后我把死亡弹框放到登陆场景也是正常,看来弹框没为题,NGUI层次也没为题(我在论坛里询问此问题时都说UIPanel层次有问题),这个死亡弹框一进游戏是不存在的,是英雄死亡以后NGUITools.AddChild(NGUIRoot.go, gameOverWindow);添加的一个弹框,于是我把这个弹框一进游戏就出现,发现按钮也是可以点的,想到只有new 一个新的实例时按钮才不能点击,最后各个脚本的排查发现,在键盘控制移动脚本里发现

if(!canControl){     // kill all inputs if not controllable.     Input.ResetInputAxes();     return;}
对,就是这个Input.ResetInputAxes()  更无语的是 return,

Input.ResetInputAxes() 圣典里是这么说的

在一帧中重置所有的输入,重置输入指令之后所有的方向轴都被设置为0并且所有的按键都被设置为0。

它可以用在当你在复活角色时,不想接受任何可能仍被按下的按键输入时。(当玩家复活的瞬间并不应该接受用户控制时)


好了问题找到了,

当英雄死亡以后,canControl一直是false,所以一直会执行Input.ResetInputAxes() ,所以你的各种输入操作都不可用,所以按钮是不可点击的,

哎~~~~~~哟~~~~~~

长出一口气,问题终于找到了,接下来解决问题吧,当然解决问题时要根据自己实际的情况,我是放弃用Input.ResetInputAxes() ,改用了return

哈~~~~~~

问题解决,解决这个问题,耗费了1.5天,时间是很宝贵的。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第二个问题:

发布PC版可以相应键盘操作,点击键盘1,2,3,播放对应的技能动画,鼠标点击可以播放普通连击动画,但是发布APK后却只能移动,却不能攻击 和 施放技能,想杀人的节奏。

解决过程及方法:

在找问题过程中发现可以移动,跑的动画时没问题的,以为是animation.layer的问题,排查以后也不是,最后各种断点,各种测试文本框发现,问题出现在技能配置XML上,我把XML文件放到了和Resource同级的新建文件夹Config里,这就是新手的无知啊,然后在网上各种资料里学习,最后XML文件放到Resource里,然后代码改成

string txtContent = ((TextAsset)Resources.Load("SkillDataList")).text;XmlDocument xmlDoc = new XmlDocument();//xmlDoc.Load(new StringReader(txtContent));//第一种方法xmlDoc.LoadXml(txtContent);//第二种方法

网上资料有的说各个平台的XML文件加载方法不一样,但目前我发布的PC版和Android版用以上一套代码是没问题的,iOS没试过。


然后问题解决了,版本发布成功。


虽然只有两个问题,但是记录一下自己找问题的过程,啰嗦是啰嗦了一点,但总算完成了。

0 0