NGUI
没有使用专用的RectTransform,使用的普通Transform。
NGUI不能在编辑器实时看到UI的各种情况。
可能需要开游戏或者重启组件来进行调整。
图片
类似UGUI中的Image。
分为Sprite和Texture。
Sprite需要一个图集,性能较好。
Texture仅需要一个图片,性能没Sprite好,一般用于背景大图。
按钮
一般使用TMButton,包含一般的动画功能和常用功能。
也可以使用UIButtonScale外加TweenScale。
其中封装好的常见UI动画组件位于Scripts/NGUI/Scripts_Fix/Interaction
别忘记加事件监听和碰撞体组件。
自适应
Anchor锚点,与UGUI相似
但由于NGUI不像UGUI能够Anchor(锚点)套Anchor
如果想要进行Anchor内部嵌套,元素要想使用得添加MyUIAnchor,同时绑定MyAnchorCamera
NGUI的Anchor的注意事项
Anchor 是开发项目几乎必用的一个非常核心的组件,我们在使用时,需要注意以下一些问题。
- 我们在设定了 Anchor 的 Side 锚点之后,Anchor 会自动跑到相应的错点位置上去,不需要我们手动拖动 Anchor。
- 不论是 3DUI 还是 2DUI,Anchor 的用法是一模一样的,不要手动拖动Anchor 的位置。
- 一般情况下,尽量不要去设置 Anchor 的 Relative0ffset 和 Pixel0ffset,就让 Anchor 保持锚点原位置,然后将 UI 控件放到 Anchor 下作为子物体,再去调整 UI 控件的位置。
- Anchor 物体身上,尽量保证只有 Anchor 一个组件,以便于管理维护
- 一套 UI 体系中,可以有无数多个 Anchor(例如有5个 Anchor 都定位于左上角是被允许的),但是,尽量确保 Anchor 的父物体中没有 Anchor,也就是尽量避免 Anchor 中套 Anchor。Anchor 的父物体可以是 UIRoot,也可以是一个空物体。
- 不要滥用 Anchor,如果相机边缘的 9个错点中的每个点都有多个 Anchor来定位,那么一定是 UI 结构的设计有问题了。
移动视图
与UGUI中的ScrollView大同小异。
显示大小由同层次的UIPanel决定。
一般配合UIGrid使用。
不像UGUI中能够直接拖动视图。
需要内部有UIDragScrollView,碰撞体,UIWidget,事件监听等组件的元素。
不然拖动这个元素也无法拖动移动视图。
常用接口:
UI
关键类:
- UIConst
- TMUIBase
- TMUITool
1.获取模糊背景:
获取UI背景:m_BakClose.mainTexture = UIManage.GetInstance().GetBlurUIBackground();
获取场景背景:m_BakClose.mainTexture = UIManage.GetInstance().GetBlurSceneBackground();
释放掉临时生成的背景:
UIManage.GetInstance().ReleaseBlurSceneBackground(m_BakClose. mainTexture as RenderTexture);
2.道具配置字符串解析:
GoodsData gd = GoodsManager.Parse(str, true);
List
3.获取一个UILogic:
GodSoulJueXingUILogic UILogic = GameUIFrameLogic.GetInstance().GetUIInstanceByType(E_UIWindows_Type.E_UIWindows_GodSoulJueXingUI) as GodSoulJueXingUILogic
4.创建和回收GoodIcon
创建:GoodIcon goodIcon= GetGoodsIcon();
回收:goodIcon.ClearGoodsIcon();
ReleasGoodIcons(goodIcon);
5.打开UI面板
TMUITool.UI(E_UIWindows_Type.E_UIWindow_RubiksCube_CastleWarEatUI, true, false, true, true, (int)JiaoSheBattlefield.JiaoSheBattlefieldSystem_Type.KF);
标签:记录,拖动,组件,UI,实习,UGUI,NGUI,Anchor From: https://www.cnblogs.com/asyaB404/p/18627104