Unity腳本的結構
每一個腳本就是一個類,只不過在類中沒有之前的我們在C#中接觸的Main方法了。我們寫的邏輯代碼需要直接或者在間接在Unity聲明周期函數中調用。而且這樣的類不需要通過實例化調用對象,只需要將腳本掛載到遊戲對象上即可。根據之前的博客我們已經瞭解過,Unity是組件式開發。腳本也是一個組件。
MonoBehavior腳本和C#腳本的區別
- 不能new 如果腳本繼承MonoBehavior,那麼該類不能被new
- 有自己的聲明週期
- 作爲組件附加在GameObject上面
- 我們在創建腳本的時候,會默認繼承MonoBehavior
控制檯的輸出
在寫程序的時候我們通常會通過控制檯來控制打印日誌信息來配合程序的調試,這個區別於C#語言中的控制檯的輸出。
GameObject和Transform區別
- 特殊組件
- 共生體
- 互相可以獲取
- 新組建的添加和刪除
自定義類型
我們在創建腳本的時候,默認的都會繼承自MonoBehaviour,如果需要其他的類型,我們也可以不繼承自MonoBehaviour,有一點需要注意的就是,我們穿件的腳本的名字一定要和源碼中的類名保持一致,否則就會報錯
訪問修飾符在Unity監控面板的表現
不同的訪問修飾符在程序中的訪問權限是不同的,在Unity面板中的表現也是不一樣的。
Unity生命週期函數
常用的生命週期函數
Awake() 腳本啓動
OnEnable() 腳本可用
Start() 腳本開始
Update() 腳本循環
OnDisable() 腳本不可用
OnDestroy() 腳本銷燬
參考代碼:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Function : MonoBehaviour {
//腳本最先執行的方法
//初始化變量 初始化組件
private void Awake()
{
print("Awake");
}
//腳本可用 腳本激活 不同於對象的激活
//遊戲對象激活的時候會對自身的腳本激活
void OnEnable()
{
Debug.Log("OnEnable");
}
//遊戲開始 晚於Awake
// Use this for initialization
void Start ()
{
}
//遊戲就是一個死循環 在遊戲開始的時候進入死循環
//不同於第一週所學的內容的的是,該死循環不是阻塞式的
//update是幀式的,每幀執行一次Update 每秒執行n幀
//在此方法中執行的是用於遊戲的邏輯
// Update is called once per frame
void Update () {
Debug.Log("Update");
}
//腳本失活,不可用就執行
//可以多次執行
void OnDisable()
{
Debug.Log("OnDisable");
}
//腳本銷燬執行
//腳本刪除的一些還原或者清空數據的操作
void OnDestroy()
{
Debug.Log("OnDestroy");
}
}
Color 顏色
Color是一個結構類型,採用的是三原色,RGB。R就是Red,G就是Green,B就是Blue。RGB色彩模式是工業界的一種顏色標準,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統之一。 在此結構中,定義了一些常用的顏色,我們可以通過,Color.顏色名來獲取單顏色;
我們也可以通過程序來自己自定義顏色。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ColorTest : MonoBehaviour {
public Color m_color;
// Use this for initialization
void Start () {
//Random.Range(0, 1.0f) 我們通過該靜態方法產生隨機數 對於浮點類型來說該方法的兩個參數是一個封閉的區間,換句話說,隨機數可以取到0和1.0f
//但是對於整型int來說 是一個左閉右開的區間 即能取到左邊的值但是取不到右邊的值
m_color = new Color(Random.Range(0,1.0f), Random.Range(0, 1.0f), Random.Range(0, 1.0f));
}
}