小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Unity3D教程:腳本初級(jí)知識(shí)(一) | Unity3D教程手冊(cè)

 3dC 2013-12-11

腳本概覽

這是一個(gè)關(guān)于Unity內(nèi)部腳本如何工作的簡(jiǎn)單概覽。

Unity內(nèi)部的腳本,是通過(guò)附加自定義腳本對(duì)象到游戲物體組成的。在腳本對(duì)象內(nèi)部不同志的函數(shù)被特定的事件調(diào)用。最常用的列在下面:

Update:這個(gè)函數(shù)在渲染一幀之前被調(diào)用,這里是大部分游戲行為代碼被執(zhí)行的地方,除了物理代碼。

FixedUpdate:這個(gè)函數(shù)在每個(gè)物理時(shí)間步被調(diào)用一次,這是處理基于物理游戲的地方。

在任何函數(shù)之外的代碼:

在任何函數(shù)之外的代碼在物體被加載的時(shí)候運(yùn)行,這個(gè)可以用來(lái)初始化腳本狀態(tài)。

注意:文檔的這個(gè)部份假設(shè)你是用Javascript,參考用C#編寫(xiě)獲取如何使用C#和Boo編寫(xiě)腳本的信息。

你也能定義事件句柄,它們的名稱都以O(shè)n開(kāi)始,(例如OnCollisionEnter),為了查看完整的預(yù)定義事件的列表,參考MonoBehaviour 文檔。

常用操作

大多數(shù)游戲物體的操作是通過(guò)游戲物體的Transform或Rigidbody來(lái)做的,在行為腳本內(nèi)部它們可以分別通過(guò)transform和rigidbody訪問(wèn),因此如果你想繞著Y軸每幀旋轉(zhuǎn)5度,你可以如下寫(xiě):

function Update(){
transform.Rotate(0,5,0);
}

如果你想向前移動(dòng)一個(gè)物體,你應(yīng)該如下寫(xiě):

function Update(){
transform.Translate(0,0,2);
}

跟蹤時(shí)間

Time類包含了一個(gè)非常重要的類變量,稱為deltaTime,這個(gè)變量包含從上一次調(diào)用Update或FixedUpdate(根據(jù)你是在Update函數(shù)還是在FixedUpdate函數(shù)中)到現(xiàn)在的時(shí)間量。

所以對(duì)于上面的例子,修改它使這個(gè)物體以一個(gè)恒定的速度旋轉(zhuǎn)而不依賴于幀率:

function Update(){
transform.Rotate(0,5*Time.deltaTime,0);
}

移動(dòng)物體:

function Update(){
transform. Translate (0, ,0,2*Time.deltaTime);
}

如果你加或是減一個(gè)每幀改變的值,你應(yīng)該將它與Time.deltaTime相乘。當(dāng)你乘以Time.deltaTime時(shí),你實(shí)際的表達(dá):我想以 10米/秒移動(dòng)這個(gè)物體不是10米/幀。這不僅僅是因?yàn)槟愕挠螒驅(qū)ⅹ?dú)立于幀而運(yùn)行,同時(shí)也是因?yàn)檫\(yùn)動(dòng)的單位容易理解。( 米/秒)另一個(gè)例子,如果你想隨著時(shí)間增加光照的范圍。下面的表達(dá)式,以2單位/秒改變半徑。

 function Update (){
light.range += 2.0 * Time.deltaTime;
}

當(dāng)通過(guò)力處理剛體的時(shí)候,你通常不必用Time.deltaTime,因?yàn)橐嬉呀?jīng)為你考慮到了這一點(diǎn)。訪問(wèn)其他組件

組件被附加到游戲物體,附加Renderer到游戲物體使它在場(chǎng)景中渲染,附加一個(gè)Camera使它變?yōu)橄鄼C(jī)物體,所有的腳本都是組件,因?yàn)樗鼈兡鼙桓郊拥接螒蛭矬w。

最常用的組件可以作為簡(jiǎn)單成員變量訪問(wèn):

Component             可如下訪問(wèn)

Transform             transform

Rigidbody             rigidbody

Renderer              renderer

Camera                camera (only on camera objects)

Light                 light (only on light objects)

Animation             animation

Collider              collider

…等等。

對(duì)于完整的預(yù)定義成員變量的列表。查看Component,Behaviour和MonnoBehaviour類文檔。如果游戲物體沒(méi)有你想取的相同類型的組件,上面的變量將被設(shè)置為null。任何附加到一個(gè)游戲物體的組件或腳本都可以通過(guò)GetComponent訪問(wèn)。

transform.Translate(0,3,0);  //等同于
GetComponent(Transform).Translate(0, 1, 0);

注意transfom和Transform之間大小寫(xiě)的區(qū)別,前者是變量(小寫(xiě)),后者是類或腳本名稱(大寫(xiě))。大小寫(xiě)不同使你能夠從類和腳本名中 區(qū)分變量。應(yīng)用我們所學(xué),你可以使用GetComponent找到任何附加在同一游戲物體上的腳本和組件,請(qǐng)注意要使用下面的例子能夠工作,你需要有一個(gè) 名為OtherScript的腳本,其中包含一個(gè)DoSomething函數(shù)。OtherScript腳本必須與下面的腳本附加到相同的物體上。

 function Update(){
otherScript = GetComponent(OtherScript); //這個(gè)在同一游戲物體桑找到名為OtherScript的腳本
otherScript.DoSomething(); //并調(diào)用它上加的DoSomething
}

* 版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息

* 本文來(lái)自:Unity3D 教程手冊(cè)

