独立游戏开发者!进化之路!
Unity
开源游戏引擎
安装
使用UnityHub安装
许可证激活
激活个人版许可证
Unity工程
创建项目时可以创建2D\3D项目,但创建完成后项目结构是相同的,区别在于视图不同,例如图像时作为纹理还是精灵图导入。
创建了3D的项目也可以直接改为3D
创建项目时可以选择使用PlasticSCM进行版本管理
3D or 2D
Unity将游戏场景分为了五类:
- 全3D
- 正交3D
- 包含3D图形的2D玩法
- 包含视差效果的的2D玩法
- 全2D
上述前4项均需要以3D模式创建项目。
项目结构
Unity创建的3D项目大致包含如下一些结构:
1 | Assets // 资源目录,例如场景、脚本、模型等等资源文件均存放于此 |
如果想要移动工程的话,只需要将Assets和Library移动出去即可
Unity界面
- © Game 视图通过场景摄像机模拟最终渲染的游戏的外观效果。单击 Play 按钮时,模拟开始。
- (D) Scene 视图可用于直观导航和编辑场景。根据正在处理的项目类型,Scene 视图可显示 3D 或 2D 透视图。
- (G) The Project 窗口 展示项目文件中Assets文件夹下可以再项目中使用的资源。当往项目中引入资源时,它们会出现在这里
脚本创建
在Assets目录下可以通过右键来创建C#脚本文件,双击打开后,会直接跳到VS,实际上VS在其中只起到编辑器的功能
如果要使用其他的编辑工具,可以在Edit -> proferences -> External Tools -> External Script Editor
来修改
Unity程序
Rigidbody2D
velocity
- 用来设置刚体的速度
- 其值为一个
Vector2
对象用来表示一个2维向量 - 包含两个属性
x
,y
分别代表两个轴上的分量
Input
获取键盘输入
GetKey(name)
- 其中name可以为KeyCode.Space等对象
- 该函数能够监听从键盘按下到键盘抬起整个过程的事件
- 即只要不松开键盘就一直能够监听到
GetKeyDown(name)
- 监听键盘按下事件
GetKeyUp(name)
- 监听键盘抬起事件
GetButtonDonw(name)
- name为字符串,用于监听
"jump"
等Unity预定义键盘映射
- name为字符串,用于监听
GetAxis(name)
- name为字符串
"Horizontal"
等坐标轴变化,使用左右键等Unity预定义为Horizontal
的按键可观测其变化- 值为-1~1间的小数
- 可以理解为监听某个轴上的加速度,加速度逐渐增大,最大值为1最小值为-1
- 松开后值会逐渐衰减,按下后值会逐渐增大
GetAxisRaw(name)
- 同上
- 但取值为-1~1的整数
MonoBehaviour
生命周期:
- Start()
- 第一帧加载结束后调用
- Update()
- 加载每一帧时调用
GetComponent
该方法会搜索当前对象下指定类的Component并返回对象
GetComponent<class>()
封装
public与private
两者的区别除了面对对象中的访问区别外
设置为public的属性可以在Unity的物体对象的脚本中看到,并且进行赋值
但private的属性并不会在其中显示
例如GridBody刚体对象属性,通常设为public,这样我们就能很轻松的在Unity中将精灵的刚体推拽给它以赋值
但很多时候,属性应该默认为private,同时又需要再Unity中显示我们就需要使用SerializeField
:
1 | using System.Collections; |
Unity中public的属性是默认序列化的,如果不希望public的属性被显示,则需要使用[HidenInInspector]
进行隐藏
该特性脱胎于C#的Attribute,类似于python的修饰器,以及java的注解
1 | // 定义 |