博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个以上gameobject同时调用同一函数时候transform代码中改变但是实际效果并不改变的诡异问题...
阅读量:6376 次
发布时间:2019-06-23

本文共 3215 字,大约阅读时间需要 10 分钟。

点击按钮触发面板弹出动画:

void MainPanelBtnClick(string btnName)    {        switch (btnName)        {        case "0":            if(currentBtn != MainPanelBtn.BETTLE)            {                _GUI_BG.active = false;                currentBtn = MainPanelBtn.BETTLE;            }            break;        case "1":            if(currentBtn == MainPanelBtn.BETTLE)            {                _GUI_BG.active = true;            }            currentBtn = MainPanelBtn.HERO;            if(!is2)            {                is2 = true;                iTween.Stop();                if(ModelData.shareData.panelGroupDic.ContainsKey("ContentPanel"))                {                    PanelFunc.PanelOn(ModelData.shareData.panelGroupDic["ContentPanel"]);                }                if(ModelData.shareData.panelGroupDic.ContainsKey("TitleBar"))                {                    PanelFunc.PanelOn(ModelData.shareData.panelGroupDic["TitleBar"]);                }                if(ModelData.shareData.panelGroupDic.ContainsKey("ActNotify"))                {                    PanelFunc.PanelOn(ModelData.shareData.panelGroupDic["ActNotify"]);                }            }            else            {                is2 = false;                iTween.Stop();                if(ModelData.shareData.panelGroupDic.ContainsKey("ContentPanel"))                {                    PanelFunc.PanelOff(ModelData.shareData.panelGroupDic["ContentPanel"]);                }                if(ModelData.shareData.panelGroupDic.ContainsKey("TitleBar"))                {                    PanelFunc.PanelOff(ModelData.shareData.panelGroupDic["TitleBar"],"OnMove2Complete",gameObject);                }                if(ModelData.shareData.panelGroupDic.ContainsKey("ActNotify"))                {                    PanelFunc.PanelOff(ModelData.shareData.panelGroupDic["ActNotify"],"OnMove2Complete",gameObject);                }            }                        break;        case "2":                        break;        case "3":                    break;        case "4":                    break;        case "5":                    break;        default:            break;        }    }

 

先执行面板出现动画   3个面板同时出现

public static void PanelOn( PanelPos _panelPos)    {        _panelPos.g.getChild(0).transform.gameObject.SetActiveRecursively(true);        if(_panelPos.middlePos!=_panelPos.oriPos)            iTween.MoveTo(_panelPos.g, iTween.Hash( "position", _panelPos.middlePos, iT.MoveTo.islocal, true, "easetype", "easeOutBack", "loopType", "none",  "delay", .1,"time",.5));    }

 

上面动画未结束就迅速执行面板隐藏函数

public static void PanelOff(PanelPos _panelPos)    {
_panelPos.g.transform.getChild(0).gameObject.SetActiveRecursively(false); _panelPos.g.transform.localPosition = _panelPos.oriPos; Debug.Log(_panelPos.g.name+" "+_panelPos.g.transform.localPosition); }

则有一个面板(绿色部分)的上面红色部分不执行,其实是执行了的

ContentPanel    (0.0, -820.0, 0.0)

TitleBar    (-660.0, 300.0, 0.0)

ActNotify    (470.0, 300.0, 0.0)

 

程序中检测位置是移动了,但是实际视窗中并没移动

TitleBar    (-300.0, 300.0, 0.0)

 

 

 

后来多次查找原因未果,后将

_panelPos.g.transform.getChild(0).gameObject.SetActiveRecursively(false);

改为

_panelPos.g.transform.gameObject.SetActiveRecursively(false);

则bug消除,不解!!!

转载地址:http://mgvqa.baihongyu.com/

你可能感兴趣的文章
切线方程与数列
查看>>
割补法
查看>>
前端:页面中防止文本框按下enter键刷新页面
查看>>
Python:创建多线程
查看>>
spring+mybatis事务不起作用的原因
查看>>
洛谷P4332 [SHOI2014]三叉神经树(LCT)
查看>>
洛谷P3527 [POI2011]MET-Meteors(整体二分)
查看>>
洛谷CF895C Square Subsets(线性基)
查看>>
java流
查看>>
oracle中的授权和创建同义词
查看>>
PyCharm使用小技巧
查看>>
设计模式(五)桥接模式
查看>>
JS基础——修改文本框的值(函数传参)
查看>>
python学习===从一个数中分解出每个数字
查看>>
python基础===100盏灯的问题
查看>>
Leetcode 6. ZigZag Conversion
查看>>
poj3275
查看>>
数据库 字符串连接函数
查看>>
bzoj2002
查看>>
《转》Pragma: no-cache 对性能的影响
查看>>