版本记录
版本号 | 时间 |
---|---|
V1.0 | 2019.01.29 星期二 |
前言
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。网页游戏 坦克英雄和手机游戏王者荣耀都是基于它的开发。
下面我们就一起开启Unity之旅。感兴趣的看下面几篇文章。
1. Unity开启篇(一) —— Unity界面及创建第一个简单的游戏 (一)
2. Unity开启篇(二) —— Unity界面及创建第一个简单的游戏 (二)
3. Unity开启篇(三) —— 一款简单射击游戏示例 (一)
4. Unity开启篇(四) —— 一款简单射击游戏示例 (二)
5. Unity开启篇(五) —— 一款简单射击游戏示例 (三)
6. Unity开启篇(六) —— Unity动画简介 (一)
7. Unity开启篇(七) —— Unity动画简介 (二)
8. Unity开启篇(八) —— Unity声音简介(一)
9. Unity开启篇(九) —— Unity声音简介(二)
10. Unity开启篇(十) —— Unity粒子系统简介(一)
11. Unity开启篇(十一) —— Unity粒子系统简介(二)
12. Unity开启篇(十二) —— Unity脚本简介(一)
13. Unity开启篇(十三) —— Unity脚本简介(二)
14. Unity开启篇(十四) —— Unity UI简介(一)
15. Unity开启篇(十五) —— Unity UI简介(二)
16. Unity开启篇(十六) —— Unity UI简介(三)
17. Unity开启篇(十七) —— Unity UI简介(四)
开始
本系列的第三部分也是最后一部分都是关于Unity的UI的。
在第一二部分中,您创建了一个菜单场景,具有自适应背景和整齐控制的图形元素,这得益于使用的锚点,枢轴和其他很酷的技巧。
第三四部分是关于动画按钮和动作,以使您的游戏超级互动。
现在,您将以这些技能为基础,完善您对Unity UI的理解,但您不会停止使用新的菜单。 您还可以将RocketMouse
游戏场景从旧的GUI
系统迁移到新的UI系统!
Creating a Sliding Menu
在许多情况下,您希望为用户提供对某些游戏选项或功能的轻松访问,但不希望在屏幕上浪费空间。 这是滑动菜单的工作。
你以前见过这些:它们是一个控件,它包含一个始终可见的小而不张扬的按钮,以及一个滑出以显示选项的菜单。 您的第一步是添加该按钮。
1. Adding an Open Button
在完成本系列的前几部分之后,您应该已经知道如何添加按钮,但如果不知道,则以下说明应该足以让您完成任务。
在菜单中选择GameObject \ UI \ Button
。 将新添加的按钮重命名为Btn_Slide
并删除嵌套的Text
对象,因为该按钮不需要标签。
在层次结构中选择Btn_Slide
,然后在“项目”窗口中打开Menu
文件夹。 将btn_9slice_normal
图像拖动到检查器中的Source Image
字段。
现在按如下方式设置按钮位置和大小:
- 1) 将
Anchors
设置为bottom-left
。 - 2) 将
Pos X
和Pos Y
都设置为80。 - 3) 将
Width
和Height
设置为64。
这就是完成第一步的简单程度。
2. Add the Masking Panel
要创建此控件,您将需要两个面板。 一个将定义mask,另一个将在mask内移动。
注意:如果您不完全确定mask是什么,请不要担心。 只需按照步骤操作,您就会看到它是如何实时工作的。 您需要让两个面板都能看到它。
选择GameObject \ UI \ Panel
以创建将作为蒙版的第一个面板。 这会将Panel
添加到Hierarchy
中。 选择它并按照以下步骤操作:
- 1) 将其重命名为
Pnl_Mask
。 - 2) 将其拖到
Btn_Slide
上以将其添加为子对象。 - 3) 将
Anchors
设置为top-center
。 - 4) 将
Pivot
设置为(0.5,0)
- 5) 将
Pos X
和Pos Y
都设置为0。 - 6) 将
Width
设置为64,将Height
设置为192。 - 7) 单击
Add Component
按钮并选择UI \ Mask
,添加掩码组件。 - 8) 取消选中
mask component
对话框中的Show Mask Graphic
。
注意:您不必总是使用蒙版添加面板作为按钮的子节点。 但是当你这样做时,你确保当按钮移动时,遮蔽面板随之移动。
3. Adding the Content Panel
通过选择GameObject \ UI \ Panel
添加另一个面板并执行以下步骤:
- 1) 将其重命名为
Pnl_Content
- 2) 将其添加为
Pnl_Mask
的子级
注意:您是否注意到只能看到白色面板的一小部分,尽管其尺寸没有变化? 在使用蒙版将其添加为面板的子项后,您现在只能看到
pnl_content
的部分在pnl_mask
区域之内。
- 3) 将锚定设置为
stretch-stretch
。 - 4) 将Left,Top,Right和Bottom设置为0。
- 5) 将
Pivot
设置为(0.5,1)
现在是时候更改内容面板的背景图像了。
在“项目”窗口中打开Menu
文件夹,然后选择slide_menu_panel_9slice
图像。 在Inspector
中打开Sprite Editor
并将所有Border
值设置为8,单击Apply
!
之后,在Hierarchy
中选择Pnl_Content
,然后将slide_menu_panel_9slice
从Project
窗口拖到Inspector
中的Source Image
字段。
在下面的GIF中,您可以看到内容面板的外观和掩码(mask)
组件的工作方式。
注意:如您所见,蒙版的工作方式与墙上的窗口类似。 如果有人沿着墙走,你只能在他经过窗户时看到他。 另一种思考方式是作为隐形设备,只允许一部分图像透过。
4. Adding Buttons
您将要在滑动菜单中添加三个按钮。
要创建第一个按钮,请选择GameObject \ UI \ Button
。 将其重命名为Btn_About
并删除text
子项。
将Btn_About
按钮拖到层次结构中的Pnl_Content
上,将其添加为子项。 在“项目”窗口中打开Menu
文件夹,然后将slide_menu_btn_about
拖动到“检查器”中的Source Image
。 单击Set Native Size
。
将Anchors
设置为top-center
,将Pivot
设置为(0.5,1)
。 之后,将Pos X
设置为0,将Pos Y
设置为0。
现在轮到你自己添加两个剩余的按钮了。
将它们命名为Btn_Achievements
和Btn_Leaderboards
,并分别使用slide_menu_btn_achievements
和slide_menu_btn_leaderboards
图像。
如果您需要提示,请看下面。
右键单击
Hierarchy
中的Btn_About
,然后选择Duplicate
。 是的,这次你会采取简单的方法。将副本重命名为
Btn_Achievements
,将其Pos X
更改为0,将Pos Y
更改为-64,并使用Project
窗口中Menu
菜单中的slide_menu_btn_achievements
作为Source Image
。之后,复制成就按钮。 将其命名为
Btn_Leaderboards
,将Pos X
设置为0,将Pos Y
设置为-128,并使用slide_menu_btn_leaderboards
作为源图像。
下面就是你看到的最后结果
Making the Panel Slide Up and Down
要使面板上下滑动,您将使用与按钮和设置对话框相同的技术。
这将很容易,只需按照以下步骤操作:
- 1) 在
Hierarchy
中选择Pnl_Content
并打开Animation
视图。 - 2) 单击
Create
按钮创建一个新剪辑。 - 3) 将动画命名为
sliding_menu_down
并将其保存为Animations
文件夹。
- 4) 单击时间轴中的
1:00
标记。 这也应该在Animation view
中启用录制。 按红色圆圈按钮将其打开,然后查找播放控件以变为红色。 - 5) 在
Inspector
中将Top
设置为192,然后停止录制。
- 6) 在
Project
窗口中打开Animations
文件夹,然后选择sliding_menu_down
。 在检查器中取消选中Loop Time
。
- 7) 在
Hierarchy
中选择Pnl_Content
并打开Animator
视图。 复制并粘贴sliding_menu_down
状态以创建副本。
- 8) 将副本重命名为
sliding_menu_up
,并在检查器中将其Speed
设置为-1。
- 9) 创建两个转换:从
sliding_menu_up
到sliding_menu_down
,从sliding_menu_down
到sliding_menu_up
。
- 10) 添加名为
isHidden
的新Bool
参数,并将其默认值设置为true
。
- 11) 选择从
sliding_menu_up
到sliding_menu_down
的转换,并在条件列表中将isHidden
设置为true
。
- 12) 选择从
sliding_menu_down
到sliding_menu_up
的转换,这次设置条件为isHidden
等于false
。
- 13) 接下来,右键单击
Animator
并选择Create State
,然后选择Empty
。
- 14) 在
Inspector
中,将状态命名为idle
。 接下来,右键单击状态,然后选择Set as Layer Default State
。 创建idle
到sliding_menu_up
之间的转换。 将Condition
设置为isHidden
等于false
。
- 15) 在层次结构中选择
Pnl_Content
并打开Animation View
。 创建一个新的动画片段并将其称为idle
。
- 16) 在第一个关键帧中,将
Top
设置为192,然后停止录制。
就是这样,16个简单的步骤!选择保存场景(Save Scenes )
以保存到目前为止的工作。 不幸的是,当你运行游戏时,没有任何反应。
Adding Code to Toggle the Menu
现在是时候让事情发生变化了,你会在代码中做到这一点。 在代码编辑器中打开UIManagerScript
并添加以下实例变量:
public Animator contentPanel;
之后,添加以下方法:
public void ToggleMenu()
{
bool isHidden = contentPanel.GetBool("isHidden");
contentPanel.SetBool("isHidden", !isHidden);
}
这样可以在打开滑动菜单时设置动画构件,并设置正确的isHidden
参数值。
保存脚本并切换回Unity
。 在Unity中,在层次结构中选择UIManager
,然后将Pnl_Content
从层次结构拖动到检查器中的Content Panel
字段。
现在,在Hierarchy
中选择Btn_Slide
。 在Inspector
中,找到On Click(Button)
事件处理程序列表,并通过单击+
按钮添加新的事件处理程序。
之后,将UIManager
从Hierarchy拖到该新处理程序。 然后,在函数选择下拉列表中,选择UIManagerScript \ ToggleMenu()
。
选择Save Scenes
以保存您的工作,运行场景(run the scene)
并在您的酷炫滑动上下菜单中享受。
后记
本篇主要讲述了Unity UI简介,感兴趣的给个赞或者关注~~~