日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3D数字孪生笔记——Unity脚本篇

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D数字孪生笔记——Unity脚本篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unity3D數字孿生筆記(一)——Unity篇

  • 一、腳本介紹
    • 1、腳本
      • 1>介紹
      • 2>語法結構
      • 3>編譯過程
      • 4>修改腳本模板
    • 2、開發(fā)工具
      • 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>語法結構

  • 文件名與類名必須一致
  • 寫好的腳本必須附加到物體上才能執(zhí)行
  • 附加到游戲物體的腳本類必須從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、開發(fā)工具

1>MonoDevelop

  • Unity 自帶腳本編譯器,創(chuàng)建Mono應用程序,適用于Linux、Mac OS X和Windows的集成開發(fā)環(huán)境,支持C#、BOO和JavaScript等高級編程語言

2>Visual Studio

  • 微軟公司的開發(fā)工具包,包括了整個軟件生命周期中需要的大部分工具,如團隊開發(fā)工具、繼承開發(fā)環(huán)境等
  • 在Unity中通過菜單設置修改默認的腳本編輯器:
    Edit ——Preferences——External Tools——External Script Editor

3>Console

3、腳本生命周期

1>簡介

  • Unity腳本從喚醒到銷毀的過程
  • 消息:當滿足某種條件Unity引擎自動調用的函數
  • 也稱為必然事件

2>初始階段

  • Awake 喚醒:
    物體載入時立即調用1次;常用于在游戲開始前進行初始化,可以判斷當滿足某種條件執(zhí)行此腳本 this.enable = true
  • OnEnable 當可用:
    每當腳本對象啟用時調用
  • Start 開始:
    物體載入且腳本對象啟用時被調用1次,常用于數據或游戲邏輯初始化,執(zhí)行時機晚于Awake
//**********************初始階段***************************//執(zhí)行時機: 創(chuàng)建游戲對象 --> 立即執(zhí)行1次(早于Start)//作用:初始化private void Awake(){Debug.Log("Awake--" + Time.time + "--" + this.name);}//執(zhí)行時機: 創(chuàng)建游戲對象 --> 腳本啟用 -->才執(zhí)行(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 觸發(fā):
    當滿足觸發(fā)條件時調用

//**********************物理階段***************************//執(zhí)行時機:每隔固定(默認0.02s)時間執(zhí)行1次 (時間可以修改)//適用性:適合對物體做物理操作(移動、旋轉……),不會受到渲染影響private void FixedUpdate(){//渲染時間不固定(每幀渲染量不同、機器性能不同)Debug.Log(Time.time);}

4>輸入事件

  • OnMouseEnter 鼠標移入:
    鼠標移入到當前Collider 時調用
  • OnMouseOver 鼠標經過:
    鼠標經過當前Collider 時調用
  • OnMouseExit 鼠標離開:
    鼠標離開當前Collider 時調用
  • OnMouseDown 鼠標按下:
    鼠標按下當前Collider 時調用
  • OnMouseUp 鼠標抬起:
    鼠標在當前Collider 上抬起時調用

5>游戲邏輯

  • Update 更新:
    腳本啟用后,每次渲染場景時調用,頻率與設備性能及渲染量有關
  • LateUpdate 延遲更新:
    在Update函數被調用后執(zhí)行,適用于跟隨邏輯

6>場景渲染

  • OnBecameVisible 當可見:
    當Mesh Renderer 在任何相機上可見時調用
  • OnBecameInvisible 當不可見:
    當Mesh Renderer 在任何相機上都不可見時被調用

7>結束階段

  • OnDisable 當不可用:
    對象變?yōu)椴豢捎没蚋綄儆螒驅ο蠓羌せ顮顟B(tài)時此函數被調用
  • OnDestory 當銷毀:
    當腳本銷毀或附屬的游戲對象被銷毀時被調用
  • OnApplicationQuit 當程序結束:
    應用程序退出時被調用

4、調試

1>使用Unity編輯器

  • 將程序投入到實際運行中,通過開發(fā)工具進行測試,修正邏輯錯誤的過程。
  • 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)右鍵—>快速監(jiān)視
    (2)查看"即時窗口"

適用性: 復雜邏輯的調試

3>使用MonoDevelop

  • 在可能出錯的行添加斷點
  • 啟動調試:點擊MD菜單欄"Run"—>Attach to Processs按鈕
  • 在Unity中Play場景

總結

以上是生活随笔為你收集整理的Unity3D数字孪生笔记——Unity脚本篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。