* 本文鏈接: http://www./1500.html腳本概覽

這是一個(gè)關(guān)于Unity內(nèi)部腳本如何工作的簡(jiǎn)單概覽。

Unity內(nèi)部的腳本,是通過(guò)附加自定義腳本對(duì)象到游戲物體組成的。在腳本對(duì)象內(nèi)部不同志的函數(shù)被特定的事件調(diào)用。最常用的列在下面:

Update:這個(gè)函數(shù)在渲染一幀之前被調(diào)用,這里是大部分游戲行為代碼被執(zhí)行的地方,除了物理代碼。

FixedUpdate:這個(gè)函數(shù)在每個(gè)物理時(shí)間步被調(diào)用一次,這是處理基于物理游戲的地方。

在任何函數(shù)之外的代碼:

在任何函數(shù)之外的代碼在物體被加載的時(shí)候運(yùn)行,這個(gè)可以用來(lái)初始化腳本狀態(tài)。

注意:文檔的這個(gè)部份假設(shè)你是用Javascript,參考用C#編寫(xiě)獲取如何使用C#和Boo編寫(xiě)腳本的信息。

你也能定義事件句柄,它們的名稱都以O(shè)n開(kāi)始,(例如OnCollisionEnter),為了查看完整的預(yù)定義事件的列表,參考MonoBehaviour 文檔。

常用操作

大多數(shù)游戲物體的操作是通過(guò)游戲物體的Transform或Rigidbody來(lái)做的,在行為腳本內(nèi)部它們可以分別通過(guò)transform和rigidbody訪問(wèn),因此如果你想繞著Y軸每幀旋轉(zhuǎn)5度,你可以如下寫(xiě):

function Update(){
transform.Rotate(0,5,0);
}

如果你想向前移動(dòng)一個(gè)物體,你應(yīng)該如下寫(xiě):

function Update(){
transform.Translate(0,0,2);
}

跟蹤時(shí)間

Time類包含了一個(gè)非常重要的類變量,稱為deltaTime,這個(gè)變量包含從上一次調(diào)用Update或FixedUpdate(根據(jù)你是在Update函數(shù)還是在FixedUpdate函數(shù)中)到現(xiàn)在的時(shí)間量。

所以對(duì)于上面的例子,修改它使這個(gè)物體以一個(gè)恒定的速度旋轉(zhuǎn)而不依賴于幀率:

function Update(){
transform.Rotate(0,5*Time.deltaTime,0);
}

移動(dòng)物體:

function Update(){
transform. Translate (0, ,0,2*Time.deltaTime);
}

如果你加或是減一個(gè)每幀改變的值,你應(yīng)該將它與Time.deltaTime相乘。當(dāng)你乘以Time.deltaTime時(shí),你實(shí)際的表達(dá):我想以 10米/秒移動(dòng)這個(gè)物體不是10米/幀。這不僅僅是因?yàn)槟愕挠螒驅(qū)ⅹ?dú)立于幀而運(yùn)行,同時(shí)也是因?yàn)檫\(yùn)動(dòng)的單位容易理解。( 米/秒)另一個(gè)例子,如果你想隨著時(shí)間增加光照的范圍。下面的表達(dá)式,以2單位/秒改變半徑。

 function Update (){
light.range += 2.0 * Time.deltaTime;
}

當(dāng)通過(guò)力處理剛體的時(shí)候,你通常不必用Time.deltaTime,因?yàn)橐嬉呀?jīng)為你考慮到了這一點(diǎn)。訪問(wèn)其他組件

組件被附加到游戲物體,附加Renderer到游戲物體使它在場(chǎng)景中渲染,附加一個(gè)Camera使它變?yōu)橄鄼C(jī)物體,所有的腳本都是組件,因?yàn)樗鼈兡鼙桓郊拥接螒蛭矬w。

最常用的組件可以作為簡(jiǎn)單成員變量訪問(wèn):

Component             可如下訪問(wèn)

Transform             transform

Rigidbody             rigidbody

Renderer              renderer

Camera                camera (only on camera objects)

Light                 light (only on light objects)

Animation             animation

Collider              collider

…等等。

對(duì)于完整的預(yù)定義成員變量的列表。查看Component,Behaviour和MonnoBehaviour類文檔。如果游戲物體沒(méi)有你想取的相同類型的組件,上面的變量將被設(shè)置為null。任何附加到一個(gè)游戲物體的組件或腳本都可以通過(guò)GetComponent訪問(wèn)。

transform.Translate(0,3,0);  //等同于
GetComponent(Transform).Translate(0, 1, 0);

注意transfom和Transform之間大小寫(xiě)的區(qū)別,前者是變量(小寫(xiě)),后者是類或腳本名稱(大寫(xiě))。大小寫(xiě)不同使你能夠從類和腳本名中 區(qū)分變量。應(yīng)用我們所學(xué),你可以使用GetComponent找到任何附加在同一游戲物體上的腳本和組件,請(qǐng)注意要使用下面的例子能夠工作,你需要有一個(gè) 名為OtherScript的腳本,其中包含一個(gè)DoSomething函數(shù)。OtherScript腳本必須與下面的腳本附加到相同的物體上。

 function Update(){
otherScript = GetComponent(OtherScript); //這個(gè)在同一游戲物體桑找到名為OtherScript的腳本
otherScript.DoSomething(); //并調(diào)用它上加的DoSomething
}

* 版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息

* 本文來(lái)自:Unity3D 教程手冊(cè)

* 本文鏈接: http://www./1500.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多