寫在前面:
寫本系列(自用)的目的是回顧已經學過的知識、記錄新學習的知識或是記錄心得理解,方便自己以后快速復習,減少遺忘。主要是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) =>{};
}