Unity3D數字孿生筆記(八)
- 一、腳本介紹
- 1、腳本
- 1>介紹
- 2>語法結構
- 3>編譯程序
- 4>修改腳本模板
- 2、開發工具
- 1>MonoDevelop
- 2>Visual Studio
- 3>Console
- 3、腳本生命周期
- 1>簡介
- 2>初始階段
- 3>物理階段
- 4>輸入事件
- 5>游戲邏輯
- 6>場景渲染
- 7>結束階段
- 4、除錯
- 1>使用Unity編輯器
- 2>使用VS
- 3>使用MonoDevelop
一、腳本介紹

1、腳本
1>介紹
- 腳本是附加在游戲物體上用于定義游戲物件行為的指令代碼
- Unity支持三種高級編輯語言:
C#、JavaScript、BooScript(現在不支持)
2>語法結構
- 檔案名與類名必須一致
- 寫好的腳本必須附加到物體上才能執行
- 附加到游戲物體的腳本類必須從MonoBehaviour類繼承
using 命名空間;//命名空間避免重名
public class 類名:MonoBehaviour
{
void 方法名()
{
Debug.Log("除錯顯示資訊");
print("本質就是Debug.Log方法");
}
}
3>編譯程序
- 編譯運行程序:
源代碼 -->(CLS) -->中間語言 -->(Mono Runtime) -->機器碼
4>修改腳本模板
1、圖示單擊滑鼠右鍵 -->屬性
2、打開檔案位置

3、依次選擇Data --> Resources --> ScriptTemplates

4、選擇81開頭的txt,并以VS打開或記事本打開,改寫成如下格式,保存即可

2、開發工具
1>MonoDevelop
- Unity 自帶腳本編譯器,創建Mono應用程式,適用于Linux、Mac OS X和Windows的集成開發環境,支持C#、BOO和JavaScript等高級編程語言
2>Visual Studio
- 微軟公司的開發工具包,包括了整個軟體生命周期中需要的大部分工具,如團隊開發工具、繼承開發環境等
- 在Unity中通過選單設定修改默認的腳本編輯器:
Edit ——Preferences——External Tools——External Script Editor
3>Console
3、腳本生命周期

1>簡介
- Unity腳本從喚醒到銷毀的程序
- 訊息:當滿足某種條件Unity引擎自動呼叫的函式
- 也稱為必然事件
2>初始階段
- Awake 喚醒:
當物體載入時立即呼叫1次;常用于在游戲開始前進行初始化,可以判斷當滿足某種條件執行此腳本 this.enable = true - OnEnable 當可用:
每當腳本物件啟用時呼叫 - Start 開始:
物體載入且腳本物件啟用時被呼叫1次,常用于資料或游戲邏輯初始化,執行時機晚于Awake,
//**********************初始階段***************************
//執行時機: 創建游戲物件 --> 立即執行1次(早于Start)
//作用:初始化
private void Awake()
{
Debug.Log("Awake--" + Time.time + "--" + this.name);
}
//執行時機: 創建游戲物件 --> 腳本啟用 -->才執行(1次)
//作用:初始化
private void Start()
{
Debug.Log("Start--" + Time.time + "--" + this.name);
}
3>物理階段
-
FixedUpdate 固定更新:
1、腳本啟用后,固定時間被呼叫,適用于對游戲物件做物理操作,例如移動等
2、設定更新頻率:“Edit” -->“Project Setting” --> “Time” -->"Fixed Timestep"值,默認0.02s -
OnCollisionXXX 碰撞:
當滿足碰撞條件時呼叫 -
OnTriggerXXX 觸發:
當滿足觸發條件時呼叫
//**********************物理階段***************************
//執行時機:每隔固定(默認0.02s)時間執行1次 (時間可以修改)
//適用性:適合對物體做物理操作(移動、旋轉……),不會受到渲染影響
private void FixedUpdate()
{//渲染時間不固定(每幀渲染量不同、機器性能不同)
Debug.Log(Time.time);
}
4>輸入事件
- OnMouseEnter 滑鼠移入:
滑鼠移入到當前Collider 時呼叫 - OnMouseOver 滑鼠經過:
滑鼠經過當前Collider 時呼叫 - OnMouseExit 滑鼠離開:
滑鼠離開當前Collider 時呼叫 - OnMouseDown 滑鼠按下:
滑鼠按下當前Collider 時呼叫 - OnMouseUp 滑鼠抬起:
滑鼠在當前Collider 上抬起時呼叫
5>游戲邏輯
- Update 更新:
腳本啟用后,每次渲染場景時呼叫,頻率與設備性能及渲染量有關 - LateUpdate 延遲更新:
在Update函式被呼叫后執行,適用于跟隨邏輯
6>場景渲染
- OnBecameVisible 當可見:
當Mesh Renderer 在任何相機上可見時呼叫 - OnBecameInvisible 當不可見:
當Mesh Renderer 在任何相機上都不可見時被呼叫
7>結束階段
- OnDisable 當不可用:
物件變為不可用或附屬游戲物件非激活狀態時此函式被呼叫 - OnDestory 當銷毀:
當腳本銷毀或附屬的游戲物件被銷毀時被呼叫 - OnApplicationQuit 當程式結束:
應用程式退出時被呼叫
4、除錯
1>使用Unity編輯器
- 將程式投入到實際運行中,通過開發工具進行測驗,修正邏輯錯誤的程序,
- 1.控制臺除錯
Debug.Log(變數);
print(變數); - 2.定義共有變數,程式運行后在檢測面板查看資料
適用性: 簡單邏輯的除錯
2>使用VS
- 準備作業:
(1)安裝 vstu20xx 工具
(2)在Unity專案面板中匯入:Visual Studio 20xx Tools - 除錯步驟:
(1)在可能出錯的行添加斷點
(2)選單欄——除錯——附加Unity除錯程式
(3)在Unity中Play場景 - Update中進行單幀除錯:
(1)選單欄——除錯——附加Unity除錯程式
(2)Unity中運行游戲場景
(3)暫停場景
(4)加斷點
(5)單幀運行
(6)結束除錯 - 除錯程序中,輸入代碼的方式:
(1)右鍵—>快速監視
(2)查看"即時視窗"
適用性: 復雜邏輯的除錯
3>使用MonoDevelop
- 在可能出錯的行添加斷點
- 啟動除錯:點擊MD選單欄"Run"—>Attach to Processs按鈕
- 在Unity中Play場景
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/330289.html
標籤:其他
上一篇:fast-mock一個可快速生成測驗類、Mock方法的工具,提升你50%的單測效率
下一篇:優秀github博主
