跪求官方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打包的,放在其他的文件夹里面可以
5.注册一个在Button组件的Inspector面板里面能看到函数名称和参数的点击事件,要用UnityEventTools.AddPersistentListener,只能在Editor下运行
-------------------------------------------------------------------------------------------------------------------------------------------------------------
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中的元素要能够互动或启用,比如按钮和输入框或者ScrollView等,必须加一个Collider才行
3.0.6之后的DraggablePanel的脚本名字变了,叫做DragScrollView
要启用CenterOnChild,可能需要重新打开该场景文件并调整各个Sprite的轴是否在中心
附加UIButton后可以在组件修改面板中修改OnClick以调用脚本中的public接口
NGUI的物体变成预置然后再实例化会失去预置之外的其他物体上挂载的脚本命令调用
NGUI修改按钮颜色不能修改UISprite.color,需要修改UIButton.defaultcolor,并禁用再启用该按钮才能看到变化效果
NGUI自带的动画系统正着放倒着放和ResetToBeginning有些小bug
新版3.0.7带了个Layout布局系统,大大简化了布局繁琐程度
可以用类似的语句直接进行相对位置修改
label.leftAnchor.target = obj.transform;
label.leftAnchor.absolute = -25;