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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

  • 一、腳本介紹
    • 1、腳本
      • 1>介紹
      • 2>語法結(jié)構(gòu)
      • 3>編譯過程
      • 4>修改腳本模板
    • 2、開發(fā)工具
      • 1>MonoDevelop
      • 2>Visual Studio
      • 3>Console
    • 3、腳本生命周期
      • 1>簡介
      • 2>初始階段
      • 3>物理階段
      • 4>輸入事件
      • 5>游戲邏輯
      • 6>場景渲染
      • 7>結(jié)束階段
    • 4、調(diào)試
      • 1>使用Unity編輯器
      • 2>使用VS
      • 3>使用MonoDevelop

一、腳本介紹

1、腳本

1>介紹

  • 腳本是附加在游戲物體上用于定義游戲?qū)ο笮袨榈闹噶畲a
  • Unity支持三種高級編輯語言:
    C#、JavaScript、BooScript(現(xiàn)在不支持)

2>語法結(jié)構(gòu)

  • 文件名與類名必須一致
  • 寫好的腳本必須附加到物體上才能執(zhí)行
  • 附加到游戲物體的腳本類必須從MonoBehaviour類繼承
using 命名空間;//命名空間避免重名 public class 類名:MonoBehaviour {void 方法名(){Debug.Log("調(diào)試顯示信息");print("本質(zhì)就是Debug.Log方法");} }

3>編譯過程

  • 編譯運行過程:
    源代碼 -->(CLS) -->中間語言 -->(Mono Runtime) -->機(jī)器碼

4>修改腳本模板

1、圖標(biāo)單擊鼠標(biāo)右鍵 -->屬性
2、打開文件位置

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

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

2、開發(fā)工具

1>MonoDevelop

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

2>Visual Studio

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

3>Console

3、腳本生命周期

1>簡介

  • Unity腳本從喚醒到銷毀的過程
  • 消息:當(dāng)滿足某種條件Unity引擎自動調(diào)用的函數(shù)
  • 也稱為必然事件

2>初始階段

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

3>物理階段

  • FixedUpdate 固定更新:
    1、腳本啟用后,固定時間被調(diào)用,適用于對游戲?qū)ο笞鑫锢聿僮?#xff0c;例如移動等
    2、設(shè)置更新頻率:“Edit” -->“Project Setting” --> “Time” -->"Fixed Timestep"值,默認(rèn)0.02s

  • OnCollisionXXX 碰撞:
    當(dāng)滿足碰撞條件時調(diào)用

  • OnTriggerXXX 觸發(fā):
    當(dāng)滿足觸發(fā)條件時調(diào)用

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

4>輸入事件

  • OnMouseEnter 鼠標(biāo)移入:
    鼠標(biāo)移入到當(dāng)前Collider 時調(diào)用
  • OnMouseOver 鼠標(biāo)經(jīng)過:
    鼠標(biāo)經(jīng)過當(dāng)前Collider 時調(diào)用
  • OnMouseExit 鼠標(biāo)離開:
    鼠標(biāo)離開當(dāng)前Collider 時調(diào)用
  • OnMouseDown 鼠標(biāo)按下:
    鼠標(biāo)按下當(dāng)前Collider 時調(diào)用
  • OnMouseUp 鼠標(biāo)抬起:
    鼠標(biāo)在當(dāng)前Collider 上抬起時調(diào)用

5>游戲邏輯

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

6>場景渲染

  • OnBecameVisible 當(dāng)可見:
    當(dāng)Mesh Renderer 在任何相機(jī)上可見時調(diào)用
  • OnBecameInvisible 當(dāng)不可見:
    當(dāng)Mesh Renderer 在任何相機(jī)上都不可見時被調(diào)用

7>結(jié)束階段

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

4、調(diào)試

1>使用Unity編輯器

  • 將程序投入到實際運行中,通過開發(fā)工具進(jìn)行測試,修正邏輯錯誤的過程。
  • 1.控制臺調(diào)試
    Debug.Log(變量);
    print(變量);
  • 2.定義共有變量,程序運行后在檢測面板查看數(shù)據(jù)

適用性: 簡單邏輯的調(diào)試

2>使用VS

  • 準(zhǔn)備工作:
    (1)安裝 vstu20xx 工具
    (2)在Unity項目面板中導(dǎo)入:Visual Studio 20xx Tools
  • 調(diào)試步驟:
    (1)在可能出錯的行添加斷點
    (2)菜單欄——調(diào)試——附加Unity調(diào)試程序
    (3)在Unity中Play場景
  • Update中進(jìn)行單幀調(diào)試:
    (1)菜單欄——調(diào)試——附加Unity調(diào)試程序
    (2)Unity中運行游戲場景
    (3)暫停場景
    (4)加斷點
    (5)單幀運行
    (6)結(jié)束調(diào)試
  • 調(diào)試過程中,輸入代碼的方式:
    (1)右鍵—>快速監(jiān)視
    (2)查看"即時窗口"

適用性: 復(fù)雜邏輯的調(diào)試

3>使用MonoDevelop

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。