之前写过enable不可取,是因为当时需要把gameObject直接消除(并非销毁):http://blog.youkuaiyun.com/anzhongliu/article/details/72827556。
如果按照之前的setactive方法来做,则会出现获取不了gameObject的坐标或其他属性,于是想起enable只是让gameObject不可见,并且可以获取gameObject的其他组件和属性。于是采用了enable;
现在只让gameObject不可见,同时获取gameObject的坐标,所以不能消除和销毁;如下:
if(disappear){
StartCoroutine(DelayToInvoke.DelayToInvokeDo01(() =>
{
XingxingMenU.GetComponent<Image>().enabled=true;
XingxingMenU.GetComponent<UIMenu_move>().TransformImage ();
disappear=false;
},() =>{
XingxingMenU.GetComponent<Image>().enabled=false;
disappear=true;
XingxingMenU.GetComponent<RectTransform>().anchoredPosition=pos;
},
8.0f));
}
总结:过去认为不好的使用方法可能在新环境下适用。