Unity3D NGUI,uGUI总结
跪求官方UI系统(2014年11月底已出,用原生的比用NGUI放心)
uGUI注意点
1.要防止多个canvas叠加点击穿透,canvas里面的graphics raycaster调整到恰当选项
2.防止canvas在物体上层,点击canvas却穿透到物体上,触发物体的点击的事件。请參见以下演示样例代码
using UnityEngine; using System.Collections; public class button : MonoBehaviour { public void OnMouseDown() { if (!UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()) Debug.Log("aa"); } }
3.不须要加入boxcollider。这点与NGUI不同
4.Resource目录里面的sprite居然是不能用sprite packer打包的,放在其它的目录里面能够
-------------------------------------------------------------------------------------------------------------------------------------------------------------
NGUI注意点
超级影响性能的几点
1.动画最好作用于panel而不是sprite
2.Sprite Type中的tile能不用就不用,卡死人
老版2.7.0GUI的scroll view的横竖限制是在scale里面设定的,动态字体不能用于Flash版
老版2.7.0的UIPlayTween的名字叫做UIButton Tween
16.NGUI的2DUI摄像头要将projection设置为Orthgraphic,Clipping Planes的Near要为负值不然动画不正常
NGUI的Camera的Depth要比主Camera高才干在主Camera之前显示
NGUI 和脚本中的屏幕坐标并不一致,须要进行ScreenToWorldPoint转化
NGUI要改变字体颜色须要在BMFont中设置字库图片为32位色图才行
NGUI能够输出富文本,带静态表情。动态不行
NGUI能够附加UIPanel进行方形遮罩,不规则图形还得採取其它方案
NGUI的位置记得要用localposition而不是position
NGUI的Tween动画能够通过Add Component中的NGUI->Interaction->PlayTween来控制动画的正着放或者倒着放
而且能够设置播放前启用,播放后禁用物体。include children打勾貌似出错,或者脚本中也能够写PlayReverse
NGUI中一个元素要能触发OnClick事件。必需要在UICamera的渲染范围内,位于UICamera的Event Mask包括中。并且有Collider才行
NGUI中有个OnPress(bool isPressed)能够检測按键的弹起和按下。isPressed==true,按下的那一瞬间。isPressed=false,弹起的那一瞬间
NGUI中的元素要可以互动或启用,比方button和输入框或者ScrollView等。必须加一个Collider才行
3.0.6之后的DraggablePanel的脚本名字变了。叫做DragScrollView
要启用CenterOnChild,可能须要又一次打开该场景文件并调整各个Sprite的轴是否在中心
附加UIButton后能够在组件改动面板中改动OnClick以调用脚本中的public接口
NGUI的物体变成预置然后再实例化会失去预置之外的其它物体上挂载的脚本命令调用
NGUI改动button颜色不能改动UISprite.color,须要改动UIButton.defaultcolor,并禁用再启用该button才干看到变化效果
NGUI自带的动画系统正着放倒着放和ResetToBeginning有些小bug
新版3.0.7带了个Layout布局系统,大大简化了布局繁琐程度
能够用类似的语句直接进行相对位置改动
label.leftAnchor.target = obj.transform;
label.leftAnchor.absolute = -25;