1、使某个对象上的脚本失效和生效:

GameObject.Find("xxx").transform.GetComponent<xxx>().enabled = false; //失效
GameObject.Find("xxx").transform.GetComponent<xxx>().enabled = true; //失效

2、NGUI相机震动效果:

public float _shake_time = 0.5f;
public void CameraShake()
{
  iTween.ShakePosition(GameObject.Find("UI Root/Camera").camera.gameObject, new Vector3(0.05f, 0.05f, ), this._shake_time);
}

3、NGUI中播放某个对象下的Tween动画:

TweenPosition[] tween = null;
TweenPosition tw = null; // 获取对象下全部TweenPosition组件
tween = this._show_panel.GetComponents<TweenPosition>();
for (int i = ; i < tween.Length; i++)
{
tw = tween[i]; // 选择要播放的Tween动画组
if (tw.tweenGroup == )
{
// 重置函数,不重置有可能出现第二次播放错误的情况
tw.ResetToBeginning();
tw.Play();
}
}

4、获取某个父对象中的组件:

gameObject.transform.GetComponentInParent<InfoPanelManager>()

5、获取某个子对象组件:

gameObject.transform.GetComponentInChildren<PanelFade>()

6、Scroll View中按钮中的按钮点击失效:

问题描述:  

  用NGUI制作Scroll View时,Scroll View中的每一项为一个按钮,每一项还有多个按钮用于弹出不同的界面,初始时子按钮的Depth比父按钮的Depth高。这是把该界面作为预设用于在场景中点击某个对象时动态添加,会出现只能响应父按钮的点击事件,而子按钮的点击事件全部被屏蔽掉了。

解决方案:

  将子按钮的Box Collider组件的size项的Z值设为比父按钮的大,NGUI按钮默认Z为0,即调为0.1即可。

注:

  修改Box Collider组件的size项的Z值时,应该不勾选UISprite组件的Collider auto-adjust to match才能使修改生效

7、延迟等待执行代码方法:

  这里用StartCoroutine开启协同程序的方法来实现。

StartCoroutine(WaitForShow(time));
IEnumerator WaitForShow(float time)
{
yield return new WaitForSeconds(time);
}

  值得注意的是如果这段程序需要运行一段较长时间,在运行期间,如果开启这段协同程序的组件被删除了,则这段程序就不在执行了,因此使用StartCoroutine要注意源组件的生命周期和协同程序的生命周期。

8、NGUI中所有panel都有一个Depth值,会影响所有它包含的widget。如果你的UI有很多窗口,那么最好每个窗口有一个panel。Panel上的depth权重会远远高于每一个widget的depth权重,所以保证panel不要使用同样的depth。如果使用同样的depth在panel上,那么draw call会被自动拆分来保证渲染顺序,所以会增加更多的draw call。

9、代码添加Tween组件动画播放完后执行某个函数:

参考链接http://unity3d.9tech.cn/news/2013/1114/38624.html

EventDelegate.Add(this._fade_in_tween.onFinished, DestoryFadeInTween);

void DestoryFadeInTween()
{
}

10、NGUI制作一个Panel时,每在Panel下添加一个子对象,如Label或者Sprite,后加的子对象Depth默认会加1,这样的话会导致当前Panel的Draw Call增加,应该是只要不互相重叠的子对象尽量用同一个Depth值。

11、Physics.RaycastAll 和Physics.Raycast 中的只选定Layermask参数,该参数表示值响应该层内的碰撞器,其它层内碰撞器忽略。Layermask的值应该等于2的n次方,这个n是layer面板上的值。

最新文章

  1. pythonchallenge 解谜 Level 0
  2. 主流的单元测试工具之-JAVA新特性-Annotation 写作者:组长 梁伟龙
  3. Javascript 处理时间大全
  4. HDU 5007 Post Robot KMP (ICPC西安赛区网络预选赛 1001)
  5. 类型&ldquo;System.Windows.Markup.IQueryAmbient&rdquo;在未被引用的程序集中定义
  6. Vmware Vsphere WebService SDK开发(第一讲)-基本知识学习
  7. mysql pid文件
  8. WCF:2个常见错误
  9. table转list
  10. (四)Hololens Unity 开发之 凝视系统
  11. java HashSet改用
  12. HDU Be the Winner [Anti-SG]
  13. 常用的几个CSS前端效果
  14. c# 设置MdiClient窗体的背景图片
  15. SQL中间
  16. 【nodejs】初识 NodeJS(三)
  17. pytest文档14-函数传参和firture传参数request
  18. HTML5 canvas getImageData() 方法
  19. centos7 安装svn, 同时支持 svn 和 http访问
  20. iOS开发多线程篇—GCD简介

热门文章

  1. Java Calendar实现控制台日历
  2. 【Android】碎片Fragment
  3. frame模型
  4. SQL Server2005 表分区三步曲(zz)
  5. Android Studio创建工程时一直卡在下载Gradle
  6. DataView操作DataTable
  7. Nginx和Apache共存环境下apache获得真实IP
  8. 【转】IOS AutoLayout详解(三)用代码实现(附Demo下载)
  9. JavaScript 计时事件
  10. 用Python高亮org-mode代码块