第3章 Unity3D引擎的腳本編程-3.1C#腳本語言基礎(chǔ)_第1頁
第3章 Unity3D引擎的腳本編程-3.1C#腳本語言基礎(chǔ)_第2頁
第3章 Unity3D引擎的腳本編程-3.1C#腳本語言基礎(chǔ)_第3頁
第3章 Unity3D引擎的腳本編程-3.1C#腳本語言基礎(chǔ)_第4頁
第3章 Unity3D引擎的腳本編程-3.1C#腳本語言基礎(chǔ)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

.第3章

C#腳本編程

3.1C#腳本語言基礎(chǔ)

.目錄.6.

Input輸入

.2.第一個腳本游戲

.3.

MonoBehaviour類

.4.

GameObject類

.5.Transform類

.1

.腳本編輯器

1.

腳本編輯器

可登錄VisualStudio的官網(wǎng),選擇VisualStudio2019Community版進行下載、安裝。VisualStudio安裝完成后,在Unity編輯器的菜單欄中選擇“Edit”>“Preferences”,選擇“ExternalTools”,在“ExternalScriptEditor”下拉列表框中將腳本編輯器設(shè)為VisualStudio2019(Community),如圖所示。這樣,在Unity中雙擊腳本文件,即可直接打開VisualStudio2019軟件,編寫腳本。2.

第一個腳本游戲

在Unity中,開發(fā)者編寫的每一個腳本都被視為一個自定義組件(Component),可通過AddComponent的方式將腳本添加到游戲?qū)ο笾小?/p>

用Unity完成第一個腳本程序:

(1)啟動Unity,新建項目,在Hierarchy面板中創(chuàng)建一個新的游戲?qū)ο驝ube;(2)在Project面板中右鍵單擊,在彈出的快捷菜單中選擇“Create”>“Folder”,創(chuàng)建一個Scripts文件夾來管理項目中創(chuàng)建的腳本;(3)Project面板中右鍵單擊,彈出的快捷菜單中選擇“Create”>“C#Script”,在Assets/Scripts文件夾下創(chuàng)建一個新的腳本,默認名稱為NewBehaviourScript.cs,將其重命名為Pratise1.cs;(4)雙擊Pratice1.cs腳本文件,打開VisualStudio編譯器,如圖所示;(5)在Start()函數(shù)中添加一行語句,然后保存腳本;

Debug.Log("TheFisrtProgram");(6)回到Unity編輯器,將Pratise1.cs腳本拖曳到Hierarchy面板的Cube對象上,也可直接將其拖曳到Cube對象的Inspector面板中;(7)單擊運行按鈕,可以看到Console面板中出現(xiàn)輸出信息3.

MonoBehaviour類

MonoBehaviour類是Unity中所有腳本的基類,所有腳本類均需要從它直接或間接繼承,定義了基本的腳本行為,還定義了對各種特定事件(如模型碰撞、鼠標(biāo)移動)的響應(yīng)方法。

幾個常用的必然事件函數(shù):

Awake():腳本喚醒函數(shù),腳本實例在創(chuàng)建時立刻調(diào)用,早于Start()調(diào)用;

Start():只在腳本實例被啟用時調(diào)用,位于Awake()函數(shù)之后,在第一次Update()函數(shù)執(zhí)行前調(diào)用,通常用于游戲?qū)ο蟮某跏蓟?/p>

Update():每幀刷新時調(diào)用一次,用于更新游戲場景和狀態(tài),大部分游戲代碼寫在此函數(shù)中;若游戲以每秒60幀的速度運行,則Update()將被調(diào)用60次;

FixedUpdate():固定更新函數(shù),每個固定物理時間間隔調(diào)用一次,用于對象物理狀態(tài)的更新;

LateUpdate():延遲更新函數(shù),每幀調(diào)用一次,在Update()之后,用于調(diào)整腳本執(zhí)行順序,與相機有關(guān)的更新一般放在此函數(shù)中。4.GameObject類

GameObject類是Unity場景里面所有實體的基類。Unity中的所有實體都是游戲?qū)ο?,如Unity自帶的球體、正方體等各種物體以及場景中使用的模型等。常用屬性有:

transform:附屬于此游戲?qū)ο笊系腡ransform組件。;

tag:游戲?qū)ο蟮臉?biāo)簽;常用的靜態(tài)函數(shù)有:

GameObject.CreatePrimitive():創(chuàng)建一個帶有基本網(wǎng)格渲染器和相應(yīng)碰撞器的游戲?qū)ο螅?/p>

GameObject.Find():查找并返回指定名稱的游戲?qū)ο?,若此游戲?qū)ο鬀]有被找到,則返回空。;

GameObject.FindWithTag():查找一個用tag做標(biāo)識的活動的游戲?qū)ο?,如果沒有找到則為空。 GameObject.Instantiate():克隆游戲?qū)ο蟛⒎祷乜寺ο?。常用函?shù): gameObject.GetComponent():獲取指定的組件,如果沒有則為空 gamObject.AddComponent():添加一個組件到游戲?qū)ο?gameObject.SetActive():激活或停用此游戲?qū)ο?.Transform類

在Unity場景中的每一個游戲?qū)ο蠖加蠺ransform組件,用于儲存并操控物體的位置Position、旋轉(zhuǎn)Rotation和縮放Scale。獲取游戲?qū)ο蟮奈恢茫?/p>

transform.position:獲得物體在世界坐標(biāo)系中的三維坐標(biāo)值,保存在對象Vector3(x,y,z)中。

Vector3.right:表示X軸正方向,相當(dāng)于Vector3(1,0,0);

Vector3.up:表示Y軸正方向,相當(dāng)于Vector(0,1,0);

Vector.forward:表示Z軸正方向,相當(dāng)于Vector3(0,0,1)。移動游戲?qū)ο螅?/p>

transform.Translate(Vector3offset):將游戲?qū)ο蟀粗付ǚ较蚝途嚯x移動。

相當(dāng)于transform.position=transform.position+offset。

transform.Translate(Vector3,Space):Space代表坐標(biāo)系,其中可使用Space.Self表示自身體系、Space.World表示世界體系。若Space省略不寫,則是指Space.Self??s放游戲?qū)ο螅?/p>

Transform.localScale:自身縮放旋轉(zhuǎn)游戲?qū)ο?/p>

transform.Rotate():游戲?qū)ο蟀粗付ǖ臍W拉角旋轉(zhuǎn)、自轉(zhuǎn);

transform.RotateAround(point,axis,angle):游戲?qū)ο髧@某個點旋轉(zhuǎn)。6. Input輸入類

Input是輸入系統(tǒng)的接口,使用Input類能夠讀取輸入管理器設(shè)置的按鍵,以及訪問移動設(shè)備的多點觸控或加速感應(yīng)數(shù)據(jù)。獲取鼠標(biāo)操作信息的常用函數(shù):

Input.GetMouseButton():獲取鼠標(biāo)按鍵狀態(tài),返回true或false;當(dāng)指定的鼠標(biāo)按鍵被按下時返回true,其中0對應(yīng)鼠標(biāo)左鍵,1對應(yīng)鼠標(biāo)右鍵,2對應(yīng)鼠標(biāo)中鍵。。

Input.GetMouseButtonDown():獲取鼠標(biāo)按鍵按下狀態(tài),當(dāng)用戶按下指定鼠標(biāo)按鍵時的那一幀返回true。

Input.GetMouseButtonUp():獲取鼠標(biāo)按鍵彈起狀態(tài),當(dāng)用戶釋放指定鼠標(biāo)按鍵時的那一幀返回true。獲取鍵盤按鍵信息的常用函數(shù):

Input.GetKey():獲取鍵盤按鍵狀態(tài),當(dāng)指定的鍵盤按鍵被用戶按住時返回true。

Input.GetKeyDown():獲取鍵盤按鍵按下信息,當(dāng)用戶按下指定名稱的按鍵時的那一幀返回true。

Input

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論