Unity处女作学习总结--第一天
2017-08-22 21:42
323 查看
写在开始:本人试做是一个2D RPG游戏(可能会因为素材的缺少而变味,但是想要实现袖珍的完整系统),想要实现一般RPG的UI系统,生命属性系统,装备技能系统。处女作嘛,难免可能对概念的阐述有所偏差,还请海涵。
GUI的处理(这里的GUI包括血条,地图等HUD(Head Up Display)和像开始按钮,物品栏按钮之类的总和。)
首先,在最开始,对于GUI的处理就很是困惑,就我所知,一般有两种方式实现,一种是脚本绘制型,一种是编辑器编辑型。脚本编辑型:
void OnGUI(){ // 指定位置 if(GUI.Button(new Rect(0,0,100,100),"Start Game")){ // do something; } // 由GUILayout 自己计算位置,生成按钮 if(GUILayout.Button("This is a layout button")){ // do something; } }
编辑器编辑型:
在GameObject -> Create -> UI -> Button。然后编辑器去拖拉 锚点(Anchors),大小,轴点(Pivot)。
然后在 OnClick()函数中指定对象,指定函数。每个函数只能传递一个参数,如果要多传参数,那么多加几个函数对象,指定参数。
指定的函数执行顺序为从上到下,因此可以合理控制参数顺序。
其他的同理,只不过多一些指定的Sprite 之类的
这两种各有优劣,本来我学的是通过脚本编辑型,这种方式通过脚本控制起来非常的顺手,基本很少涉及Project 中对象的 引用问题。但是不太好的就是他的屏幕适应性太差,比如说你在1920 * 1080 屏幕下建的窗口,按钮,在其他分辨率下显示效果就非常糟糕。如果已经有确定的屏幕分辨率 ,这种方法倒是相当之棒。
而编辑器编辑则是通过指定位置,大小,解决了分辨率问题,但是和脚本的互动就有点不尽人意。
最后我选择的是绝大多数采用编辑器编辑,像固定的UI元素,按钮之类的。对于数量非常多的UI元素(如物品格子),使用脚本编辑。
当前成果:建立了一个生命栏,工具栏(人物,物品,设定等按钮,交互未完成),开始菜单。
UI元素交互:
这里使用的角色是 Unity标准库中的2D 角色(CharacterRobotBoy)。本身自带摄像机脚本,运动脚本(都非常简单)。关于运动动画那一块,主要的也就是参数的传递,接收等,没有什么太麻烦的,就对角色这一块先不管。
开始编写代码,首先开始的设想是将所有的UI事件放到一个脚本中(MyUIEvent.cs),这样一个脚本就能处理从开始菜单、游戏菜单、暂停菜单。
(后来测试发现这不是很合理,因为不同的场景往往需要不同的UI对象引用,如果所有的场景UI都用一个 脚本的话,在切换场景之后就可能造成 NullReference Exception->空引用异常。所以后来为单独设计UI)。
在按钮的通信上,通常事件的行为是触发型的,一个事件的发生可能会对多个对象造成影响,为了兼顾以后可能增加的功能,对于按钮使用事件委托机制,暂时让他实现按钮点击打印信息。
对于开始菜单,
开始按钮只是做了一个加载指定场景的功能。
退出按钮编辑器模式下不可用。
第一天~~~~
相关文章推荐
- Unity处女作学习总结--第一天
- Unity处女作学习总结--第一天
- Unity处女作学习总结--第一天
- Unity处女作学习总结--第四、五天
- Unity处女作学习总结--第二、三天
- Unity处女作学习总结--第二、三天
- Unity处女作学习总结--第二、三天
- Unity处女作学习总结--第二、三天
- Unity处女作学习总结--第四、五天
- UNITY学习的第一天总结
- Unity处女作学习总结--第四、五天
- Unity处女作学习总结--第四、五天
- 第一天:NodeJs Windows环境搭建、学习资料地址、注意事项总结
- 【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
- [Unity3D学习]Unity代码热更新解决方案测试结果总结
- 黑马程序员---第一天学习JAVA的总结,压箱底了,翻出来留个纪念
- UNITY学习的第二天总结
- unity学习的第一天
- 寒假学习unity的第一天
- 【Unity学习笔记】总结:unity中的中括号:[SerializeField][HideInInspector]等等(更新中)