目录
实验一... 4
(1)设计如下UI界面,其中包含了canvas、Panel、Text、Button、Image、RawImage等UI元素... 4
(2)实现点击Play按钮转换场景,点击Exit退出游戏的功能... 5
(3)主界面添加音量滑动杆、静音等功能;... 7
实验二... 13
(1)在3d MAX中制作一扇门,实现“开门”“关门”动画,并将动画导出。... 13
(2)在unity设计场景... 14
实验三... 16
(1)首先我在u+上看完了蔡老师的相关课程,感触很深... 16
(2)于是开始找素材和教程,这里我学习的是b站蔡先森_rm-rf的课,很巧,这位b站的老师也姓蔡。... 16
(3)在unity设计“人物”的动画:静止、走路... 16
(4)实现相机跟随... 18
(5)设置奔跑... 22
(6)设置重力... 22
(7)设置刚体,防止模型掉下去... 23
(8)设计跳跃... 25
(9)设置游戏菜单... 27
(10)了解射线,实现射击... 31
(11)实现射速控制... 35
(12)设计射击子弹数量,打空一个弹夹... 35
(12)增加子弹显示界面ui 36
(13)实现子弹的装填... 38
(15)人物行走奔跑脚步声... 39
可以看到已经成功播放了。... 40
(16)添加枪口火焰,声音,光效... 40
(17)添加弹孔和火花特效... 46
(19)增加拿出枪械、静止、查看武器动画... 50
(20)增加行走、奔跑动画... 54
(21)P21增加换子弹的两种动画... 57
(22)P22增加开火、瞄准逻辑... 60
(23)P23增加瞄准开火动画... 62
(24)P24实现射击抛出弹壳效果... 64
(25)实现半自动和全自动模式... 66
实验四... 70
(1)添加音乐配置... 70
(2)添加键位提示... 71
(3)修复bug,优化整体逻辑... 72
(5)编译手机端apk. 102
(6)心血来潮适配安卓版apk—添加摇杆... 111
(7)无意间看到unity做ar的例子,突发奇想—适配ar!... 118
(8)移动端小结... 125
实验1: 仿真系统的UI界面设计 |
- 实验目的:
|
(1)熟悉Unity中UI界面的设计与编写 (2)熟悉UI界面中场景转换,UI与场景内容相互关联的方式。 |
- 实验内容:
|
(1)自行设计一个UI界面; (2)UI界面中包括canvas、Image、RawImage、Button等多种UI元素; (3)实现点击Play按钮转换场景,点击Exit退出游戏的功能; (4)实现主界面添加音量滑动杆、静音等功能; (5)为UI界面单独设置一个场景,并设置编号为0。 |
实验一
(1)设计如下UI界面,其中包含了canvas、Panel、Text、Button、Image、RawImage等UI元素
(2)实现点击Play按钮转换场景,点击Exit退出游戏的功能
创建脚本:Login.cs
在脚本中添加:using
UnityEngine.SceneManagement;
脚本内容:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Login : MonoBehaviour
{
public void Enter()
{
SceneManager.LoadScene(1);
}
public void ReturnUi()
{
SceneManager.LoadScene(0);
}
public void ExitGame()
{
Application.Quit();
}
}
脚本中编号为1的场景在之后的实验中会逐渐完善。这次受到蔡老师上课的启发,决心做一款属于自己的fps射击游戏。
将脚本中的方法挂载到Button上
然后将enter()方法添加进去,如图所示
同理,将exit()方法添加到第二个Button中
接下来运行程序,点击“进入我的世界”,可得到:
(3)主界面添加音量滑动杆、静音等功能;
在脚本管理器中添加Audio Source,将下载好的音乐文件放入AudioClip中(其中Unity支持AIFF WAV MP3 OGG等)
如下图所示:
如图在Toggle中添加脚本管理器
并找到mute
在Slider中添加volume
添加脚本:MusicControl.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MusicControl : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
MusicPlayControl();
}
void MusicPlayControl()
{
if (Input.GetKeyDown(KeyCode.O))
{
GetComponent<AudioSource>().Pause();
}
else if (Input.GetKeyDown(KeyCode.P))
{
GetComponent<AudioSource>().UnPause();
}
}
}
该脚本的意思是当按下P键时音乐暂停播放,按下空格键时音乐继续播放
注意:将这两个选项选中
并将下面选项去掉(Toggle中)
最终的UI设计界面: