Unity入门——其他

场景切换

有两种创建场景的方法:
通过File菜单选择New Scene
在项目文件夹右键选择Create→Scene

1
2
3
4
//需要引用UnityEngine.SceneManagement命名空间
using UnityEngine.SceneManagement
SceneManager.LoadScene("场景名");
//直接使用此方法可能会报错,需要先将场景添加到场景列表中

添加方式:
通过File→Build Settings打开面板,点击”Add Open Scenes”添加当前打开的场景
直接将场景文件拖入Build Settings面板的Scenes In Build列表

退出游戏

通常绑定到ESC键或退出按钮,在Unity编辑器中运行时无效,仅在发布后的游戏中生效

1
Application.Quit();

鼠标隐藏锁定

隐藏鼠标主要用于第一人称射击游戏等不需要显示鼠标指针的场景。

1
Cursor.visible = false;

锁定鼠标可以将其固定在屏幕中心或窗口范围内,增强游戏沉浸感。

1
2
Cursor.lockState = CursorLockMode.Locked // 锁定到屏幕中心
Cursor.lockState = CursorLockMode.Confined // 限制在窗口范围内

设置鼠标图片

自定义鼠标指针图片,提升游戏视觉效果

1
2
3
public Texture2D tex;
//三个参数,第一个是光标图片,第二个是偏移位置,第三个是平台支持的光标模式
Cursor.SetCursor(tex, Vector2.zero, CursorMode.Auto;

图片宽高应一致,以避免鼠标指针变形。
非透明图片需设置为光标模式,以确保正确显示。

随机数和Unity自带委托

随机数

1
2
3
4
5
int Random.Range(int min, int max);
float Random.Range(float min, float max);
//int版本:左包含右不包含
//float版本:左右都包含
int randomNum = Random.Range(0, 100);

委托

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//C#的自带委托
//无参无返回值
System.Action ac = () =>
{
print("123");
};
System.Action<T1,T2>;

//有返回值
System.Func<TResult> = () =>
{
print("123");
};
System.Func<T1,T2,TResult>;

//Unity自带委托
using UnityEngine.Events
UnityAction uac = ()=>
{

}
UnityAction<T> uac = (s) =>
{

}

模型资源的导入

模型由什么构成

  • 骨骼系统:非必须组件,仅当模型需要动作时才需包含骨骼信息,静态物体不需要骨骼
  • 网格面片:必须组件,由三角形面片拼接构成模型轮廓,建模过程相当于”数字捏泥人”
  • 贴图材质:必须组件,决定模型表面颜色和视觉效果,如同给模型”穿上皮肤”
  • 潜在要素:材质和UV等高级特性暂未涵盖,将在后续课程中专门讲解

Unity支持的模型格式

  • 推荐格式:FBX为官方首推格式,具有最佳兼容性和功能支持
  • 其他格式:支持但不推荐.dae/.3ds/.dxf/.obj等专业建模软件导出格式
  • 格式来源:不同建模软件(Maya/3D Max等)有各自原生格式,但主流软件均可导出FBX
  • 开发规范:团队协作时应统一使用FBX格式,避免格式混乱导致的问题