Unity笔记(五)知识补充——场景切换、退出游戏、鼠标隐藏锁定、随机数、委托
写在前面:
写本系列(自用)的目的是回顾已经学过的知识、记录新学习的知识或是记录心得理解,方便自己以后快速复习,减少遗忘。主要是C#代码部分。
十七、场景切换和退出游戏
1、场景切换
场景切换使用方法: SceneManager.LoadScene(),括号里传入场景名称。
需要引用命名空间using UnityEngine.SceneManagement;
需要注意的是:直接写代码切换场景可能会报错,因为还需要把该场景加载到场景列表中。
在上方菜单栏File中选中Build Settings,在这里加载场景即可:
之后使用这段代码就可以实现按下空格切换场景:
using UnityEngine.SceneManagement;
void Update()
{if(Input.GetKeyDown(KeyCode.Space)){SceneManager.LoadScene("Scene2");}
}
2、退出游戏
退出游戏使用:Application.Quit();
但是在编辑模式下没有作用,一定是发布游戏后才有用:
void Update()
{if(Input.GetKeyDown(KeyCode.Escape)){Application.Quit();}
}
十八、鼠标隐藏锁定相关
1、隐藏鼠标
隐藏鼠标很简单,使用Cursor.visible = false即可:
void Start()
{Cursor.visible = false;
}
2、锁定鼠标
Unity为锁定鼠标也提供了相应的API。
使用:Cursor.lockState = CursorLockMode,共有三个枚举参数:
None,不锁定
Locked锁定,鼠标会被限制在屏幕中心点。不仅会被锁定,还会被隐藏,可以通过esc键摆脱
Confined锁定,限制在窗口范围内,同样也是通过esc键摆脱
void Start()
{Cursor.lockState = CursorLockMode.None;
}
3、设置鼠标图片
设置鼠标图片使用:Cursor.SetCursor(),可以传入三个参数:
参数一:光标图片,图片需要是半透明或者在Inspector窗口中改成光标模式。传入的图片如果宽高相同就不会被压缩
参数二:偏移位置 相对图片左上角
参数三:平台支持的光标模式(硬件或软件),一般不改变,使用自动模式
public Texture2D tex;
void Start()
{Cursor.SetCursor(tex, Vector2.zero, CursorMode.Auto);
}
十九、随机数和Unity自带委托
1、随机数
Unity中随机数生成使用:Random.Range(),例如,生成0~99之间的随机整数:
int randomNum = Random.Range(0, 100);这里不包含最右边的100
假如是生成随机浮点数,左右都包含,如生成1.1~99.9之间的随机浮点数:
float randomNumF = Random.Range(1.1f, 99.9f);
这是Unity命名空间中的随机数生成,与C#命名空间的随机数生成不一样。如果还想使用C#中的生成方法,需要指明命名空间。如下例所示:
void Start()
{//0~99之间的随机数int randomNum = Random.Range(0, 100);print(randomNum);//左右都包含float randomNumF = Random.Range(1.1f, 99.9f);//C#中的,基本不用System.Random r = new System.Random();r.Next(0, 100);
}
2、委托
Unity中的委托和C#委托的用法基本一致,只是使用的方法名不同:UnityAction,这个暂做了解看到了知道是委托就行。
using UnityEngine.Events;
void Start()
{UnityAction uac = () =>{};UnityAction<string> uac1 = (s) =>{};
}