[轉]unity3d 腳本參考-技術文檔

unity3d 腳本參考-技術文檔



  核心提示:1、腳本概覽這是一個關於Unity內部腳本如何工做的簡單概覽。Unity內部的腳本,是經過附加自定義腳本對象到遊戲物體組成的。在腳本對象內部不一樣志的函數被特定的事件調用。最經常使用的列在下面:Update:這個函數在渲染一幀以前被調用,這裏是大部分遊戲行爲代碼被執行的地方,除了物理代碼。FixedUpd

1、 腳本概覽
這是一個關於Unity內部腳本如何工做的簡單概覽。
Unity內部的腳本,是經過附加自定義腳本對象到遊戲物體組成的。在腳本對象內部不一樣志的函數被特定的事件調用。最經常使用的列在下面:
Update:
這個函數在渲染一幀以前被調用,這裏是大部分遊戲行爲代碼被執行的地方,除了物理代碼。
FixedUpdate:
這個函數在每一個物理時間步被調用一次,這是處理基於物理遊戲的地方。
在任何函數以外的代碼:
在任何函數以外的代碼在物體被加載的時候運行,這個能夠用來初始化腳本狀態。
注意:文檔的這個部份假設你是用Javascript,參考用C#編寫獲取如何使用C#和Boo編寫腳本的信息。
你也能定義事件句柄,它們的名稱都以On開始,(例如OnCollisionEnter),爲了查看完整的預約義事件的列表,參考MonoBehaviour 文檔。javascript

概覽:經常使用操做
大多數遊戲物體的操做是經過遊戲物體的Transform或Rigidbody來作的,在行爲腳本內部它們能夠分別經過transform和rigidbody訪問,所以若是你想繞着Y軸每幀旋轉5度,你能夠以下寫:
function Update(){
transform.Rotate(0,5,0);
}
若是你想向前移動一個物體,你應該以下寫:
function Update(){
transform.Translate(0,0,2);
}
概覽:跟蹤時間
Time類包含了一個很是重要的類變量,稱爲deltaTime,這個變量包含從上一次調用Update或FixedUpdate(根據你是在Update函數仍是在FixedUpdate函數中)到如今的時間量。
因此對於上面的例子,修改它使這個物體以一個恆定的速度旋轉而不依賴於幀率:
function Update(){
transform.Rotate(0,5*Time.deltaTime,0);
}
移動物體:
function Update(){
transform. Translate (0, ,0,2*Time.deltaTime);
}
若是你加或是減一個每幀改變的值,你應該將它與Time.deltaTime相乘。當你乘以Time.deltaTime時,你實際的表達:我想以10米/秒移動這個物體不是10米/幀。這不只僅是由於你的遊戲將獨立於幀而運行,同時也是由於運動的單位容易理解。( 米/秒)
另外一個例子,若是你想隨着時間增長光照的範圍。下面的表達式,以2單位/秒改變半 
徑。
function Update (){
light.range += 2.0 * Time.deltaTime;
}
當經過力處理剛體的時候,你一般沒必要用Time.deltaTime,由於引擎已經爲你考慮到了這一點。
概覽:訪問其餘組件
組件被附加到遊戲物體,附加Renderer到遊戲物體使它在場景中渲染,附加一個Camera使它變爲相機物體,全部的腳本都是組件,由於它們能被附加到遊戲物體。
最經常使用的組件能夠做爲簡單成員變量訪問:
Component             可以下訪問
Transform             transform
Rigidbody             rigidbody
Renderer              renderer
Camera                camera (only on camera objects)
Light                 light (only on light objects)
Animation             animation
Collider              collider
…等等。
對於完整的預約義成員變量的列表。查看Component,Behaviour和MonnoBehaviour類文檔。若是遊戲物體沒有你想取的相同類型的組件,上面的變量將被設置爲null。
任何附加到一個遊戲物體的組件或腳本均可以經過GetComponent訪問。
transform.Translate(0,3,0);
//等同於
GetComponent(Transform).Translate(0, 1, 0);
注意transfom和Transform之間大小寫的區別,前者是變量(小寫),後者是類或腳本名稱(大寫)。大小寫不一樣使你可以從類和腳本名中區分變量。
應用咱們所學,你能夠使用GetComponent找到任何附加在同一遊戲物體上的腳本和組件,請注意要使用下面的例子可以工做,你須要有一個名爲OtherScript的腳本,其中包含一個DoSomething函數。OtherScript腳本必須與下面的腳本附加到相同的物體上。
//這個在同一遊戲物體桑找到名爲OtherScript的腳本
//並調用它上加的DoSomething
function Update(){
otherScript = GetComponent(OtherScript);
otherScript.DoSomething();
}
概覽:訪問其它遊戲物體
大多數高級的代碼不只須要操做一個物體,Unity腳本接口有各類方法來找到並訪問其餘遊戲物體和組件。在下面,咱們假定有個一名爲OtherScript,js的腳本附加到場景的遊戲物體上。
var foo = 5;
function DoSomething ( param : String) {
print(param + " with foo: " + foo);
}
1.經過檢視面板賦值引用
你能夠經過檢視面板賦值變量到任何物體 
//變換拖動到target的物體
var target : Transform;
function Update ()
{
target.Translate(0, 1, 0);
}
你也能夠在檢視面板中公開到其餘物體的引用,下面你能夠拖動一個包含的遊戲物體到檢視面板中的target槽。
//設置在檢視面板中賦值的target變量上的foo,調用DoSomething
var target : OtherScript;
function Update ()
{
//設置target物體的foo變量
target.foo = 2;
// 調用target上的DoSomething
target.DoSomething("Hello");
}
2.經過物體層次定位
對於一個已經存在的物體,能夠經過遊戲物體的Transform組件來找到子和父物體;
//找到腳本所附加的
//遊戲物體的子「Hand」
transform.Find("Hand").Translate(0, 1, 0);
一旦在層次視圖中找到這個變換,你能夠使用GetComponent來獲取其餘腳本,
//找到名爲「Hand」的子
//在附加到它上面的OtherScript中,設置foo爲2;
transform.Find("Hand").Translate(0, 1, 0);
//找到名爲「Hand」的子
//而後應用一個力到附加在hand上的剛體
transform.Find("Hand").GetComponent(OtherScript).DoSomething("Hello");
// 找到名爲「Hand」的了
// 而後應用一個力到附加在hand上的剛體
transform.Find("Hand").rigidbody.AddForce(0, 10, 0);
你能夠循環全部的子,
//變換的全部子向上移動10個單位
for (var child : Transform in transform)
{
child.Translate(0, 1, 0);
}
參考Transform類文檔獲取更多信息。
3.根據名稱或標籤訂位.
你能夠使用GameObject.FindWithTag和GameObject.FindGameObjectsWithTag搜索具備特定標籤的遊戲物體,使用GameObject.Find根據名稱查找物體。
function Start ()
{
// 按照名稱
var go = GameObject.Find("SomeGuy");
go.transform.Translate(0, 1, 0);
// 按照標籤
 
var player = GameObject.FindWithTag("Player");
player.transform.Translate(0, 1, 0);
}
你能夠在結果上使用GetComponent,在找到的遊戲物體上獲得任何腳本或組件。
function Start ()
{
// 按名稱
var go = GameObject.Find("SomeGuy");
go.GetComponent(OtherScript).DoSomething();html

// 按標籤
var player = GameObject.FindWithTag("Player");
player.GetComponent(OtherScript).DoSomething();
}
一些特殊的物體有快捷方式,如主相機使用Camera.main。
4.做爲參數傳遞
一些事件消息在事件包含詳細信息。例如,觸發器事件傳遞碰撞物體的Collider組件處處理函數。
OnTriggerStay給咱們一個到碰撞器的引用。從這個碰撞器咱們能夠獲取附加到其上的剛體。
function OnTriggerStay( other : Collider ) {
// 若是另外一個碰撞器也有一個剛體
// 應用一個力到它上面
if (other.rigidbody) {
other.rigidbody.AddForce(0, 2, 0);
}
}
或者咱們能夠經過碰撞器獲取附加在同一個物體上的任何組件。
function OnTriggerStay( other : Collider ) {
// 若是另外一個碰撞器附加了OtherScript
// 調用它上面的DoSomething
// 大多數時候碰撞器不會附加腳本
// 因此咱們須要首先檢查以免null引用異常
if (other.GetComponent(OtherScript)) {
other.GetComponent(OtherScript).DoSomething();
}
}
注意經過上述例子中的other變量,你能夠訪問碰撞物體中的任何組件。
5.一種類型的全部腳本
使用Object.FindObjectsOfType找到全部具備相同類或腳本名稱的物體,或者使用Object.FindObjectOfType.找到這個類型的第一個物體。
function Start ()
{
// 找到場景中附加了OtherScript的任意一個遊戲物體
var other : OtherScript = FindObjectOfType(OtherScript);
other.DoSomething();
}
概覽:向量
Unity使用Vector3類同一表示全體3D向量,3D向量的不一樣組件能夠經過想x,y和z成員變量訪問。
var aPosition : Vector3;
aPosition.x = 1;
aPosition.y = 1;
aPosition.z = 1;
你也可以使用Vector3構造函數來同時初始化全部組件。
var aPosition = Vector3(1, 1, 1);
Vector3也定義了一些經常使用的變量值。
var direction = Vector3.up; // 與 Vector3(0, 1, 0);相同
單個向量上的操做能夠使用下面的方式訪問:
someVector.Normalize();
使用多個向量的操做能夠使用Vector3類的數;
theDistance = Vector3.Distance(oneVector, otherVector);
(注意你必須在函數名以前寫Vector3來告訴JavaScript在哪裏找到這個函數,這適用於全部類函數)
你也能夠使用普通數學操做來操縱向量。 
combined = vector1 + vector2;
查看Vector3類文檔獲取完整操縱和可用屬性的列表。
概覽:成員變量 & 全局變量變量
定義在任何函數以外的變量是一個成員變量。在Unity中這個變量能夠經過檢視面板來訪問,任何保存在成員變量中的值也能夠自動隨工程保存。
var memberVariable = 0.0;
上面的變量將在檢視面板中顯示爲名爲"Member Variable"的數值屬性。
若是你設置變量的類型爲一個組件類型(例如Transform, Rigidbody, Collider,任何腳本名稱,等等)而後你能夠在檢視面板中經過拖動一個遊戲物體來設置它們。
var enemy : Transform;
function Update()
{
if ( Vector3.Distance( enemy.position, transform.position ) < 10 );
print("I sense the enemy is near!");
}
}
你也能夠建立私有成員變量。私有成員變量能夠用來存儲那些在該腳本以外不可見的狀態。私有成員變量不會被保存到磁盤而且在檢視面板中不能編輯。當它被設置爲調試模式時,它們在檢視面板中可見。這容許你就像一個實時更新的調試器同樣使用私有變量。
private var lastCollider : Collider;
function OnCollisionEnter( collisionInfo : Collision ) {
lastCollider = collisionInfo.other;
}
全局變量
你也能夠使用static關鍵字建立全局變量
這創造了一個全局變量,名爲someGlobal
// 'TheScriptName.js'中的一個靜態變量
static var someGlobal = 5;
// 你能夠在腳本內部像普通變量同樣訪問它
print(someGlobal);
someGlobal = 1;
爲了從另外一個腳本訪問它,你須要使用這個腳本的名稱加上一個點和全局變量名。
print(TheScriptName.someGlobal);
TheScriptName.someGlobal = 10;
概覽:實例化
實例化,複製一個物體。包含全部附加的腳本和整個層次。它以你指望的方式保持引用。到外部物體引用的克隆層次將保持無缺,在克隆層次上到物體的引用映射到克隆物體。
實例化是難以置信的快和很是有用的。由於最大化地使用它是必要的。
例如, 這裏是一個小的腳本,當附加到一個帶有碰撞器的剛體上時將銷燬它本身並實例化一個爆炸物體。
var explosion : Transform;
// 當碰撞發生時銷燬咱們本身
// 並生成給一個爆炸預設
function OnCollisionEnter (){
Destroy (gameObject);
var  theClonedExplosion : Transform; 
theClonedExplosion = Instantiate(explosion, transform.position, transform.rotation); 
}
實例化一般與預設一塊兒使用
概覽:Coroutines & Yield
在編寫遊戲代碼的時候,經常須要處理一系列事件。這可能致使像下面的代碼。
private var state = 0;
function Update()
{
if (state == 0) {
// 作步驟0
state = 1;
return;
}
if (state == 1) {
// 作步驟1
state = 2;
return;
}
// …
}
更方便的是使用yield語句。yield語句是一個特殊類型的返回,這個確保在下次調用時該函數繼續從該yield語句以後執行。
while(true) {
// 作步驟0
yield; //等待一幀
// 作步驟1
yield; //等待一幀
// ...
}
你也能夠傳遞特定值給yield語句來延遲Update函數的執行,直到一個特定的事件發生。
// 作一些事情
yield WaitForSeconds(5.0); //等待5秒
//作更多事情…
能夠疊加和鏈接coroutines。
這個例子執行Do,在調用以後當即繼續。
Do ();
print ("This is printed immediately");
function Do ()
{
print("Do now");
yield WaitForSeconds (2);
print("Do 2 seconds later");
}
這個例子將執行Do並等待直到它完成,才繼續執行本身。
//連接coroutine
yield StartCoroutine("Do");
print("Also after 2 seconds");
print ("This is after the Do coroutine has finished execution");
function Do ()
{
print("Do now");
yield WaitForSeconds (2);
print("Do 2 seconds later"); 
}
任何事件處理句柄均可以是一個coroutine
注意你不能在Update或FixedUpdate內使用yield,可是你能夠使用StartCoroutine來開始一個函數。
參考YieldInstruction, WaitForSeconds, WaitForFixedUpdate, Coroutine and MonoBehaviour.StartCoroutine獲取更多使用yield的信息。
概覽:用C#編寫腳本
除了語法,使用C#或者Boo編寫腳本還有一些不一樣。最須要注意的是:
1.從MonoBehaviour繼承
全部的行爲腳本必須從MonoBehaviour繼承(直接或間接)。在Javascript中這自動完成,可是必須在C#或Boo腳本中顯示申明。若是你在Unity內部使用Asset -> Create -> C Sharp/Boo Script菜單建立腳本,建立模板已經包含了必需的定義。
public class NewBehaviourScript : MonoBehaviour {...} // C#
class NewBehaviourScript (MonoBehaviour): ... # Boo
2.使用Awake或Start函數來初始化
Javascript中放置在函數以外的代碼,在C#或Boo中要放置在Awake或Start中。
Awake和Start的不一樣是Awake在場景被加載時候運行,而Start在第一次調用Update或FixedUpdate函數以前被調用,全部Awake函數在任何Start函數調用以前被調用。
3.類名必須與文件名相同
Javascript中,類名被隱式地設置爲腳本的文件名(不包含文件擴展名)。在c#和Boo中必須手工作。
4.在C#中Coroutines有不一樣語法。
Coroutines必有一個IEnumerator返回類型,而且yield使用yield return… 而不是yield…
using System.Collections;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
// C# coroutine
IEnumerator SomeCoroutine ()
{
// 等一幀
yield return 0;
//等兩秒
yield return new WaitForSeconds (2);
}
}
5.不要使用命名空間
目前Unity還不支持將代碼放置在一個命名空間中,這個須要將會出在將來的版本中。
6.只有序列化的成員變量會顯示在檢視面板中
私有和保護成員變量只在專家模式中顯示,屬性不被序列化或顯示在檢視面板中。
7.避免使用構造函數
不要在構造函數中初始化任何變量,使用Awake或Start實現這個目的。即便是在編輯模式中Unity也自動調用構造函數,這一般發生在一個腳本被編譯以後,由於須要調用構造函數來取向一個腳本的默認值。構造函數不只會在沒法預料的時刻被調用,它也會爲預設或未激活的遊戲物體調用。 
單件模式使用構造函數可能會致使嚴重的後果,帶來相似隨機null引用異常。
所以若是你想實現,如,一個單件模式,不要使用構造函數,而是使用Awake。其實上,沒有理由必定要在繼續自MononBehaviour類的構造函數中寫任何代碼。
概覽:最重要的類
Javascript中可訪問的全局函數或C#中的基類
移動/旋轉物體
動畫系統
剛體
FPS或第二人稱角色控制器
概覽:性能優化
1.使用靜態類型
在使用Javascript時最重要的優化是使用靜態類型而不是動態類型,Unity使用一種叫作類型推理的技術來自自動轉換Javascript爲靜態類型編碼而不須要你作任何工做。
var foo=5;
在上面的例子裏foo會自動被推斷爲一個整型值。所以,Unity可能使用大量的編譯時間來優化。而不使用耗時的動態名稱變量查找等。這就是爲何Unity比其餘在JavaScript的實現平均快20倍的緣由之一。
惟一的問題是,有時並不是一切均可以作類型推斷。Unity將會爲這些變量從新使用動態類型。經過回到動態類型,編寫JavaScript代碼很簡單。可是這也使得代碼運行速度較慢。
讓咱們看一些例子:
function Start ()
{
var foo = GetComponent(MyScript);
foo.DoSomething();
}
這裏foo將是動態類型,所以調用DoSomething函數將使用較長時間,由於foo的類型是未知的,它必須找出它是否支持DoSomething函數,若是支持,調用它。
function Start ()
{
var foo : MyScript = GetComponent(MyScript);
foo.DoSomething();
}
這裏咱們強制foo爲指定類型,你將得到更好的性能。
2.使用#pragma strict
固然如今問題是,你一般沒有意識到你在使用動態類型。#pragma strict解決了這個!簡單的在腳本頂部添加#pragma strict。而後,unity將在腳本中禁用動態類型,強制使用靜態類型,若是一個類型未知。Unity將報告編譯錯誤。那麼在這種狀況下foo將在編譯時產生一個錯誤:
#pragma strict
function Start ()
{
var foo = GetComponent(MyScript);
foo.DoSomething();
}
3.緩存組件查找
另外一個優化是組件緩存。不幸的是該優化須要一點編碼,而且不必定是值得的,可是如 
果你的腳本是真的用了很長時間了,你須要把最後一點表現出來,這是一個很好的優化。
當你訪問一個組件經過GetComponent或訪問變量,Unity會經過遊戲對象找到正確的組件。這一次能夠很容易地經過緩存保存在一個私有變量裏引用該組件。
簡單地把這個:
function Update () 
{
transform.Translate(0, 0, 5);
}
變成:
private var myTransform : Transform;
function Awake ()
{
myTransform = transform;
}
function Update ()
{
myTransform.Translate(0, 0, 5);
}
後者的代碼將運行快得多,由於Unity沒有找到變換在每一幀遊戲組件中的對象。這一樣適用於腳本組件,在你使用GetComponent代替變換或者其它的東西。
4.使用內置數組
內置數組的速度很是快,因此請使用它們。
而整列或者數組類更容易使用,由於你能夠很容易地添加元素,他們幾乎沒有相同的速度。內置數組有一個固定的尺寸,但大多數時候你事先知道了最大的大小在能夠只填寫了之後。關於內置數組最好的事情是,他們直接嵌入在一個結構緊湊的緩衝區的數據類型沒有任何額外的類型信息或其餘開銷。所以,遍歷是很是容易的,做爲一切緩存在內存中的線性關係。
private var positions : Vector3[];
function Awake ()
{
positions = new Vector3[100];
for (var i=0;i<100;i++)
positions[i] = Vector3.zero;
}
5.若是你不須要就不要調用函數
最簡單的和全部優化最好的是少工做量的執行。例如,當一個敵人很遠最完美的時間就是敵人入睡時能夠接受。直到玩家靠近時什麼都沒有作。這是種緩慢的處理方式的狀況:
function Update ()
{
// 早期進行若是玩家實在是太遙遠。
if (Vector3.Distance(transform.position, target.position) > 100)
return;
perform real work work...
}
這不是一個好主意,由於Unity必須調用更新功能,而你正在執行工做的每個幀。一個比較好的解決辦法是禁用行爲直到玩家靠近。有3種方法來作到這一點:
1.使用OnBecameVisible和OnBecameInvisible。這些回調都是綁到渲染系統的。只要任何相機能夠看到物體,OnBecameVisible將被調用,當沒有相機看到任何一個,OnBecameInvisible將被調用。這種方法在不少狀況下很是有用,但一般在AI中並非特別有用,由於只要你把相機離開他們敵人將不 
可用。
function OnBecameVisible () {
enabled = true;
}
function OnBecameInvisible ()
{
enabled = false;
}
2.使用觸發器。一個簡單的球形觸發器會工做的很是好。一旦你離開這個影響球你將獲得OnTriggerEnter/Exit調用。
function OnTriggerEnter (c : Collider)
{
if (c.CompareTag("Player"))
enabled = true;
}
function OnTriggerExit (c : Collider)
{
if (c.CompareTag("Player"))
enabled = false;
}
3.使用協同程序。Update調用的問題是它們每幀中都發生。極可能會只須要每5秒檢檢查一次到玩家的距離。這應該會節省大量的處理週期。
概覽:腳本編譯(高級)
Unity編譯全部的腳本爲.NET dll文件,.dll將在運行時編譯執行。
這容許腳本以驚人的速度執行。這比傳統的javascript快約20倍。比原始的C++代碼慢大約50%。在保存的時候,Unity將花費一點時間來編譯全部腳本,若是Unity還在編譯。你能夠在Unity主窗口的右下角看到一個小的旋轉進度圖標。
腳本編譯在4個步驟中執行:
1.全部在"Standard Assets", "Pro Standard Assets" 或 "Plugins"的腳本被首先編譯。
在這些文件夾以內的腳本不能直接訪問這些文件夾以外腳本。
不能直接引用或它的 變量,可是能夠使用GameObject.SentMessage與它們通訊。
2.全部在"Standard Assets/Editor", "Pro Standard Assets/Editor" 或 "Plugins/Editor"的腳本被首先編譯。
若是你想使用UnityEditor命名空間你必須放置你的腳本在這些文件夾中,例如添加菜單項或自定義的嚮導,你都須要放置腳本到這些文件夾。
這些腳本能夠訪問前一組中的腳本。
3.而後全部在"Editor"中的腳本被編譯。
若是你想使用UnityEditor命名空間你必須放置你的腳本在這些文件夾中。例如添加菜單單項或自定義的嚮導,你都須要放置腳本到這些文件夾。
這些腳本能夠訪問全部前面組中的腳本,然而它們不能訪問後面組中的腳本。
這可能會是一個問題,當編寫編輯器代碼編輯那些在後面組中的腳本時。有兩個解決方法:一、移動其餘腳本到"Plugins"文件夾 二、利用JavaScript的動態類型,在javascript中你不須要知道類的類型。在使用GetComponent時你能夠使用字符串而不是類型。你也能夠使用SendMessage,它使用一個字符串。
4.全部其餘的腳本被最後編譯
全部那些沒有在上面文件夾中的腳本被最後編譯。
全部在這裏編譯的腳本能夠訪問第一個組中的全部腳本("Standard Assets","Pro 
Standard Assets" or "Plugins")。這容許你讓不一樣的腳本語言互操做。例如,若是你想建立一個JavaScript。它使用一個C#腳本;放置C#腳本到"Standard Assets"文件夾而且JavaScript放置在"Standard Assets"文件夾以外。如今JavaScript能夠直接引用c#腳本。
放置在第一個組中的腳本,將須要較長的編譯時間,由於當他們被編譯後,第三組須要被從新編譯。所以若是你想減小編譯時間,移動那些不常改變 的到第一組。常常改變的到第四組。 
2、 運行時類
AnimationCurve

動畫曲線,在給定的時間添加關鍵幀並肯定曲線。
變量
◆  var keys : Keyframe[]
描述:定義在動畫曲線中的全部鍵。這讓你從數組中清理,添加或移除鍵。
若是鍵沒有按照時間順序,它們會在賦值的時候自動排序。
◆  var length : int
描述:曲線中鍵的數量(只讀)。
◆  var preWrapMode : WrapMode
描述:第一幀以前動畫的行爲。
◆  var this[index : int] : Keyframe
描述:取向索引爲index的鍵(只讀)。
構造函數
◆  static function AnimationCurve(params keys : Keyframe[]) : AnimationCurve
描述:從任意數量的關鍵幀建立一個動畫曲線。
該函數從可變數量的Keyframe參數建立一個曲線,若是你想從一個關鍵幀數組中建立一個曲線,建立一個空的曲線並指定keys屬性。
//一個慢退慢出的動畫曲線(切線都是平的)。
var curve = new AnimationCurve(Keyframe(0, 0), Keyframe(1, 1);
function Update ()
{
transform.position.x = Time.time;
transform.position.y = curve.Evaluate(Time.time);
}
◆  static function AnimationCurve () : AnimationCurve
描述:建立一個空的動畫曲線
函數
◆  function AddKey (time : float, value : float) : int
描述:添加一個新的鍵到曲線。
平滑切線將被自動爲該鍵的計算,返回該鍵的索引,若是由於在同一時間上已經有另外一個關鍵幀而不能添加鍵,將返回-1。
◆  function AddKey (key : Keyframe) : int
描述:添加一個新的鍵到曲線。
返回該鍵的索引,若是由於在同一時間上已經有另外一個關鍵幀而不能添加鍵,將返回-1。
◆  function Evaluate (time : float) : float
描述:該動畫曲線在time的值。
◆  function MoveKey (index : int, key : Keyframe) : int
描述:移除index處的關鍵幀並插入鍵。
若是一個關鍵幀已經存在於key-time,老的關鍵幀位置時間key[index].time/將被用來替換,這對於在一個曲線編輯器中拖動關鍵幀是一個理想的行爲,移動它後返回關鍵幀的索引。
◆  function RemoveKey (index : int) : void
描述:移除一個鍵
◆  function SmoothTangents (index : int, weight : float) : void
描述:平滑位於index處的關鍵幀的進出切線。
權值爲0時平均切線。
類方法
◆  static function EaseInOut (timeStart : float, valueStart : float, timeEnd : float, valueEnd : float) : AnimationCurve
描述:一個漸進漸出的曲線,開始於timeStart,valueStart並結束於timeEnd, valueEnd.
◆  static function Linear (timeStart : float, valueStart : float, timeEnd : float, valueEnd : float) : AnimationCurve
描述:一個直線,開始於timeStart,valueStart並結束於timeEnd, valueEnd.
AnimationEvent

AnimationEvent相似於SendMessage讓你調用一個腳本函數,這個腳本是動畫播放的一部分。 
變量
◆  var animationState : AnimationState 
描述:引起這個事件的動畫狀態。
當這個方法在動畫事件回調以外被調用用時返回null。
◆  var date:string
描述:存儲在動畫剪輯中的字符串數據並將被髮送到動畫事件。
◆  var functionName : string
描述:被調用的函數的名稱
這與調用gameObject.SendMessage(animationEvent.functionName,animationEvent)相同;
◆  var messageOptions :SendMessageOptions
描述:若是選項被設置爲SendMessageOptions.RequireReceiver(缺省),當消息沒有被任何組件接收時將打印一個錯誤消息。
◆  var time:float
描述:該事件被引起的時間。
構造函數
◆  static function AnimationEvent () : AnimationEvent
描述:建立一個新的動畫事件
AnimationState

AnimationState徹底控制動畫混合。
在大多數狀況下Animation接口就足夠了,而且更容易使用。若是你須要徹底控制動畫播放過程當中的混合時,使用AnimationState。
當動畫播放時,AnimationState容許你修改速度,權值。時間和層。也能夠設置動畫合成和wrapMode
動畫
變量
◆  var blendMode : AnimationBlendMode
描述:使用哪一個混合模式?
// 設置leanLeft動畫爲附加混合
animation["leanLeft"].blendMode = AnimationBlendMode.Additive;
◆  var clip :AnimationClip 
描述:該動畫狀態播放的剪輯。
// 打印動畫剪輯的幀頻到控制檯
print(animation[「walk」]clio.frameRate);
◆  var enabled : bool
描述:啓用/禁用動畫
對於須要考慮任何影響的動畫,權值須要設置成爲一個大於零的值。若是動畫被禁用,時間將暫停直到動畫再次啓用。
// 啓用walk循環
animation["Walk"].enabled = true;
animation["Walk"].weight = 1.0;
◆  var layer : int
描述:動畫的層。在計算混合權值時,位於較高層的動畫將首先得到它們的權值。
只有較高層的動畫沒有使用徹底所有權值時,較低層的動畫才能接收混合權值。
// 放置walk和run動畫在層1
animation["Walk"].layer = 1;
animation["Run"].layer = 1;
◆  var length : float
描述:動畫剪輯的長度,以秒計。
// 打印Walk動畫的長度
print (animation["Walk"].length);
◆  var name :string
描述:動畫的名稱。
◆  var normalizedSpeed : float
描述:歸一化播放速度。
這最經常使用於混合兩個動畫時同步播放速度。在多數狀況下使用animation.SyncLayer是更容易也更好
// 同步run和walk速度
animation["Run"].normalizedSpeed = animation["Walk"].speed;
◆  var normalizedTime : float
描述:動畫的當前歸一化時間。
1爲動畫的末端。 0.5爲動畫的中部。
// 快進到動畫的中部
animation["Walk"].normalizedTime = 0.5;
◆  var speed : float
描述:動畫的播放速度。1爲正常播放速度。
負的播放速度將回放動畫。
// 向後走
animation["Walk"].speed = -1.0;
// 以雙倍速度行走
animation["Walk"].speed = 2;
◆  var time :float
描述:動畫的當前時間
若是時間大於長度它將按照wrapMode迴繞。該值能夠大於動畫的長度。看這種狀況下播放模式將在採樣前重映射時間。這個值從0到無窮。
// 回退walk動畫
animation["Walk"].time = 0.0;
◆  var weight : float
描述:動畫的權值
// 設置walk動畫的混合權值爲0.5
animation["Walk"].weight = 0.5;
◆  var wrapMode : WrapMode
描述:動畫的迴繞模式
默認的wrapMode被初始化爲在Animation組件中設置的迴繞模式值。
// 設置walk動畫迴繞模式爲循環
animation["Walk"].wrapMode = WrapMode.Loop;
函數
◆  function AddMixingTransform (mix : Transform, recursive : bool = true) : void
描述:添加應該被動畫的變換。這容許你縮減須要建立的動畫數量。
例如你可能有一個揮手的動畫。你可能想在一個空閒角色或行走的角色上播放揮手動畫。那麼你須要爲空閒和行走分別建立揮手動畫。運用合成揮手動畫,它將由肩膀徹底控制。可是下半身不會受它的影響,繼續播放空閒或行走動畫。所以你只須要一個揮手動畫。
若是recursive爲真,全部mix變換的子也都將被動畫。若是你不調用AddMixingTransform,全部動畫曲線將被使用。
// 使用路徑添加混合
var shoulder : Transform;
animation["wave_hand"].AddMixingTransform(shoulder);
function Start ()
{
//使用路徑添加混合變換
var mixTransform = transform.Find("root/upper_body/left_shoulder");
animation["wave_hand"].AddMixingTransform(mixTransform);
}
Application

訪問應用程序的運行時數據。
這個類包含靜態的方法來查找相關的信息並控制運行時數據。
類變量
◆  static var absoluteURL : string
描述:到web播放器數據文件夾的絕對路徑(只讀)。
Application.absoluteURL 和Application.srcValue容許你檢測unityWeb數據文件是否被移動或連接接到其餘位置。你也許想保護這二者來防止盜用數據文件的行爲。 
// 檢測你的數據文件是否被移動到其餘的服務器
// 或是被連接到其餘地方
function Start ()
{
var isPirated = false;
if (Application.platform == RuntimePlatform.WindowsWebPlayer ||Application.platform == RuntimePlatform.OSXWebPlayer)
{
if (Application.srcValue != "game.unity3d")
isPirated = true;
if (String.Compare (Application.absoluteURL,http://www.website.com/Game/game.unity3d,true)!=0)
isPirated = true;
if (isPirated)
print("Pirated web player");
}
}
◆  static var dataPath : string
描述:包含遊戲數據文件夾的路徑(只讀)。
這個值依賴於運行的平臺:
Unity 編輯器:     <工程文件夾的路徑>/Assets
Mac播放器:       <到播發器應用的路徑>/Contents
Win播放器:       < 包含可執行播發器的文件夾的路徑>\Data
Dasboard窗口:    < dashboard widget bundle的路徑>
Web播放器:       到播放器數據文件夾的絕對路徑(沒有實際的數據文件名稱)
// 打印到數據文件夾的路徑
Print(Application.dataPath);
◆  static var isEditor : bool
描述:是在Unity編輯器內運行?(只讀)
若是遊戲從Unity編輯器中運行,返回真;若是從其餘部署目標運行返回假。
if (Application.isEditor)
{
print("We are running this from inside of the editor!");
}
◆  static var isLoadingLevel : bool
描述:正在加載某些關卡?(只讀)
LoadLevel 和 LoadLevelAdditive不會當即發生 一個新的關卡在當前遊戲幀以後被加載。若是關卡加載所請求的幀已經完成isLoadingLevel返回true。
參見:LoadLevel,LoadLevelAdditive
◆  static var isPlaying : bool
描述:在任何類型的播放器中時返回真(只讀)。
在Unity編輯器中,若是處於播放模式時返回真。
if (Application.isPlaying)
{
print("In player or playmode");
}
◆  static var levelCount : int
描述:可用的總關卡數(只讀)。 
// 加載一個隨機的關卡
Application.LoadLevel (Random.Range(0, Application.levelCount-1));
◆  static var loadedLevel : int
描述:最後一個被加載的關卡的索引(只讀)。
print (Application.loadedLevel);
◆  static var loadedLevelName : string
描述:最後一個被加載的關卡的名稱(只讀)。
print (Application.loadedLevelName);
◆  static var platform : RuntimePlatform
描述:返回遊戲運行的平臺(只讀)。
若是你要作一些平臺相關的操做使用這個屬性。參見:RuntimePlatform
function Start ()
{
if (Application.platform == RuntimePlatform.WindowsPlayer)
print ("Do something special here!");
}
◆  static var runInBackground : bool
描述:應用程序在後太時是否應該被運行?
默認爲假(當程序在後臺時暫停)。
// 讓遊戲運行,即便是在後臺
Application.runInBackground = true;
◆  static var srcValue : string
描述:相對於html文件的web播放器數據文件的路徑(只讀)。
這是被寫到html文件中的路徑,它是做爲object的src參數和cmbed標籤。所以若是它是絕對url,srcvalue將含有絕對路徑。
Application.absoluteURL 和 Application.srcValue容許你檢測你的unityWeb數據文件是否被移動或連接到其餘位置。你也許想保護這二者來阻止盜用數據文件的行爲。
// 檢測你的數據文件是否被移到其餘的服務器
// 或是被連接到其餘地方
function Start ()
{
Var isPirated = false;
if (Application.platform == RuntimePlatform.WindowsWebPlayer ||Application.platform == RuntimePlatform.OSXWebPlayer)
{
if (Application.srcValue != "game.unity3d")
isPirated = true;
if (String.Compare (Application.absoluteURL,"http://www.website.com/Game/game.unity3d",true)!= 0)
isPirated = true;
if (isPirated)
print("Pirated web player");
}
}
◆  static var streamedBytes : int
描述:咱們從主Unityweb流中下載了多少字節(只讀)。
在web播放器中這將返回到目前爲止已經下載的壓縮字節數。在獨立模式或編輯器中 
這個老是返回零。
參見:GetStreamProgressForLevel函數
◆  static var targetFrameRate : int
描述:命令遊戲嘗試以一個特定的幀率渲染。
設置targetFrameRate爲-1(默認)使獨立版遊戲儘量快的渲染,而且web播放器遊戲以50-60幀/秒渲染,取決於平臺。
注意設置targetFrameRate不會保證幀率,會由於平臺的不一樣而波動,或者由於計算機太慢而不能取得這個幀率。
在編輯器中targetFrameRate被忽略。
◆  static var unityVersion : string
描述:用於播放內容的Unity運行時版本。
類方法
◆  static function CancelQuit () : void
描述:取消退出。這能夠用來在退出遊戲的時候顯示一個退出畫面。
這個函數只工做在播發器中,在web播放器或編輯器中不作任何事。
// 延遲2秒退出。
// 在這段時間內加載退出畫面
var showSplashTimeout = 2.0;
private var allowQuitting = false;
function Awake () {
// 須要在多個關卡中使用的遊戲物體
DontDestroyOnLoad (this);
}
function OnApplicationQuit () {
// 若是咱們尚未加載到最後的退出畫面
if (Application.loadedLevelName.ToLower()!= "finalsplash")
StartCoroutine("DelayedQuit");
// Don't allow the user to exit until we got permission in
if (!allowQuitting)
Application.CancelQuit();
}
function DelayedQuit ()
{
Application.LoadLevel("finalsplash");
// 等待showSplashTimecout
yield WaitForSeconds(showSplashTimeout);
// 而後退出
allowQuitting = true;
Application.Quit();
}
◆  static function CanStreamedLevelBeLoaded(levelIndex : int) : bool
描述:能夠加載流式關卡了嗎?
參見:GetStreamProgressForLevel函數。
 
◆  static function CanStreamedLevelBeLoaded(levelName : string) : bool
描述:能夠加載流式關卡了嗎?
參見:GetStreamProgressForLevel函數。
◆  static function CaptureScreenshot(filename : string) : void
描述:截取屏幕爲PNG文件放置在路徑filename。
若是文件已經存在,它將被覆蓋。若是在web播放器或者Dashboard窗口中使用該函數,它將不作任何事情。
function OnMouseDown () {
Application.CaptureScreenshot("Screenshot.png");
}
◆  static function ExternalCall(functionName:string,params args:object[]):void
描述:調用一個包含中網頁中的函數(只用於Web Player)。
調用包含在網頁中名爲functionNameJavaScript函數,並傳遞給定的參數。支持原始的數據類型(string, int, float, char)和這些類型的數字。如何其餘的對象被轉化爲字符串(使用ToString方法)並做爲字符串傳遞。
傳遞的參數數量是可變的。
// 調用網頁上的MyFunction1並不使用參數。
Application.ExternalCall ("MyFunction1");
//調用網頁上的MyFunction2並使用字符串參數。
Application.ExternalCall ("MyFunction2", "Hello from Unity!");
//調用網頁上的MyFunction3並使用幾個不一樣類型的參數。
Application.ExternalCall ("MyFunction3", "one", 2, 3.0);
被調用的在HTML中的函數只須要使用標準的語法便可,例如:
<script language="JavaScript" type="text/javascript">
<!—
// 使用來自Unity的調用,這將接受
// "Hello from Unity!" 作爲參數
function MyFunction2( arg )
{
alert( arg );
}
-->
</script>
See Also: Browser to Unity communication, Application.ExternalEval.
◆  static function ExternalEval (script : string) : void
描述:調用包含在網頁中的片斷腳本函數(只用於Web Player)。
這將執行包含在網頁中JavaScript片斷script
// 導航到前一個頁面
Application.ExternalEval ("history.back()");
See Also: Browser to Unity communication, Application.ExternalCall.
◆  static function GetStreamProgressForLevel(levelIndex : int) : float
描述:下載了多少?
在web播放器中這將返回這個關卡的進度。
參見:CanStreamedLevelBeLoaded
◆  static function GetStreamProgressForLevel (levelName : string) : float 
 描述:下載了多少?[ 0......1]
在web播放器中這將返回關卡的進度。
參見:CanStreamedLeverlBeLoaded 函數。
◆  static function LoadLevel(index : int) : void
描述:加載關卡。
這個函數按照索引加載關卡。在Unity中使用File->Build Settings.....菜單能夠看到全部 關卡的索引列表。在你能過加載關卡以前你必須將它添加到遊戲使用關卡列表中。在 Unity中使用File->Build Settings.....並添加你須要的關卡到關卡列表中。
//加載索引爲 0 的關卡
Application . LoadLevel(0);
當加載嶄新的關卡時,全部已經加載的遊戲物體都將被銷燬。 若是你想讓物體在被加 載新關卡時不被銷燬,使用Object.DontDestroyOnLoad 。
◆  Static function LoadLevel( name : string) : void
描述:按照它的名稱加載關卡。
在你可以加載關卡以前你必須將它添加到遊戲使用的關卡列表中。在Unity中使用
File->Build Settings..... 並添加你須要的關卡到關卡列表中。關卡被加載全部激活物體上 的MonoBehaviour . OnLevelWasLoaded都被調用。
// 加載名爲「HighScore」的關卡。
Application . LoadLevel("HighScore");
當加載新的關卡時,全部已經加載的遊戲物體都將被銷燬。 若是你想讓物體在加載新
關卡時不被銷燬,使用Object. DontDestroyOnLoad。
◆  static function LoadLevelAdditive ( index : int ) : void
◆  static function LoadLevelAdditive (name : string ) : void
描述:額外地加載一個關卡。
不一樣於LoadLevel,LoadLeavelAdditive 不會銷燬當前關卡中的物體。新關卡中的物體 
將被添加到當前關卡。這對於建立連續的虛擬世界時很是有用的,當你走過期更多的內
榮被加載。
◆  static function OpenURL( url : string ) : void
描述:在瀏覽器中打開url 。
在編輯器或者獨立播放器模式下,這將在缺省的瀏覽器中使用新頁打開url 。這將是瀏
覽器位於前端。
但在網頁中執行時,包含插件的頁將被重定向到 url 。
Function Start ( ) {
Application . OpenURL ("http://unity3d.com");
}
◆  Static function Quit ( ) : void
描述:退出應用程序。在編輯器或者web播放器中退出被忽略。
//當用戶點擊escape時退出播放器
Function Update ( ){
If ( Input GetKey ( "escape" )){
Application . Quit ( ) ;

}
Array

數組容許你將多個對象存儲在一個變量中。
Array類只能用於JavaScript 。更多關於C#或JavaScript中ArrayLists ,字典或哈希表的信息參考MSDN 。
這是一個基本的例子,說明能夠使用一個數組類作什麼 
   function Start( )
{
var arr = new Array ( ) ;  
arr.Push ("Hello"); //添加一個元素  
Print(arr[ 0]);  //打印第一個元素 
arr length = 2 ;  //調整數組大小
arr [ 1] = "World"; //將「World」賦給第二個元素 
for (var value : String in arr)  //遍歷這個數組 
{
Print ( value );
}
     }
Unity中有兩種類型的數組,內置數組和普通的JavaScript數組。
內置的數組(原始的.NET數組),是很是快速和有效的可是它們不能被調整大小。
它們是靜態類型的,這容許它們在檢視面板中被編輯。這是如何使用內置數組的簡單例子。
//在檢視面板中公開一個浮點數組,你能夠在那裏編輯它
var value : float[ ];
Function Start ( )
{
    //遍歷數組
     for ( var value in values){
Print ( value );
}
//由於咱們不能調整內置數組的大小
//咱們必須從新建立一個數組來調整它的大小
value = new float[ 10 ];
value[ 1 ] = 5.0;//給第二個元素賦值
}
內置數組在性能相關的代碼中很是有用的(使用Unity的JavaScript和內置數組能夠很是容易使用mesh interface在一秒內處理兩萬個頂點。)  另外一方面,普通的JavaScript數組能夠調整大小,排序並能夠作全部你指望的數組類的操做。JavaScript數組不顯示在檢視面板中。你能夠容易地在JavaScript數組和內置數組之間轉換。
function Start ( ) 

var array = new Array ( Vector3(0,0,0),Vector3(0,0,1));
array .Push (Vector3 (0,0,2));
array .Push (Vector3 (0,0,3));
//拷貝js數組到內置數組
var builtinArray : Vector3[ ] = array . ToBuiltin ( Vector3 );
//將內置數組賦給js數組
var newarr = new Array ( builtinArray );
//newarr與array 包含相同的元素
print ( newarr );
}
注意按照Unity的命名規則下面全部函數均大寫開頭。爲方便JavaScript用戶 , Unity數組類也接受小寫函數。
變量
◆  var length : int 
  描述:數組的長度屬性,返回或設置數組中元素的數量。
function Start ( )
{
var arr = Array ( "Hello" , "World" ) ;
print (arr . length ) ; //打印兩個
arr . Length = 5 ; //調整數組的大小爲5

函數
◆  function Add ( value : object ) : void 
描述:添加 value 到數組末端。
var arr = new Array ("Hello");
arr.Add (" World ");
Print ( arr );  //打印"Hello ","World"
◆  function Clear ( ) : void 
描述: 清空數組。 數組的長度將爲零。
var hello = new Array ("Hello ","World ");
hello.Clear ( ) ;  //如今hello包含零個元素
◆  function Concat ( array :Array , optionalArray0: Array, optionalArray1 : Array):Array
描述:鏈接兩個或多個數組。這個方法不會改變已有的數字並返回鏈接後的數組拷貝
function Start ( ) {
  var arr = new Array ("Hello","World"):
  var arr2 =  new Array ("!");
  var joined = arr.Concat ( arr2 );  //如今jointed包含全部3個字符串
  Print ( joined );  //打印"Hello","World","!"

◆  function Join ( seperator :string ) : String 
描述:連接數組內容爲一個字符串。元素將被seperator字符串分割,並返回數組的拷貝
function Start ( ){
    var arr = new Array ("Hello" , "World");
 print ( arr . join (" , "));//打印"Hello,World"
}
◆  function Pop ( ) : object 
 描述:移除數組最後一個元素並返回它。
 var arr = new Array ("Hello ","World");
 arr . Pop ( );
 print ( arr );//只打印"Hello"
◆  function Push (value : object) : int
描述: 添加value到數組末端。並返回新數組長度。
var arr = new Array ("Hello");
arr.Push ("World");
print ( arr );//打印"Hello","World"
◆  function RemoveAt (index : int ) : void
描述:從數組中移除索引爲index的元素。
var arr = new Array ("Hello" , " and good morning" , "World ");
arr.Remove ( 1 ) ;  //移除 "and good morning"
print ( arr );//打印 " Hello World "
◆  function Reverse () : Array
描述:顛倒數組中全部元素順序。
var hello = new Array (" Hello " ," World ") ;
hello Reverse( ) ;
print (hello);//打印World,Hello
◆  function Shift ( ) :object 
描述:移除數組的第一個元素並返回它。
var arr = new Array ( " Hello " , " World ");
arr . Shift ( ) ;  
print ( " World " ) ;  //如今arr只包含" World "
◆  function Sort( ) : Array 
描述:排序全部數組元素
var hello = new Array ( " e " ," a " ," b ");
hello . Sort ( ) ;
print ( hello ) ;// 打印 a ,b ,c  
◆  function Unshift ( newElement : object , optionalElement : object ) : int 
描述: Unshift 添加一個或多個元素到數組的開始位置並返回新的數組長度。
var arr = new Array (" Hello "," World ");
arr . Unshift (" This "," is ");
print ( arr ) ;//打印 This,is,Hello,World
BitStream

BitStream 類表示序列化的變量,打包到一個流中。
數據能夠被序列化,傳輸,而後遠端使用這個類接受。參考 Network View component reference
獲取關於網絡同步的信息和Network. OnSerializeNetworkView函數獲取更多信息。
變量
◆  var isReading : bool
描述:這個BitStream如今在被讀嗎?
參考Network. OnSerializeNetworkView
◆  var isWriting : bool
描述:這個BitStream如今在被寫嗎?
參考Network. OnSerializeNetworkView
函數
◆  function Serialize (ref  value : bool ) : void 
◆  function Serialize (ref  value : char ) : void 
◆  function Serialize (ref  value : short) : void 
◆  function Serialize (ref  value : int ) : void 
◆  function Serialize (ref  value : float , maxDelta : float = 0.00001F) : void 
◆  function Serialize (ref  value : Quaternion, maxDelta : float = 0.00001F) : void 
◆  function Serialize (ref  value : Vector3, maxDelta : float = 0.00001F) : void 
◆  function Serialize (ref  value : NetworkPlayer ) : void 
◆  function Serialize (ref  viewID: NetworkViewID ) : void 
描述:BitStream類能夠序列化幾個不一樣類型的變量。
包含:bool , char , short , int , float , Quaternion , Vector3 和 NetworkPlayer
注意serialize ( char )系列化一個字節,所以,它只能用於 0......255之間的字符。
BoneWeight
結構
網格上一個頂點的蒙皮骨骼權值
每一個被蒙皮的點至多有四個骨頭。全部權值的和應該爲1。權值和骨骼索引應該被以權值遞減的順序定義。若是一個頂點被少於四個骨骼影響,剩下的權值應該爲0。
參見:Mesh.boneWeights變量。
變量
◆  var boneIndex0 : int
描述:第一個骨骼的索引。
參見:weight0 .
◆  var boneIndex1 : int
描述:第二個骨骼的索引。
參見:weight1.
◆  var boneIndex2 : int
描述:第三個骨骼的索引。
參見:weight2 .
◆  var boneIndex3 : int
描述:第四個骨骼的索引。
參見:weight3 .
◆  var weight0 : float
描述:第一個骨骼的蒙皮權值。
參見:boneIndex0.
◆  var weight1 : float
描述:第二個骨骼的蒙皮權值。
參見:boneIndex1.
◆  var weight2 : float
描述:第三個骨骼的蒙皮權值。
參見:boneIndex2.
◆  var weight3 : float
描述:第四個骨骼的蒙皮權值。
參見:boneIndex3.
Bounds 
結構
表明一個軸對齊包圍盒。
一個軸對齊包圍盒,簡稱爲AABB,是與座標軸對齊的box而且徹底包圍一些物體。由於這個box不會繞着軸旋轉,因此它能夠只用center和extents定義,或者用min和max點定義。
Bounds被Collider.bounds,Mesh.bounds,Renderer.bounds使用。
變量
◆var center : Vector3
描述:包圍盒子的中心
◆var extents : Vector3
描述:box的寬度。這個老是size的一半
◆var max : Vector3
描述:box的最大點。這個老是等於center + extents。
◆var min : Vector3
描述:box的最小點。這個老是等於center - extents。
◆var size : Vector3
描述:box的總大小。這個老是extents的二倍。
size.x是寬度, size.y 是高度, size.z 是長度。
構造函數
◆static function Bounds ( center : Vector3 , size : Vector3 ) : Bounds
描述:用給定的center和總size建立新的Bounds。Bounds extents將是給定size的一半。
var bounds = Bounds ( Vector3.zero , Vector3(1,2,1));//在原點常見柱狀包圍盒
函數
◆function Contains ( point : Vector3 ) : bool
描述:point 包含在這個包圍盒中嗎 ?
◆function Encapsulate ( point : Vector3 ) : void
描述:增大Bounds以包含這個point. 
◆function Encapsulate ( bounds : Bounds ) : void
描述:增大bounds來封裝另外一個bounds。
◆function Expand ( amount : float ) : void
描述:沿着每一個面按照amount增長它的size來擴展這個bounds。
◆function Expand ( amount : Vector3 ) : void
描述:沿着每一個面按照amount增長它的size來擴展這個bounds。
◆function IntersectRay ( ray : Ray ) : bool
描述:ray與這個包圍盒相交嗎?
◆function IntersectRay ( ray : Ray , out distance : float ) : bool
描述:ray與這個包圍盒相交嗎?
當IntersectRay返回真,distance將是到射線源點的距離。
◆function SetMinMax ( min : Vector3, max : Vector3 ) : void 
描述:設定邊界爲盒子的min和max值。
使用這個函數要比分別指定min和max更快。
◆function SqrDistance ( point : Vector3 ) : float
描述: 點到這個包圍盒的最小平方距離。
◆function ToString ( ) : string
描述:返回一個格式化好的字符串
collision

描述碰撞
Collision 信息被傳遞到Collider . OnCollisionEnter , Collider . OnCollisionStay和Collider.OnCollisionExit事件。參見: ContactPoint.
變量
◆var collider : Collider
描述:碰撞到的Collider ( 只讀 ).
爲了獲得全部被碰撞到的碰撞器的細節,你須要迭代接觸點( contacts屬性)。
◆var contacts : ContactPoint [ ]
描述:接觸點由物理引擎產生。
每一個contact包含一個接觸點,法線和兩個發生碰撞的碰撞器(參考ContactPoint)。在OnCollisionStay或者OnCollisionEnter內能夠確保contacts有至少一個元素。
function OnCollisionStay ( collision : Collision ){
//檢查碰到碰撞器是否有剛體 
//而後使用一個力
for ( var contact : ContactPoint in collision . contacts ) {
print ( contact.thisCollider . name + "hit" + contact . otherCollider .name );
//可視化接觸點
Debug.DrawRay ( contact . point , contact . normal, Color .white ) ;
}
}
//一枚手榴彈,在擊中一個表面時初始化一個爆炸預設,而後銷燬它
var explosionPrefab : Transform;
function OnCollisionEnter( collision : Collision ){ 
 //旋轉這個物體使y軸面沿着表面法線的方向
 var contact = collision . contact [ 0 ];
 var rot = Quaternion . FromToRotation ( Vector3.up , contact . normal ) ;
 var pos = contact . point ;
 Instantiate ( explosionPrefab , pos , rot ) ;
 Destory ( gameObject );//銷燬這個投射物
 }
◆var gameObject : GameObject
描述:/ gameObject / 是與之碰撞的物體(只讀)
◆var relativeVelocity : Vector3
描述: 兩個碰撞物體的相對線形速度(只讀)。
//當以較大的速度碰到一個物體時播放聲音
function OnCllisionEnter ( collision : Collision ) {
if ( collision . relativeVelocity . magnitude > 2 ) 
audio .Play ( );
}
◆var rigibody : Rigidbody
描述:碰撞到的Rigidbody(只讀),若是碰到的物體是一個沒有附加剛體的碰撞器,返回null
//讓全部碰到的剛體向上飛
function OnCollisionStay ( collision : Collision ) {
//檢查碰到的碰撞器是否有一個剛體 ,而後使用力
if ( collision . rigidbody ){ 
collision . rigidbody .AddForce ( Vector3 . up * 15 ) ;
}
}
◆var transform : Transform
描述:碰撞到的物體的Transform(只讀)。
若是碰到一個帶有Rigidbody的碰撞器,transform將是全部附加剛體的變換。若是碰到了一個沒有剛體的碰撞器,transform將是全部附加碰撞器的變換。
color
結構
表示RGBA顏色。
這個結構被用在整個Unity中傳遞顏色。每一個顏色組件是一個0到1之間的浮點數。 
組件(r ,g ,b )在RGB顏色空間內定義一個顏色。Alpha組件(a)透明性 - alpha爲0是徹底不透明,alpha爲1是徹底透明。
變量
◆var  a : float 
描述:顏色的Alpha組件。
var color = Color . white ;
color . a = 0 ;
◆var b : float 
描述:顏色的藍色組件。
var color = Color .white;
color .b = 0 ;
◆var g : float
描述:顏色的綠色組件
var color = Color . white ;
color . g = 0 ;
◆var grayscale : float 
描述:顏色的灰度值(只讀)
var color = Color ( 3 , 4 ,6 ) ;
print ( color . grayscale ) ;
◆var r : float 
描述:顏色的紅色組件。
var color = Color . white ;
color . r = 0
◆var this [ index : int ] : float
描述:分別使用[ 0 ] ,[ 1 ] ,[ 2 ] ,[ 3 ]訪問r ,g  , b  ,a組件。
Color p ;
p [ 1 ] = 5 ;//與p .g = 5相同
構造函數
◆static function Color ( r : float , g : float , b : float, a: float ) : Color
描述:用給定的 r , g , b , a ,組件構建一個新的顏色。
var color = Color ( 0.2 , 0.3 , 0.4 , 0.5 ) ;
◆static function Color ( r : float , g : float , b : float ) : Color
描述:用給定的 r , g , b 組件構建一個新的顏色並設置 a 爲1
var color = Color (0.2 , 0.3 , 0.4 ) ;
函數
◆function ToString ( ):string
 描述:返回格式化好的這個顏色的字符串。
 print ( Color .white ) ;
類變量
◆static var black : Color
描述:黑色。 RGBA爲( 0 , 0 , 0 , 1 ).
◆static var blue : Color
描述:藍色。 RGBA爲( 0 , 0 , 1 , 1 ).
◆static var clear  : Color
描述:徹底透明。 RGBA爲( 0 ,0, 0, 0 ).
◆static var eyan : Color
描述:青色。 RGBA爲( 0 , 1 , 1 , 1 ). 
◆static var gray : Color
描述:灰色。RGBA爲 ( 5 , 5 , 5 , 1 ).
◆static var green : Color 
描述:綠色。RGBA爲(0, 1 , 0, 1 ).
◆static var grey : Color 
描述:英式拼法爲gray。RGBA爲(0.5 , 0.5 , 0.5 , 1 ).
◆static var magenta : Color 
描述:紫紅色。RGBA爲(1 , 0 , 1 , 1 ).
◆static var red : Color 
描述:全紅。RGBA爲(1 , 0 , 0, 1 ).
◆static var white : Color 
描述:全白。RGBA爲(1 , 1 , 1 , 1 ).
◆static var yellow : Color 
描述:黃色。RGBA是怪異的(1 , 235/255 , 4/255 , 1 ),可是這個顏色看起來很是好!
類方法
◆static function Lerp ( a : Color , b : Color , t : float ) : Color  
描述:在顏色a和顏色b之間按照t插值。
/ t /被限定到0 和1之間,當t爲0時返回a . 當t爲1時返回b
◆static operator * ( a : Color , b : Color) : Color
描述:乘兩個顏色,每一個組件被分別乘。
◆static operator * ( a : Color , b : float) : Color
描述:用浮點數b乘以顏色a。每一個組件被分別乘。
◆static operator * ( a : float , b : Color) : Color
描述:用浮點數b乘以顏色a。每一個組件被分別乘。
◆static operator + ( a : Color , b : Color) : Color
描述:加兩個顏色,每一個組件被分別加。
◆static operator - ( a : Color , b : Color) : Color
描述:從顏色a中減去顏色b。每一個組件被分別減。
◆static operator / ( a : Color , b : float) : Color
描述:乘用浮點數b除以a。每一個組件被分別除。
◆static implicit function Color ( v : Vectro4 ) : Color 
描述:Colors能夠被隱式轉化爲Vector4,或由它轉化而來。
◆static implicit function Vector4 ( c : Color ) : Vector4
描述:Colors以被隱式的轉化爲Vector4,或由它轉化而來。
ContactPoint
結構
描述:碰撞發生的接觸點。
接觸點被存儲在collision結構中,參見collision , collision . OnCollisionEnter,        Collision . OnCollisionStay  , Collision . OnCollisionExit.
變量
◆var normal : Vector3
描述:接觸點的法線
◆var otherCollider : Collider
描述:碰撞中的另外一個碰撞器
◆var point : Vector3
描述:接觸點
◆var thisCollider : Collider? 
描述:碰撞中的第一個碰撞器
ControllerColliderHit

ControllerColliderHit被CharacterController . OnControllerColliderHit使用來給出詳細的關於碰撞和如何處理它們的信息。
變量
◆var collider : Collider
描述:被控制器碰到的碰撞器。
◆var controller : CharacterController
描述:碰到該碰撞器的控制器。
◆var gameObject : GameObject
描述:被控制器碰到的遊戲物體。
◆var moveDirection : Vector3
描述:從膠囊的中心到接觸點的大體方向。
這能夠用來找到一個合理的方向將力應用到接觸的剛體。
◆var moveLength : float
描述:角色碰到這個碰撞器時已經行走了多遠。
注意這可能不一樣於你傳遞到CharacterController . Move的。由於全部的移動都是被碰撞器制約的。
◆var normal : Vector3
描述:在世界空間中碰撞表面的法線。
◆var point : Vector3
描述:世界空間中的碰撞點。
◆var rigidbody : Rigidbody
描述:被控制器碰到的剛體。
若是沒有接觸一個剛體而是一個靜態碰撞器時爲null。
◆var transform : Transform
描述:被控制器碰到的變換。
Debug

一個類,包含用於開發遊戲時的調試方法。
類變量
◆static var isDebugBuild : bool
描述:在Build Settings....對話框中,有一個被稱爲"strip debug symbols"的複選框。
若是它被選擇isDebugBuild將爲關。在編輯器中isDebugBuild老是返回真,建議在發佈遊戲的時候移除全部對Debug .Log的調用,這樣你就可以容易的發佈帶有調試輸出的測試版,而最終版沒有調試輸出。
//只有這是調試版時,記錄調試信息
if ( Debug .isDebugBuild ) {
Debug . Log ( " Something bad happened ! " ) ;
}
類方法
◆static function Break ( ) : void
描述:暫停編輯器
Debug . Break ( ) ;
◆static function DrawLine ( start:Vector3, end: Vector3, color : Color = Color . white ) : void
描述:從point開始到end用顏色繪製一條線。
  這個線將被繪製在編輯器的場景視圖中。若是在遊戲視圖中啓用了gizmo繪製,這個線也將被繪製在這裏。
//從世界座標的原點到點( 1 , 0 , 0 )繪製一條紅色的線
function Update ( ) {
Debug . DrawLine ( Vector3 . Zero , new Vector3 ( 1 , 0 , 0 ), Color . red ) ;
}
◆static function DrawRay ( start:Vector3, dir : Vector3, color : Color = Color . white ) : void
描述:從start 到start+dir 用顏色繪製一條線。
//繪製一條10米長的線從position,沿着變換的z軸向前。
function Update ( ) {
var forward = transform . TransformDirection ( Vector3 . forward ) * 10 ;
Debug . DrawRay ( transform . position .Vector3 . forward * 10 , Color . green );
}
◆static function Log ( message : object ) : void
描述:記錄message到Unity控制檯。
Debug . Log ( "Hello");
◆static function Log ( message : object . context : Object ) : void
描述:記錄message到Unity控制檯。
當你在控制檯中選擇消息的時候一個到上下文物體的連接將被繪製。這是很是有用的。若是你想知道那個物體發生了錯誤。
Debug . Log ( "Hello" , gameObject ) ;
◆static function LogError ( message : object ) : void
描述:Debug . Log 的一個變體,用來記錄錯誤信息到控制檯。
var memberVariable : Transform ;
if ( memberVariable == null )
Debug . LogError ( " memberVariable must be set to point to a Transform. ") ;
◆static function LogError ( message : object , context : Object ) : void 
描述:Debug . Log的一個變體,用來記錄錯誤信息到控制檯。
等你在控制檯中選擇消息的時候一個到上下文物體的連接將被繪製。這是很是有用的, 若是你想知道那個發生了錯誤。
var memberVariable : Transform ; 
if ( memberVariable == null )
Debug . LogError ( "memberVariable must be set to point to a Transform " , this ) ;
◆static function LogWarning ( message : object ) : void 
描述:Debug . Log 的一個變體,用來記錄警告信息到控制檯。
◆static function LogWarning ( message : object , context : Object ) : void 
     描述:Debug . Log的一個變體,用來記錄警告信息到控制檯。
     當你選擇控制檯中的一個消息時,一個到上下文物體的鏈接將被繪製。這是很是有用的,     若是你想知道那個物體發生了錯誤
Event

     一個UnityGUI事件。
     對應於用戶的輸入事件(按鍵,鼠標事件),或者是UnityGUI佈局或渲染事件。
     對於每一個事件OnGUI在腳本中被調用;所以OnGUI在每幀中被潛在調用屢次。
Event . current對應於OnGUI調用「當前」事件。
 參見:GUIScripting Guide
變量
◆var alt : bool 
描述:Alt/Option鍵被按住?(只讀)
在windows下,若是Alt鍵被按下返回真。在Mac下,若是Option鍵被按下返回真。
◆var button : int
描述:哪一個鼠標鍵被按下
0表示左鍵,1表示右鍵。2表示中鍵。在EventType . MouseDown ,EventType .MouseUp
事件中使用。
◆var capsLock : bool
描述:Caps Lock 處於打開狀態?(只讀)
若是Caps Lock爲打開返回真
◆var character : char
描述:輸入的字符
在EventType . KeyDown 事件中使用,注意EventType . KeyUp事件不包含字符,只包含Event . keyCode .
參見:Event . keyCode.
◆var command : bool
描述:Command/Windows鍵被按住?(只讀)
在Windows下,若是Windows鍵被按下返回真。在Mac下,若是Command鍵被按下返回真。
◆var control : bool 
描述:Control被按下?(只讀)
若是Control被按下返回真。
◆var delta : Vector2
描述:與上次事件相比,鼠標的相對移動。
在EventType .MouseMove,EventType .MouseDrag,,EventType .ScrollWheel時間中使用。
參見:Event . mousePosition
◆var functionKey : bool 
描述:當前按下的鍵是功能鍵?(只讀)
若是當前按下的鍵是方向鍵,翻頁鍵,退格鍵等等時返回真,若是這個鍵須要特殊處理才能用與文本編輯時,functionKey爲打開。
◆var isKey : bool
描述:這個事件是鍵盤事件?(只讀)
◆var isMouse : bool
描述:這個事件是鼠標事件?(只讀)
◆var keyCode : KeyCode 
描述:用於鍵盤事件的原始鍵代碼
在EventType . KeyDown 和 EventType . KeyUp事件中使用;返回匹配物理鍵盤的KeyCode值,使用這個來處理光標,功能鍵等等。
參見:Event . character 。
◆var mousePosition : Vector2
描述:鼠標位置
在EventType . MouseMove 和EventType . MouseDrag事件中使用。
參見:Event . delta
◆var numeric : bool
描述:當前按下的數字的鍵?(只讀)
使用這個表示區分主&數字鍵。
◆var shift : bool
描述:Shift被按下?(只讀)
若是Shift被按下返回真。
函數
◆function GetTypeForControl ( controlID : int ) : EventType
參數
controlID           查詢的控件ID。從GUIUtilty . GetControlID ( ) 獲取。參考   EventType獲取可能值的列表。
描述:爲給定的控件ID獲取一個過濾的事件類型。
這個函數能夠用來實現鼠標鎖和鍵盤焦點。
◆function  Use ( ) : void 
描述:使用這個事件。
當已經使用了一個事件時調用這個方法。事件類型將被設置爲EventType . Used。使其 他GUI元素忽略它。
類變量 
◆static var current : Event
 描述:如今被處理的當前事件。
類方法
◆static function KeyboardEvent ( key : string ) : Event
 描述:建立一個鍵盤事件。
 這可用於檢查某個鍵是否被按下。可能帶有調整器。key字符串是鍵的名稱(與輸入管理器中的相同),能夠使用任意數量的調整器前綴:& = Alternate , ^ = Controler, % = Command , # = Shift   例如:&f12 = Alternate +F12., " ^[ 0 ] " = Control +keypad0
 function OnGUI ( ) {
GUILayout . Lable ( " Press Enter To Start Game ") ; 
  if ( Event . current . Equals ( Event . KeyboardEvent ("[enter]")))
   Application . LoadLevel ( 1 ) 
if(Event current Equals(Event KeybordEvent("return") ))
Print( "I said enter ,not return – try the keypad" );
}
GL

底層圖像庫。
使用這個類操做激活的變換矩陣,發送與OpengGL當即模式相同的渲染命令並作一些其餘的底層圖像操做。注意,在全部狀況下使用Graphics.DrawMesh比任何使用當即模式繪製更有效。
這個類只限於Unity Pro.
類變量
◆ static var LINES: int
描述:用於Begin的模式:繪製直線。
參見:GL . Begin, GL . End.
◆ static var modelview:Matrix4x4
描述:當前模型視矩陣。
給這個變量賦值等同於OpenGL中的glLoadMatrix(mat);在其餘圖形API中對應的功能被模擬。
改變模型視矩陣覆蓋當前相機的視參數,所以最經常使用的是使用GL.PushMatrix和GL.PopMatrix來保存和恢復矩陣。
讀取這個變量返回當前模型視矩陣。
◆ static var QUADS:int
描述:用於Begin的模式:繪製四邊形
參見:GL.Begin,GL.End.
◆ static var TRIANGLE_STRIP:int
描述:用於Begin的模式:繪製三角面
參見:GL.Begin,GL.End.
◆ static var TRIANGLES:int
描述:用於Begin的模式:繪製三角形
參見:GL.Begin,GL.End.
類方法
◆ static function Begin(mode:int) : void
參數
mode         繪製的幾何體:能夠是TRIANGLES,TRIANGLE_STRIP,QUADS或
       LINES.
描述:開始繪製3D幾何體
這個對應OpenGL中的glBegin,在其餘圖形API中相同的功能被模擬 ,在GL.Begin 和 GL.End之間,能夠調用GL .Veriex,GL.Color,GL.TexCoord和其餘當即模式繪製函數。
  在繪製你本身的幾何體時,你應該注意它們的裁剪。裁剪規則可能會由於不一樣的圖形 API而不一樣。在大多數狀況下在shader中使用Cull Off命令是安全的。
參見:GL.End.
◆ static function Clear(clearDepth:bool,clearColor:bool,backgroudColor):void
參數
clearDepth            應該清除深度緩存?
clearColor            應該清除顏色緩存?
backgroudColor       顏色被清理爲何,只有當clearColor爲true時使用.
描述:清除當前渲染緩存
這將清除屏幕或激活的RenderTexture.
◆ static function Color(c : Color) : void
描述:設置當前頂點顏色
這個對應OpenGL中的glColor4f(c. r,c.g,c.b,c.a):在其餘圖形中API中相同的功能被模擬,
爲了使逐頂點顏色能夠在不一樣的硬件上工做,你須要使用綁定了顏色通道的shader。參考BindChannels文檔.
這個函數只在GL.Begin和GL.End函數之間調用.
◆ static function End( ) : void
描述:結束繪製3D幾何體
這個對應OpenGL中的glEnd;在其餘圖形API中相同的功能被模擬.
參見:GL.Begin.
◆ static function LoadIdentity( ) : void
描述:加載單位矩陣到當前模型視矩陣。
這個函數覆蓋當前相機的視參數,所以最經常使用的是使用GL.PushMatrix和GL.PopMatrix
來保存和恢復矩陣。
◆ static function LoadOrtho( ) : void
描述:輔助函數用來設置一個正交透視變換
調用LoadOrtho知道,視錐從 (0,0,-1) 變化到(1,1,100).
◆ static function LoadPixelMatrix( ) : void
描述:設置一個用於像素修正渲染的矩陣。
這個設置模型視和投影矩陣,所以X,Y座標直接映射到像素。(0,0)位於當前相機
視口的左下角。Z座標從-1到+100
這個函數覆蓋當前相機的參數,所以最經常使用的是使用GL.PushMatrix和GL.PopMatrix
來保存和恢復矩陣。
◆ static function LoadPixelMatrix(left:float,right:float,bottom:float,top:float):void 
描述:設置一個矩陣的像素正確渲染。
這樣設置投影矩陣點以便X、Y座標圖直接像素化。(0,0)在底部左側當前攝像機的視角。Z座標是從-1到+100。
這個函數覆蓋了相機的參數,因此一般你要保存和恢復矩陣就使用GLPushMatrix和GL.PopMatrix。
◆  static function LoadProjectionMatrix (mat : Matrix4x4) : void 
描述:加載到當前任意矩陣投影矩陣。
這個函數重寫當前攝像機的投影參數,因此一般你要保存和恢復投影矩陣就使用GLPushMatrix和GL.PopMatrix。
◆  static function MultiTexCoord (unit : int, v : Vector3) : void 
描述:設置當前紋理座標(v.x,v.y,v.z)實際的紋理單元。
在OpenGL中glMultiTexCoord爲特定的紋理單元若是多紋理是可用的。在其餘圖形的API中相同的功能進行了仿真。
這個函數只能被稱爲介於GL.Begin和GL.End功能之間。
◆  static function MultiTexCoord2 (unit : int, x : float, y : float) : void 
描述:設置當前紋理座標(x,y)的爲實際紋理單元。
在OpenGL中glMultiTexCoord爲特定的紋理單元若是多紋理是可用的。在其餘圖形的API中相同的功能進行了仿真。
這個函數只能被稱爲介於GL.Begin和GL.End功能之間。
◆  static function MultiTexCoord3(unit : int, x : float, y : float, z : float) :void 
描述:設置當前紋理座標(x,y,z)的爲實際紋理單元。
在OpenGL中glMultiTexCoord爲特定的紋理單元若是多紋理是可用的。在其餘圖形的API中相同的功能進行了仿真。
這個函數只能被稱爲介於GL.Begin和GL.End功能之間。
◆  static function MultMatrix (mat : Matrix4x4) : void 
描述:複製當前的點矩陣和其中的一個說明。
至關於glMultMatrix(墊在)OpenGL; 在其餘圖形API的相應功能是相仿的。
換點矩陣覆蓋當前相機視圖的參數,因此一般你要保存和恢復投影矩陣就使用GLPushMatrix和GL.PopMatrix。
◆  static function PopMatrix () : void 
描述:恢復了投影和點矩陣的矩陣堆棧的頂部。
換投影矩陣點覆蓋當前相機視圖的參數。這些矩陣能夠用GLPushMatrix和GL.PopMatrix來保存和恢復。
參見:PushMatrix函數。
◆  static function PushMatrix () : void 
描述:節約雙方投影矩陣對點和矩陣堆棧。
換投影矩陣點覆蓋當前相機視圖的參數。這些矩陣能夠用GLPushMatrix和
 GL.PopMatrix來保存和恢復。
 參見:PopMatrix函數
◆ static function SetRevertBackfacing(revertBackFaces : bool) : void
 描述:選擇是否翻轉隱面剔除,是(真)或者不是(假)
◆ static function TextCoord (v : Vector3) : void
 描述:爲全部紋理單元設置當前紋理座標(v.x, v.y, v.z)
 這個對應於OpengGL中用於全部紋理單元的glMultiTexCoord或者多紋理不可用時的glTexCoord,在其餘的圖形API中仿真了相同的功能。
 這個函數只在GL.Begin和GL.End函數之間調用。
◆ static function TexCoord2(x : float, y : float) : void
 描述:爲全部紋理單元設置當前紋理座標(x, y)
 這個對應於OpengGL中用於全部紋理單元的glMultiTexCoord或者多紋理不可用時的glTexCoord,在其餘的圖形API中仿真了相同的功能。
 , 這個函數只在GL.Begin和GL.End函數之間調用。
◆ static function TexCoord3(x : float, y : float, z : float) : void
 描述:爲全部紋理單元設置當前紋理座標(x, y, z)
 這個對應於OpengGL中用於全部紋理單元的glMultiTexCoord或者多紋理不可用時的glTexCoord,在其餘的圖形API中仿真了相同的功能。
 這個函數只在GL.Begin和GL.End函數之間調用。
◆ static function Vertex(v : Vector3) : void
 描述:提交頂點
 這個對應OpenGL中的glVertex3f(v.x, v.y.v.z); 在其餘圖形API中相同的功能被模擬。
 這個函數只在GL.Begin和GL.End函數之間調用。
◆ static function Vertex3(x : float, y : float, z : float) : void
 描述:提交頂點
 這個對應OpenGL中的glVertex3f(x, y, z); 在其餘圖形API中相同的功能被模擬。
 這個函數只在GL.Begin和GL.End函數之間調用。
◆ static function Viewport(pixelRect : Rect) : void
 描述:設置渲染視口
 全部的渲染都被限制在pixelRect以內。
GUIContent
 類
 GUI元素的內容
 這個與GUIStyle緊密相關,GUIContent定義渲染什麼而GUIStyle定義如何渲染。
 參見:GUIStyle
變量
◆ var image : Texture
描述:包含圖標的圖像
◆ var text : string
 描述:包含的文本
◆ var tooltip : string
 描述:這個元素的提示
 與這個內容相關的提示。讀取GUItooltip來獲取當前用戶指向的GUI元素的提示。
構造函數
◆ static function GUIContent() : GUIContent
 描述:用於全部形狀和尺寸的GUIContent的構造函數
 構建一個空的GUIContent。
◆ static function GUIContent(text : string) : GUIContent
 描述:構建一個只包含文本的GUIContent物體。
 使用GUI是,你不須要爲一個簡單的文本字符建立GUIContents – 這兩行代碼功能等效:
 function OnGUI()
{
  GUI.Button(Rect(0, 0, 100, 20), 「Click Me」);
  GUI.Button(Rect(0, 30, 100, 20), GUIContent(「Click Me」));
}
◆ static function GUIContent(image : Texture) : GUIContent
 描述:構建一個只包含圖片的GUIContent對象。
 var icon : Texture;
 function OnGUI()
{
  GUI.Button(Rect(0, 0, 100, 20), GUIContent(icon));
}
◆ static function GUIContent(text : string, image : Texture) : GUIContent
 描述:構建一個包含text和圖片的GUIContent對象
 var icon : Texture;
 function OnGUI()
{
 GUI.Button(Rect(0, 0, 100, 20), GUIContent(「Click me」, icon));
}
◆ static function GUIContent(text : string, tooltip : string) : GUIContent
 描述:構建一個包含text的GUIContent,當用戶鼠標懸停在它上面的時候,全局GUI.tooltip被設置爲tooltip。
 function OnGUI()
 {
  GUI.Button(Rect(0, 0, 100, 20), GUIContent(「Click me」,  「This is a tooltip.」));
 //若是用戶指向這個按鈕,全局提示被設置
 GUI.Label(Rect(0, 40, 100, 40), GUI.tooltip);
}
◆ static function GUIContent(image : Texture, tooltip : string) : GUIContent
 描述:構建一個包含圖片的GUIContent,當用戶鼠標懸停在它上面的時候,全局GUItooltip被設置爲tooltip。
◆ static function GUIContent(text : string,  image : Texture, tooltip : string) : GUIContent
 描述:構建一個包含text和image的GUIContent,,當用戶鼠標懸停在它上面的時候,全局GUItooltip被設置爲tooltip。
◆ static function GUIContent(src : GUIContent) : GUIContent
 描述:從另外一個GUIContent構建一個GUIContent。
GUILayoutOption

內部類用來傳遞佈局選項給GUILayout函數,不要直接使用這些,而是在GUILayout類的佈局函數中構造它們。
參見:
GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
GUILayoutUtility
 類
 用於實現並擴展GUILayout類的工具函數。
 使用這個類製做你本身的GUI佈局代碼
類方法
◆ static function BeginGroup(GroupName : string) : void
 
◆ static function BeginLayoutGroup(style : GUIStyle, options : GUILayoutOption[], LayoutType : System.Type) : GUILayoutGroup
 描述:普通的輔助函數 – 當建立一個佈局組的時候使用這個。它將確保全部的事情都正確的排列。
 style : 組選項的風格
 option : 使用的佈局選項
 LayoutType : 建立的佈局組的類型
◆ static function EndGroup(groupName : string) : void
◆ static function GetAspectRect(aspect : float) : Rect
◆ static function GetAspectRect(aspect : floar, style : GUIStyle) : Rect
◆ static function GetAspectRect(aspect : float,  params options : GUILayoutOption[]) : Rect
◆ static function GetAspectRect(aspect : float,  style : GUIStyle, params options:  GUILayoutOption[]) : Rect
 參數
 aspect  這個元素的寬高比(寬/高)
style  一個可選的風格。若是指定風格的padding將被添加到返回舉行的尺寸而且這個風格的margin將被用於間距。
options 一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由Style定義的設置。參見GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 控制的矩形
描述:用一個制定的寬高比獲取一個矩形。
◆ static function GetRect(content : GUIContent, style : GUIStyle,  params options : GUILayoutOption[]) : Rect
 參數
 content  讓出空間所顯示的內容
 style用於佈局的GUIStyle
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILAyout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回Rect – 一個足夠大的矩形區域用來包含用/style/渲染時的/content/。
描述:獲取一個以特定風格顯示內容的矩形。
◆ static function GetRect(width : float,  height : float) : Rect
◆ static function GetRect(width : float,  height : float,  params options : GUILayoutOption[]) : Rect
◆ static function GetRect(width : float, height : float, style : GUIStyle,  params options : GUILayoutOption[]) : Rect
 參數 
 width  你想要的區域的寬度
 height  你想要的區域的高度
style  用了佈局的可選GUIStyle,若是指定,風格的padding將被添加到尺寸而且它的margin將被用於間距
options 一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 用於放置控件的矩形
描述:用一個固定的內容區域獲取一個矩形
◆ static function GetRect(minWidth : float,  maxWidth : float,  minHeight : float,  maxHeight : float) : Rect
◆ static function GetRect(minWidth : float,  maxWidth : float,  minHeight : float,  maxHeight : float, style : GUIStyle) : Rect
◆ static function GetRect(minWidth : float, maxWidth : float, minHeight : float, maxHeight :  float, params options : GUILayerOption[]) : Rect
◆ static function GetRect(minWidth : float, maxWidth : float, minHeight : float, maxHeight :  float, style : GUIStyle, paramas option : GUILayoutOption[]) : Rect
 參數
 minWidth  傳回區域的最小寬度
 maxWidth  傳回區域的最大寬度
 minHeight  傳回區域的最小高度
 maxHeight  傳回區域的最大寬度
style  一個可選的風格。若是指定,風格的padding將被添加到尺寸而且它的margin將被用於間距
options 一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 一個矩形區域在兩個軸上的尺寸介於minWidth和maxWidth之間
描述:從佈局系統獲取一個可擴展的矩形,矩形的尺寸將在min和max值之間。
GUILayout
 類
 GUILayout是用於UnityGUI自動佈局的類。
 參見:GUI Layout tutoria
類方法
◆ static function BeginArea(screenRect : Rect) : void
◆ static function BeginArea(screenRect : rect, text : string) : void
◆ static function BeginArea(screenRect : Rect, image : Texture) : void
◆ static function BeginArea(screenRect : Rect, content : GUIContent) : void
◆ static function BeginArea(screenRect : Rect, style : GUIStyle) : void
◆ static function BeginArea(screenRect : Rect, text : string, style : GUIStyle) : void
◆ static function BeginArea(screenRect : Rect, image : Texture, style : GUIStyle) : void
◆ static function BeginArea(screenRect : Rect, content : GUIContent, style : GUIStyle) : void
 參數
 text可選的顯示在該區域中的文本
 image  可選的顯示在該區域中的紋理
 content  可選的在該區域頂部顯示的文本,圖片和提示
style  使用的風格。若是留空,空的GUIStyle(GUIStyle.none)將被使用,給出一個透明的背景。參見:EndArea
描述:在屏幕的固定區域開始一個GUI空間的GUILayout塊。
默認的,任何使用GUILayout製做的GUI空間都放置在屏幕的左上角。若是你想在任一區域放置一系列自動佈局的控件,使用GUILayout.BeginArea定義一個新的區域以便自動佈局系統能夠使用它。
function OnGUI()
{
 GUILayout.BeginArea(Rect(200, 200, 100, 100));
 GUILayout.Button(「Click me」);
GUILayout.Button(「Or me」);
GUILayout.EndArea();
}
在混合GUILayout代碼是這個函數是很是有用的。必須與EndArea調用匹配。BeginArea / EndArea不能嵌套。
◆ static function BeginHorizontal(params options : GUILayoutOption[]): void
◆ static function BeginHorizontal(style : GUIStyle, params options : GUILayoutOption[]): void
 參數
 style這個風格用於背景圖片和填充值。若是留空,背景是透明的。
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這個設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
描述:開始一個水平控件組。
全部在這個元素內部渲染的空間將被一個接一個的水平放置,改組必須調用EndHorizontal關閉。
 
◆ static function BeginScrollView(scrollPosition : Vector2, params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle, params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool, alwaysShowVertical : bool, params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, style : GUIStyle) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool, alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle,  params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool, alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle,  background : GUIStyle, params options : GUILayoutOption[]) : Vector2
 參數:
 scrollPostion 用來顯示的位置
alwaysShowHorizontal  可選的參數用來老是顯示水平滾動條。若是爲假或者留空,它將只在ScrollView中的內容比滾動視寬時顯示。
alwaysShowVertical 可選的參數用來老是顯示垂直滾動條。若是爲假或者留空,它將只在ScrollView中的內容比滾動視高時顯示。
horizontalScrollbar 用於水平滾動條的可選GUIStyle。若是不設置,將使用當前GUISkin的horizontalScrollbar。
verticalScrollbar 用於垂直滾動條的可選GUIStyle。若是不設置,將使用當前GUISken的verticalScrollbar風格。
返回Vector2 – 修改過的scrollPosition。回傳這個變量,以下的例子:
描述:開始一個自動佈局滾動視。
自動佈局滾動視,將使用任何你放置在它們中的內容並正常顯示出來。若是他不適合,將顯示滾動條,BeginScrollView的調用老是與EndScrollView的調用匹配。
//這個變量對於空間來講就是這個滾動視查看子元素的位置。
var scrollPosition : Vector2;
//顯示在滾動視中的字符串,下面兩個按鈕添加,清除這個字符串。
var longString = 「This is a long-ish string」;
function OnGUI()
{
 //開始一個滾動視,全部矩形被自動計算。
 //它將使用任何可用的空間並確保內容排列正確
 //這是小的最後兩參數來強制滾動條出現
 scrollPosition = GUILayout.BeginScrollView(scrollPosition,  GUILayout.Width(100),  GUILayout.Height(100));
 //添加一個簡單的標籤到滾動視內部。注意
 //滾動條如何與文字換行正確的工做。
 GUILayout.Height(longString);
 //添加一個按鈕來消除字符串。這個是在滾動區域內部,所以它
 //也將被滾動。注意按鈕如何變窄爲垂直滾動條留出空間
 if(GUILayout.Button(「Clear」)
longString = 「」;
 //結束咱們上面開始的滾動條
 GUILayout.EndScrollView();
 //如今咱們在滾動視外邊添加一個按鈕 – 這將顯示在滾動區域的下邊
 if(GUILayout.Button(「Add MoreText」))
{
 longString += 「\nHere is another line.」;
}
◆ static function Box(params option : GUILayoutOption[]) : void
◆ static function Box(style : GUIStyle, params option : GUILayoutOption[]) : void
 參數
 style 這個風格將用於背景圖片和填充值,若是留空,背景是透明的。
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
描述:開始一個垂直控件組。
全部在這個元素內部渲染的空間將被一個接一個地垂直放置。改組必須調用EndVertical關閉。
◆ static function Box(image : Texture, params option : GUILayoutOption[]) : void
◆ static function Box(text : string, params option : GUILayoutOption[]) : void
◆ static function Box(contend : GUIContent, params option : GUILayoutOption[]) : void
◆ static function Box(image : Texture, style : GUIStyle, params option : GUILayoutOption[]) : void
◆ static function Box(text : string, style : GUIStyle, params option : GUILayoutOption[]) : void
◆ static function Box(contend : GUIContent, style : GUIStyle, params option : GUILayoutOption[]) : void
 參數
 text 顯示在該box上的文本
 image顯示在該box上的Texture
 content用於這個box的文本,圖形和提示
style 使用的風格。若是不設置,將使用當前的GUISkin的box風格。
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
描述:製做一個自動佈局box
這將製做一個實心box,若是你想製做一個包含一些內容的box,使用一個子組函數的
風格參數(BeginHorizontal, BeginVertical, 等等)
◆ static function Button(image : Texture, params options : GUILayoutOption[]) : bool
◆ static function Button(text : string, params options : GUILayoutOption[]) : bool
◆ static function Button(content : GUIContent, params options : GUILayoutOption[]) : bool
◆ static function Button(image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Button(text : string, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Button(content : GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : bool
 參數
 text 顯示在該按鈕上的文本
 image顯示在該按鈕上的Texture
 content用於這個按鈕的文本,圖形和提示。
 style 使用的風格。若是不設置,將使用當前的GUISkin的button風格。
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
 返回bool – true當用戶單擊按鈕時。
 描述:製做一個簡單的按鈕,用戶點擊它們的時候就會有事情發生。
◆ static functioin EndArea() : void
 描述:關閉由BeginArea開始的GUILayout塊
◆ static function EndHorizontal() : void
 描述:關閉一個開始於BeginHorizontal的組
◆ static functioin EndScrollView() : void
 描述:結束由BeginScrollView調用開始的滾動視。
◆ static functioin EndVertical() : void
 描述:關閉一個開始於BeginVertical的組
◆ static functioin ExpandHeight(expand : bool) : GUILayoutOption
 描述:傳遞給一個空間的選項來容許或不容許垂直擴展。
◆ static functioin ExpandWidth(expand : bool) : GUILayoutOption
 描述:傳遞給一個空間的選項來容許或不容許水平擴展。
◆ static functioin FlexibleSpace() : void
 描述:插入一個靈活的空格元素
 靈活的空格用來填充一個佈局中任何遺漏的空間。
◆ static functioin Height(height : float) : GUILayoutOption
 描述:傳遞給空間的選項以便給它一個絕對高度。
◆ static functioin HorizontalScrollbar(value : float, size : float, leftValue : float, rightValue : float, params options : GUILayoutOption[]) : float
◆ static functioin HorizontalScrollbar(value : float, size : float, leftValue : float, rightValue : float, style : GUIStyle, params options : GUILayoutOption[]) : float
 參數
 value在min和max之間的位置
 size 能看見多大?
 leftValue滾動條左端的值
 rightValue  滾動條右端的值
style 用於滾動條背景的風格。若是不設置,將使用當前GUISkin的horizontalScrollbar
options 一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回floar – 修改後的值。這能夠經過拖動這個滾動條,或者單擊兩端的箭頭來改變。
描述:一個水平滾動條。滾動條能夠用來滾動文檔。大多數狀況下,你會使用滾動視代替。
找到額外的元素:
在滾動條兩端的按鈕將在當前皮膚中搜索「leftButton」和「rightButton」做爲風格,滾動條的滑塊(你拖動的東西)將搜索並使用名爲「thumb」的風格。
//這將使用下面的風格名來決定該按鈕的尺寸/位置
//MyScrollbarleftButton - 用於左側按鈕的風格位置
//MyScrollbarrightButton - 用於右側按鈕的風格位置
//MyScrollbarthumb - 用於滑塊的風格名稱
scrollPos = GUILayout.HorizontalScrollbar(scrollPos, 1, 0, 100, 「MyScrollbar」);
◆ static functioin HorizontalSlider(value : float, leftValue : float, rightValue : float, params options : GUILayoutOption[]) : float
◆ static functioin HorizontalSlider(value : float, leftValue : float, rightValue : float, slider : GUIStyle, thumb : GUIStyle, params options : GUILayoutOption[]) : float
 參數
 value滑塊顯示的值。這個決定可拖動滑塊的位置。
 leftValue滑桿左端的值。
rightValue  滑桿右邊的值。
slider用於顯示拖動區域的GUIStyle。若是不設置,將使用當前GUISkin的horizontalSlider。
 前端

thumb  用於顯示拖動塊的GUISkin。若是不設置,將使用當前的GUISkin的horizontalSliderThumb
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回float – 被用戶設置的值。
描述:一個用戶能夠拖動的滑桿。能夠在min和max之間取一個值。
◆ static function Label(image : Texture, params options : GUILayoutOption[]) : void
◆ static function Label(text : string, params options : GUILayoutOption[]) : void
◆ static function Label(content : GUIContent, params options : GUILayoutOption[]) : void
◆ static function Label(image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : void
◆ static function Label(text : string, style : GUIStyle, params options : GUILayoutOption[]) : void
◆ static function Label(content: GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : void
 參數
 text 顯示在該標籤上的文本。
 image顯示在標籤上的Texture。
 content用於這個標籤的文本,圖形和提示。
 style 使用的風格。若是不設置。將使用當前GUISkin的label。
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
 描述:製做一個自動佈局label
 標籤沒有用戶交互。不會獲取鼠標點擊並老是以普通風格渲染。若是你想製做一個可視化響應用戶輸出的控件,使用一個Box控件。
◆ static function MaxHeight(maxHeight : float) : GUILayoutOption
 描述:傳遞給控件的選項來指定一個最大高度。
◆ static function MaxWidth(maxWidth : float) : GUILayoutOption
 描述:傳遞給控件的選項來指定一個最大寬度。
◆ static function MinHeight(minHeight : float) : GUILayoutOption
 描述:傳遞給控件的選項來指定一個最小高度。
◆ static function MinWidth(minWidth : float) : GUILayoutOption
 描述:傳遞給控件的選項,來指定一個最小寬度
◆ static function PasswordField(password : string,  maskChar : char, params options : GUILayoutOption[]) : string
◆ static function PasswordField(password : string,  maskChar : char, maxLength : int, params options : GUILayoutOption[]) : string
◆ static function PasswordField(password : string,  maskChar : char, style : GUIStyle, params options : GUILayoutOption[]) : string
◆ static function PasswordField(password : string,  maskChar : char, maxLength : int, style : GUIStyle, params options : GUILayoutOption[]) : string
 參數
password 用於編輯的密碼。這個函數返回值應該被賦回這個字符串。以下的例子。
maskChar 用來隱藏密碼的字符。
maxLength 字符串的最大長度。若是不設置,用戶能夠一直輸入。
style 使用的風格。若是不設置,將使用當前GUISkin的textField風格。
返回string – 編輯過的密碼。
描述:製做一個用戶能夠輸入密碼的文本域。
var passwordToEdit = 「My Password」;
function OnGUI()
{// 製做一個密碼與來調整stringToEdit。
  passwordToEdit = GUILayout.PasswordField(passwordToEdit, 「*」, 25);
}
◆ static function RepeatButton(image : Texture, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(text : string, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(content : GUIContent, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(text : string, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(content : GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : bool
 參數
 text顯示在該按鈕上的文本。
 image  顯示在該按鈕上的Texture。
 content  用於這個按鈕的文本,圖形和提示。
 style使用的風格,若是不設置,將使用當前GUISkin的button風格。
 
options  一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
 參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
 返回bool - /true/當用戶按住按鈕時
 描述:製做一個重複按鈕,只要用戶按住鼠標這個按鈕一直返回真。
◆ static function SeletionGrid(selected : int, texts : string[], xCount : int, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, images : Texture[], xCount : int, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, contents : GUIContent[], xCount : int, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, texts : string[], xCount : int, style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, images : Texture[], xCount : int, style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, contents : GUIContent[], xCount : int, style : GUIStyle, params options : GUILayoutOption[]) : int
 參數
 selected選擇按鈕的索引
 texts 顯示在按鈕的字符串數組。
 images在按鈕上紋理數組
 contents用於按鈕的文本,圖形和提示。
xCount  在水平方向多少個元素,元素將被縮放來適應,除非風格定義了一個fixedWidth,空間高度將由元素的數量決定。
style 使用的風格。若是不設置,將使用當前GUISkin的button風格。
options 一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回int – 選擇按鈕的索引
描述:製做一個選擇網格
◆ static function Space(pixel : float) : void
 描述:在當前佈局組中插入一個空格
 空格的方向依賴與使用這個命令時當前所在佈局組。若是在垂直組,空格是垂直的。
 function OnGUI()
 {
  GUILayout.Button(「I’m the first button」);
  //在兩個按鈕間插入20像素
  GUILayout.Space(20);
 
}
  GUILayout.Button(「I’m a bit futher down」);
}
 在水平組,pixels將是水平的;
 function OnGUI()
 {
  //開始水平組以便顯示水平空格
  GUILayout.BeginHorizontal(「box」);
  GUILayout.Button(「I’m the first button」);
  //在兩個按鈕間插入20像素
  GUILayout.Space(20);
  GUILayout.Button(「I’m to the right」);
  //結束上面開始的水平組
  GUILayout.EndHorizontal();
}
◆ static function TextArea(text : string, params options : GUILayoutOption[]) : string
◆ static function TextArea(text : string, maxLength : int, params options : GUILayoutOption[]) : string
◆ static function TextArea(text : string, style : GUIStyle, params options : GUILayoutOption[]) : string
◆ static function TextArea(text : string, maxLength : int, style : GUIStyle, params options : GUILayoutOption[]) : string
 參數
text  用於編輯的文本。這個函數返回值應該被賦回這個字符串。以下的例子。
maxLength  字符串的最大長度。若是不設置,用戶能夠一直輸入。
style 使用的風格。若是不設置,則使用當前GUISkin的textField風格。
options 一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
 返回string – 編輯過的字符串。
 描述:製做一個多行文本域。這裏用戶能夠編輯這個字符串。
◆ static function TextField(text : string, params options : GUILayoutOption[]) : string
◆ static function TextField (text : string, maxLength : int, params options : GUILayoutOption[]) : string
◆ static function TextField (text : string, style:GUIStyle, params options : GUILayoutOption[]) : string
◆ static function TextField (text : string, maxLength : int, style : GUIStyle, params options : GUILayoutOption[]) : string
 參數
text  用於編輯的文本。這個函數返回值應該被賦回這個字符串,以下的例子。
 
maxLength  字符串的最大長度。若是不設置,用戶能夠一直輸入。
 style 使用的風格。若是不設置,將使用當前的GUISkin的textArea
options  一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回string – 編輯過的字符串。
描述:製做一個單行文本域。這裏用戶能夠編輯這個字符串。
var stringToEdit = 「Hello, world」;
function OnGUI()
{
  //製做一個文本域來調整stringToEdit
  stringToEdit = GUILayout.TextField(stringToEdit, 25);
}
◆ static function Toogle(value : bool, image : Texture, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, text : string, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, content : GUIContent, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, text : string, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, content : GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : booljava

 參數
 value按鈕是打開或關閉
 text 顯示在該按鈕上的文本
 image顯示在該按鈕上的Texture
 content用於這個按鈕的文本,圖形和提示
 style 使用的風格。若是不設置,將使用當前GUISkin的button風格。
options  一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
 返回bool – 按鈕的新值
 描述:製做一個on/off開關按鈕。mysql

◆ static function Toolbar(selected: int, texts : string[], params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, images : Texture[], params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, contents: GUIContent[], params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, texts : string[], style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, image : Texture[],style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, content : GUIContent[],style : GUIStyle, params options : GUILayoutOption[]) : int
 參數
 selected選擇按鈕的索引
 texts 顯示在按鈕上的字符串數組
 images在按鈕上的紋理數組
 contents用於按鈕的文本,圖形和提示數組
 style 使用的風格。若是不設置,將使用當前GUISkin的button風格。
options 一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
 返回int – 選擇按鈕的索引
 描述:製做一個工具欄
◆ static function VerticalScrollbar(value: float, size : float, topValue : float, buttomValue : float, params options : GUILayoutOption[]) : float
◆ static function VerticalScrollbar(value: float, size : float, topValue : float, buttomValue : float, style : GUIStyle, params options : GUILayoutOption[]) : float
 參數
 value在min和max之間的位置
 size 能看見多大?
 topValue滾動條頂端的值
 bottomValue  滾動條底端的值
style  用於滾動條背景的風格。若是不設置,將使用當前GUISkin的horizontalScrollbar。
options 一個可選的佈局選項的列表。它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回float – 修改後的值。這能夠經過拖動這個滾動條,或者單擊兩端的箭頭來改變。
 描述:製做一個垂直滾動條。滾動條能夠用來滾動文檔。大多數狀況下,你會使用scollView代替。
 找到額外的元素:
 在滾動條兩端的按鈕將在當前皮膚中搜索「upbutton」和「downbutton」做爲風格。滾動條的滑塊(你拖動的東西)將搜索並使用名爲thumb的風格。
 //這將使用下面的風格名來決定該按鈕的尺寸/位置
 //MyVerticalScrollbarupbutton – 用於頂端按鈕的風格名稱
 //MyVerticalScrollbardownbutton – 用於底端按鈕的風格名稱
 //MyScrollbarthumb – 用於滑塊的風格名稱
 scrollPos = GUILayout.HorizontalScrollbar(scrollPos, 1, 0, 100, 「MyVerticalScrollbar」);
◆ static function VerticalSlider(value : floar, leftValue : float, rightValue : float, params options : GUILayoutOption[]) : float
◆ static function VerticalSlider(value : floar, leftValue : float, rightValue : float, slider : GUIStyle, thumb : GUIStyle, params options : GUILayoutOption[]) : float
 參數
 value滑桿顯示的值。這個決定可拖動滑塊的位置。
 topValue滑桿頂端的值。
 downValue  滑桿底端的值。
slider  用於顯示拖動區域的GUIStyle。若是不設置,將使用當前GUISkin的horizontalSlider。
thumb  用於顯示拖動塊的GUIStyle。若是不設置,將使用當前的GUISkin的horizontalSliderThumb。
options  一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
◆ static function Width(width : float) : GUILayoutOption
 描述:傳遞給控件的選項以便給它一個絕對寬度
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, text : string) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, image : Texture) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, content : GUIContent) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, text : string, style : GUIStyle) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, image : Texture, style : GUIStyle) : Rect
 
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, content : GUIContent, style : GUIStyle) : Rect
 參數
 id 用於每一個窗口惟一的ID。這是用於接口的ID。
clientRect  屏幕上用於窗口的矩形區域。佈局系統將試圖使窗體在他內部。若是不能,它將調整矩形去適應它
func  在窗體內部建立GUI的函數。這個函數必須使用一個函數 – 當前建立GUI的窗體id。
image 用於在標題欄上顯示圖片的Texture。
content 用於這個窗口的文本,圖形和提示。
style 使用的風格。若是不設置,將使用當前GUISkin的button風格。
options  一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
參見:GUILayout.Width,  GUILayout.Height,  GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 窗口位於舉行位置。這個可能與你傳入的一個具備不一樣位置和尺寸。
描述:製做一個彈出窗口。它的內容是自動佈局的。
窗口浮動在普通GUI控件之上。具備單擊激活的特色並能夠有選擇的隨意被用戶拖動。不像其餘的控件,你須要傳遞給他們一個獨立的功能並放置在窗口中這兒是一個小例子來幫助你開始:
var windowRect = Rect(20, 20, 120, 50);web

function OnGUI()
{
 //註冊窗口,注意第三個參數
 windowRect = GUILayout.Window(0, windowsRect, DoMyWindow, 「My Window」);
}算法

//製做窗口內容
function DoMyWindow(windowed : int)
{
 //這個按鈕將調整以適應物體
 if(GUILayout.Button(「Hello World」))
  print(「Get a click」);
}
你傳入的客戶區域只是做爲一個參考,爲了對窗口使用額外的限制。闖入一些額外的佈局選項。用在這裏的一個將覆蓋尺寸的計算。這是一個簡單的例子。
var windowRect = Rect(20, 20, 120, 50);spring

function OnGUI()
{
 //註冊窗口,這裏咱們指示佈局系統必須使窗體爲100像素寬。
 windowRect = GUILayout.Window(0, windowRect, DoMyWindow, 「My Window」, GUILayout.width(100));
}sql

//製做窗體內容
function DoMyWindow(windowID : int)
{
 //這個按鈕大小不能適應這個窗體
//一般,這個窗體將被擴展以便適應這個按鈕。可是因爲GUILayout.Width將只允//許窗體爲100像素寬
if(GUILayout.Button(「Please click me a lot」))
 print(「Get a click」);
 
}
GUISettings
 類
 用於GUI如何表現的通用設置。
 這些被全部在GUISkin中的元素共享。
變量
◆ var cursorColor : Color
 描述:文本域中光標的顏色。
◆ var cursorFlashSpeed : float
 描述:文本域指示的閃動速度。
 這個是閃動/秒。若是設置爲0,閃動將被禁用。若是設置爲-1,閃動速度將匹配系統的默認速度。
◆ var doubleClickSelectsWord : bool
 描述:文本域中雙擊是否選擇單詞。
◆ var selectionColor : Color
 描述:文本域中選擇矩形的顏色。
◆ var tripleClickSelectsLine : bool
 描述:文本域中點擊鼠標三次是否選擇整行文本。
GUIStyleState
 類
 爲GUIStyle物體使用的給定狀態的一個特定值。
 GUIStyle包含用於顯示GUI元素的全部值
變量
◆ var background : Texture2D
 描述:在這個狀態中被GUI元素使用的背景圖片。
◆ var textColor : Color
 描述:在這個狀態中被GUI元素使用的文本顏色。
GUIStyle

GUI元素的風格位置
這個類包含一個GUI元素如何被渲染的全部信息。它包含用於字體,圖標位置,背景圖標,和間距的信息。它不包含關於它包含什麼的信息 – 僅僅定義用這個風格渲染的文本如何被顯示。它不定義這個元素能夠發生什麼交互,可是定義了用於交互的顯示設置。
一個GUIStyle的設置。這是模仿一個CSS樣式。它包含下列事項的設置:
背景圖片
 這些被渲染在空間後面。不一樣的圖像能夠被指定爲正常顯示。當用戶將鼠標放在元素上時的顯示,當使用者按下選擇 – 以及當元素被打開,如觸發按鈕,下面的這些都被稱爲風格的狀態。參見:normal, hover, active, onNormal, onHover, onActive – 這些包含每一個狀態的背景圖片,文本顏色屬性。
文本渲染
 這個風格均可以定義一個字體渲染,以及文本對齊,換行和剪裁的設置,它也定了該風格元素不一樣狀態的文本顏色參考 : font, alignment, wordWrap, normal, hover, active, onHover, onActive
圖標位置
 GUIStyle能夠渲染文本,圖標或者二者兼而有之。GUIStyle定義渲染時這二者間的相關位置(這能夠強制它只顯示他們其中之一)。參見:imagePosition
尺寸和間距選項
 GUIStyle包含填充,邊緣和邊界。這些不嚴格地對應相似命名的CSS屬性。一個GUIStyle能夠選擇的定義一個固定的寬度和高度。參見:margin, padding, border, fixedWidth, fixedHieght
變量
◆ var active : GUIStyleState
 描述:空間被按下時的渲染設置。
◆ var alignment : TextAnchor
 描述:文本對齊
◆ var border : RectOffset
 描述:全部背景圖片的邊界。
 這個對應於GUITexture的邊界設置。它隻影響渲染的背景圖像,不影響定位。
◆ var clipOffset : Vector2
 描述:用於該GUIStyle內容的剪裁偏移。
◆ var clipping : TextClipping
 描述:當渲染的內容相對於給定的區域太大時作什麼
◆ var contentOffset : Vector2
 描述:用於該GUIStyle內容的像素偏移。
◆ var fixedHeight : float
 描述:若是非0,任何用這個風格渲染的GUI元素將有這裏指定的高度。
◆ var fixedWidth : float
 描述:若是非0,任何用這個風格渲染的GUI元素將有這裏指定的寬度。
◆ var focused : GUIStyleState
 描述:元素得到鍵盤焦點時的渲染設置。
◆ var font : Font
 描述:用於渲染的字體。若是null,當前的GUISkin的默認字體將被使用。
◆ var hover : GUIStyleState
 描述:鼠標懸停在控件時的渲染設置。
◆ var imagePosition : ImagePosition
 描述:GUIContent的圖片和文本如何組合。
◆ var lineHeight : float
 描述:這個風格一行文本的高度。以像素爲單位。(只讀)
◆ var margin : RectOffset
 描述:以這種風格渲染的元素和任何其餘GUI元素之間的邊界。
這個隻影響自動佈局。(參見 : GUILayout)
◆ var name : string
 描述:GUIStyle的名稱。用來基於名稱獲取它們。
◆ var normal : GUIStyleState
 描述:組建正常顯示是渲染設置。
◆ var onActive : GUIStyleState
 描述:元素被打開並具備鍵盤焦點時的渲染設置。
◆ var onFocused : GUIStyleState
 描述:元素被打開並被按下時的渲染設置。
◆ var onHover : GUIStyleState
 描述:控件被打開而且鼠標懸停在它上面時的渲染設置
◆ var onNormal : GUIStyleState
 描述:控件被打開時的渲染設置。
◆ var overflow : RectOffset
 描述:添加到背景圖片的額外間距。
 這可用於若是你的圖片要投射一個陰影,而且向擴展背景圖片超出使用這個風格的制定GUI元素的矩形時。
◆ var padding : RectOffset
 描述:從GUIStyle邊界到內容開始的間距
◆ var stretchHeight : bool
 描述:這個風格的GUI元素能夠被垂直拉伸以便更好的佈局麼?
◆ var stretchWidth : bool
 描述:這個風格的GUI元素能夠被水平拉伸以便更好的佈局麼?
◆ var wordWrap : bool
 描述:文本換行?
 這將致使任何包含的文本被換行以便適應控件的寬度。
構造函數
◆ static function GUIStyle() : GUIStyle
 描述:
◆ static function GUIStyle(other:GUIStyle) : GUIStyle
 描述:
函數
◆ function CalcHeight(content : GUIContent, width : float) : float
 描述:當渲染content並制定width時這個元素的高度。
◆ function CalcMinMaxHeight (content : GUIContent, outminWidth : float, outmaxWidth : float) : void
 描述:計算以這個風格渲染的content的最大最小寬度。
 被GUILayout使用來正確處理換行。
◆ function CalcScreenSize(contentSize : Vector2) : Vector2
 描述:計算用這個風格格式化的元素的尺寸,和一個給定的內容空格。
◆ function CalcSize(content : GUIContent) : Vector2
 描述:若是內容使用這個風格渲染,計算某些內容的尺寸。
 這個函數不考慮換行。要作到這點,你須要肯定寬度,而後打調用CalcHeight分配計算出wordwrapped高度。
◆ function Draw(position : Rect, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
 描述:
◆ function Draw(position : Rect, text : string, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
 描述:用GUIStyle繪製一個文本字符串。
◆ function Draw(position : Rect, image : Texture, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
 描述:用GUIStyle繪製圖片。若是圖片太大,它將被縮小。
◆ function Draw(position : Rect, content : GUIContent, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
 描述:用GUIStyle繪製文本和圖片。若是圖片太大,它將被縮小。
◆ function Draw(position : Rect, content : GUIContent, controlID : int, on : bool = false) : void
 描述:GUI代碼中使用的主要繪製函數。
◆ function DrawCursor(position : Rect, content : GUIContent, controlID : int, Character : int) : void
 描述:用選定的內容繪製這個GUIStyle
◆ function DrawWithTextSelection(position : Rect, content : GUIContent, controlID : int, firstSelectedCharacter : int, lastSelectedCharacter : int) : void
 描述:用選定的內容繪製這個GUIStyle
◆ function GetCursorPixelPosition(position : Rect, content : GUIContent, cursorStringIndex : int) : Vector2
 描述:獲取給定字符串索引的像素位置。
◆ function GetCursorStringIndex(postion : Rect, content : GUIContent, cursorPixelPosition : Vector2) : int
 描述:當用戶在cursorPixelPosition處點擊時獲取光標位置(索引到內容文本)這部計算內容中任何圖片。
類變量
◆ static var none : GUIStyle
 描述:空GUIStyle的快捷方式。
 這個風格不包含裝飾而僅僅以缺省字體渲染全部東西。
 function OnGUI()
 {  //製做一個沒有裝飾的按鈕
  GUI.Button(「I’m very bare」, GUIStyle.none);
}
類方法
◆ static implicit function GUIStyle(str : string) : GUIStyle
 描述:從當前皮膚獲取一個名爲GUI風格。
GUIUtility
 類
 用於製做新GUI空間的工具類。
 除非從頭開始建立本身的GUI控件,不然你不須要使用這些函數。
類變量
◆ static var hotControl : int
 描述:當前具備特色的控件controlID。
 熱點空間是臨時激活的一個控件。當用於在一個按鈕上按下鼠標時,它變爲熱點。當一個控件具備熱點時,其餘控件不容許響應鼠標事件。一旦用戶鼠標示範,這個控件設置hotControl爲0以便代表其餘控件能夠響應用戶輸入。數據庫

◆ static var keyboardControl : int
 描述:具備鍵盤焦點控件的controlID。
類方法
◆ static function GetControlID(focus : FocusType) : int
◆ static function GetControlID(hint : int, focus : FocusType) : int
◆ static function GetControlID(content : GUIContent, focus : FocusType) : int
 描述:爲一個控件獲取惟一ID。
◆ static function GetControlID(focus : FocusType, position : Rect) : int
◆ static function GetControlID(hint : int, focus : FocusType, position : Rect) : int
◆ static function GetControlID(content : GUIContent, focus : FocusType, position : Rect) :  int
描述:爲一個控件獲取惟一ID。
◆ static function GetStateObject(t : type, controlID : int) : object
 描述:從一個controlID獲取一個狀態對象。
 這將返回一個可重用的狀態對象,它的controlID是惟一的。若是沒有,一個新的將被建立並添加到ControlID。
◆ static function GUIToScreenPoint(guiPoint : Vector2) : Vector2
 描述:將一個點從GUI位置轉化爲屏幕空間。
 參見:GUIUtility, ScreenToGUIPoint
◆ static function MoveNextAndScroll(forward: bool) : void
 描述:只容許從OnGUI內部調出GUI函數
◆ static function QueryStateObject(t: Type, controlID : int) : object
 描述:從一個controlID獲取一個存在的狀態物體。
 這個返回一個可回收的狀態物體。這個物體具備惟一的controlID。若是沒有,這個函數將返回null。
◆ static function RotateAroundPivot(angle: float, pivotPoint : Vector2) : void
 描述:使GUI圍繞一個點旋轉的輔助函數。
 修改GUI.matrix來繞着pivotPoint旋轉全部的GUI元素angel度。
 參見:GUI.matrix, ScaleAroundPivot
◆ static function ScaleAroundPivot(scale: Vector2, pivotPoint: Vector2) : void
 描述:使GUI圍繞一個點縮放的輔助函數。
 修改GUI,.matrix來繞着pivotPoint縮放全部的GUI元素angel度。
 參見:GUI.matrix, RotateAroundPivot
◆ static function ScreenToGUIPoint(screenPoint : Vector2) : object
 描述:將一個點從屏幕空間轉化爲GUI位置。
 用於反轉計算GUIToScreenPoint的值。
 參見:GUIUtility.GUIToScreenPoint。
GUI

 GUI類是Unity GUI的手工定位接口
 參見:GUI tutorial
類變量
◆ static var backgroundColor : Color
 描述:全局的修改由GUI渲染的全部元素的背景顏色。
 這個獲取多個color。
 參見:contentColor, color
◆ static var changed : bool
 描述:有任何控件的輸入數據改變嗎?
◆ static var color : Color
 描述:全局的修改GUI顏色。
 這將影響背景和文本顏色。
 參見:backgroundColor, contentColor
◆ static var contentColor : Color
 描述:修改由GUI渲染的全部文本的顏色。
 這個獲取多個color。
 參見:backgroundColor : Color
◆ static var depth : int
 描述:當前執行的GUI行爲的排序深度
 當你有不一樣的腳本同時運行時。設置這個來決定順序。
◆ static var enabled : bool
 描述:GUI啓用了?
 設置這個值爲假將禁用全部GUI交互。全部的控件將以半透明方式繪製。並將不響應用戶輸入。
 //這個值跟蹤擴展的選項是否能夠被打開。
 var allOptions = true;
 //兩個擴展選項
 var extended1 = true;
 var extended2 = true;
 function OnGUI()
{
 //製做一個開關控件以便容許用戶編輯擴展的選項
 allOptions = GUI.Toogle(Rect(0, 0, 150, 20), allOptions, 「Edit All Options」);

 //將它的值賦給GUIEnabled – 若是上面的複選框被禁用
 //這些GUI元素將
 GUIenabled = allOptions

 //這兩個控件只在上面的按鈕爲On時啓用。
 extended1 = GUI.Toogle(Rect(20, 20, 130, 20), extended1, 「Extended Option 1」);
 extended2 = GUI.Toogle(Rect(20, 40, 130, 30), extended2, 「Extended Option 2」);

 //使用條件語句,以使GUI代碼能夠再次啓用
 GUI.enabled = true; 
 //製做一個OK按鈕
 if(GUI.Button(Rect(0, 60, 150, 20), 「OK」))
print(「user clicked ok」);
}
◆ static var matrix : Matrix4x4
 描述:GUI變換矩陣
◆ static var skin : GUISkin
 描述:使用的全局皮膚
 你能夠在任什麼時候候設置這個來改變GUI的外觀。若是設置爲null,這個皮膚將使用默認的Unity皮膚。
◆ static var tooltip : string
 描述:鼠標移動到空間上的提示信息(只讀)。
 建立GUI空間是。你能夠給他傳遞一個提示。這能夠經過改變內容參數來製做一個自定義GUIContent物體,而不是僅僅傳遞一個字符串。
 但鼠標通過帶有提示性的控件時,它設置全局的GUI.tooltip值爲傳入得知。在OnGUI代碼的末端,你能夠製做一個標籤來顯示GUI.tooltip的值。
 function OnGUI()
{
 //製做一個按鈕,它使用自定義GUI.Content參數來傳遞提示。
 GUI.Button(Rect(10, 10, 100, 20), GUIContent(「Click me」, 「This is the tooltip」));

 //顯示鼠標指向或具備鍵盤焦點的控件提示
 GUI.Button(Rect(10, 55, 100, 20), 「No tooltip here」);
}
 你能夠使用元素的次序來建立’層次化的’提示
function OnGUI()
{
 //這個box比隨後的許多元素大,而且它有一個提示。
 GUI.Box(Rect(5, 35, 110, 75), GUIContent(「Box」, 「this box has a tooltip」));

 這個按鈕在box內部,可是沒有提示,所以它不會覆蓋這個box的提示。
 GUI.Button(Rect(10, 55, 100, 20), 「No tooltip here」);
  
 這個按鈕在box內部,而且有一個提示,所以它會覆蓋這個box的提示。
GUI.Button(Rect(10, 80, 100, 20), GUIContent(「I have a tooltip」, 「This button overrides the box」));
//最後,顯示來自鼠標指向或具備鍵盤焦點的提示
GUI.Label(Rect(10, 40, 100, 40), GUI.tooltip);
}
Tooltip也能用來實現一個OnMouseOver/OnMouseOut消息系統:
var lastTooltip = 「」;
function OnGUI()
{
 GUILayout.Button(GUIContent(「Play Game」, 「Button1」));
 GUILayout.Button(GUIContent(「Quit」, 「Button2」));

 if(Event.current.type == EventType.repaint && GUI.tooltip! = lastTooltip)
{
  if(lastTooltip != 「」)
SendMessage(lastTooltip + 「OnMouseOut」, SendMessageOptions, DontRequireReceiver);
  if(GUI.tooltip != 「」)
SendMessage(GUI.tooltip + 「OnMouseOut」, SendMessageOptions, DontRequireReceiver);
  lastTool\tip = GUI.tooltip;
 }
}
類方法
◆ static function BeginGroup(position : Rect) : void
◆ static function BeginGroup(position : Rect, text : string) : void
◆ static function BeginGroup(position : Rect, image : Texture) : void
◆ static function BeginGroup(position : Rect, content : GUIContent) : void
◆ static function BeginGroup(position : Rect, style : GUIStyle) : void
◆ static function BeginGroup(position : Rect, text : string, style : GUIStyle) : void
◆ static function BeginGroup(position : Rect, image : Texture, style : GUIStyle) : void
◆ static function BeginGroup(position : Rect, content : GUIContent, style : GUIStyle) : void
 參數
 position屏幕用於組的矩形區域。
 text 顯示在該組上的文本。
 image顯示在該組上的Texture。
content  用於這個組的文本,圖形和提示。若是提供,任何鼠標點擊被組捕獲,而且若是沒有設置,不會渲染背景,和傳遞鼠標點擊。
style 用於背景的風格。
描述:
開始組,必須與EndGroup調用匹配。
當你開始一個組時,用於GUI控件的座標系統被設置爲(0, 0)是組的左上角。全部控件被附加到組。組能夠嵌套 – 若是使用,子被附加到他們的父。
當你在屏幕上移動一組GUI元素是這是很是有用的。一個普通的用法是設計你的菜單以適合一個特定的屏幕的尺寸。而後在更大的顯示器上居中顯示GUI。
function OnGUI()
{
 //約束全部的繪圖在屏幕中心800*600的區域
 GUI.BeginGroup(new Rect(Screen.width / 2 – 400, Screen.height / 2 – 300, 800, 600));
 //在由BeginGroup定義的新座標空間中繪製一個box
 //注意,如今(0,0)已經被移動了
 GUI.Box(new Rect(0, 0, 800, 600), 「This box is new centered! – Here you would put your main menu」);
 //須要用一個EndGroup來匹配全部的BeginGroup調用。
 GUI.EndGroup();
}
 參見:matrix, BeginScrollView

◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect) : Vector2
◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect, alwaysShowHorizontal : bool, alwaysShowVertical : bool) : Vector2
◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle) : Vector2
◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect, alwaysShowHorizontal : bool, alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle) : Vector2
 參數
 position  屏幕上用了ScrollView的矩形區域
 scrollPosition 用來顯示的位置。
 viewRect  用在滾動視內部的矩形。
alwaysShowHorizontal  可選的參數用來老是顯示水平滾動條。若是爲假或不設置,它只在clientRect比position寬的時候顯示
alwaysShowVertical 可選的參數用來老是顯示垂直滾動條。若是爲假或不設置,它只在clientRect比position長的時候顯示。
horizontalScrollbar 用於水平滾動條的可選GUIStyle,若是不設置,將使用當前GUISkin的horizontalScrollbar.
verticalScrollbar 用於水平滾動條的可選GUIStyle,若是不設置,將使用當前GUISkin的verticalScrollbar.
返回Vector2 – 修改過的scrollPosition回傳這個變量。以下的例子。
描述:在你的GUI中開始滾動視。
ScrollViews讓你在屏幕上製做一個較小的區域。使用放置在ScrollView邊上的滾動條來查看一個較大的區域。
//滾動視口的位置
var smallPosition = Vector2.zero;
function OnGUI()
{
 //一個絕對位置的例子。製做一個具備較大區域的滾動視。
 //並將它放置在一個小的矩形中。
 scrollPosition = GUI.BeginScrollView(Rect(10, 300, 100, 100), scrollPosition, Rect(0, 0, 220, 200));
 //製做四個按鈕 – 每一個角上有一個,由BeginScrollView最後一個參數定義的座標系統。
GUI.Button(Rect(0, 0, 100, 20), 「Top-left」);
GUI.Button(Rect(0, 0, 100, 20), 「Top-right」);
GUI.Button(Rect(0, 0, 100, 20), 「Bottom-left」);
GUI.Button(Rect(0, 0, 100, 20), 「Bottom-right」);
//結束前面開始滾動視
GUI.EndScrollView();
}
◆ static function Box(position : Rect, text : string) : void
◆ static function Box(position : Rect, image : Texture) : void
◆ static function Box(position : Rect, content : GUIContent) : void
◆ static function Box(position : Rect, text : string, style : GUIStyle) : void
◆ static function Box(position : Rect, image : Texture, style : GUIStyle) : void
◆ static function Box(position : Rect, content : GUIContent, style : GUIStyle) : void
 參數
 position屏幕上用於box的矩形區域
 text 顯示在該box上的文本
 image顯示在該box上的Texture
 content用於這個box的文本,圖形和提示
 style 使用的風格。若是不設置,將使用當前GUISkin的box風格。
 描述:製做一個圖形box。
◆ static function BringWindowToBack(windowID: int) : void
 參數
 windowID  在window調用中建立窗體時使用的惟一標識。
 描述:將特定的窗口放到浮動窗口的後面。
◆ static function BringWindowToFront(windowID: int) : void
 參數
 windowID  在Window調用中建立窗體時使用的惟一標識。
 描述:將特定的窗口放到浮動窗口的前面。
◆ static function Button(position : Rect, text : string) : bool
◆ static function Button(position : Rect, image : Texture) : bool
◆ static function Button(position : Rect, content : GUIContent) : bool
◆ static function Button(position : Rect, text : string, style : GUIStyle) : bool
◆ static function Button(position : Rect, image : Texture, style : GUIStyle) : bool
◆ static function Button(position : Rect, content : GUIContent, style : GUIStyle) : bool
 參數
 position屏幕上用於按鈕的矩形區域
 text 顯示在該按鈕上的文本
 image顯示在該按鈕上的Texture
 content用於這個按鈕的文本,圖形和提示
 style 使用的風格。若是不設置,將使用當前GUISkin的button風格。
 返回bool - /true/當用戶單擊按鈕時
 描述:製做一個簡單的按鈕,用戶點擊它們的時候,就會有些事情發生。
◆ static function DragWindow(position : Rect) : void
 參數
 position能夠拖動的窗口部分。這個被附加到實際窗口。
 描述:讓窗口可拖動。
 插入這個函數的在你的窗口代碼中使窗口可拖動。
 var windowRect = Rect(20, 20, 120, 50);
 
 function OnGUI()
 {
  //註冊窗體
  windowRect = GUI.Window(0, windowRect, DoMyWindow, 「My Window");
}
//製做窗體內容
function DoMyWindows(windowID : int)
{
 //製做一個很是長的矩形,高20像素。
 //這將使得窗口能夠調整大小,經過頂部的標題欄 – 無論它有多寬。
 GUI.DragWindow(Rect(0, 0, 10000, 20));
}
◆ static function DragWindow() : void
 若是你想將整個窗體背景做爲一個可拖動區域,不使用參數並將DragWindow放置到總體函數的最後。
 這意味着任何其餘類型的控件將首先被處理而且拖動將只在沒有其餘控件得到焦點時使用。
◆ static function DrawTexture(position : Rect, image : Texture, scaleMode : ScaleMode =  stretchToFill, alphaBlend : bool = true, imageAspect : float = 0) : void
 參數
 position在屏幕上繪製一個內部包含有紋理的矩形。
 image須要被繪製的紋理。
 scaleMode  定義了當矩形的長寬比和內部圖像的長寬比不一樣時如何縮放圖像。
 alphaBlend  定義了alpha值是否參與圖像的混合(默認爲真)。若是爲假,圖像將會被繪製並顯示。
 imageAspect  源圖像的的長寬比。若是是0(默認值),則使用圖像自身的長寬比。
 描述:在一個矩形內部繪製一個紋理。 
 參見:GUI.color, GUI.contentColor
◆ static function EndGroup() : void
 描述:結束一個組
 參見:BeginGroup()。
◆ static function EndScrollView : void
 描述:結束一個由BeginScrollView開始的滾動視。
◆ static function FocusControl(name : string) : void
 描述:把鍵盤焦點轉移到定義的控件。
 參見:SetNextControlName, GetNameOfFocusedControl。
var username = "username";
function OnGUI () 
{  // 設置一個文本域中內部名稱
  GUI.SetNextControlName ("MyTextField");
  // Make the actual text field.
  username = GUI.TextField (Rect (10,10,100,20), username);
  // If the user presses this button, keyboard focus , will move.
  if (GUI.Button (Rect (10,40,80,20), "Move Focus"))
  GUI.FocusControl ("MyTextField");
}
◆ static function FocusWindow(windowID : int) : void
 參數:
 windowID  當調用Window而建立的窗口的標識符。
 描述:使一個窗口被激活。
 參見:GUI.UnfocusWindow
◆ static function GetNameOfFocusedControl() : string
 描述:返回當前激活的控件的名字。控件的名字是由SetNextControlName函數建立的。當有名字的控件被激活時,函數返回它的名字;不然的話返回一個空字符串。
var login = "username";
var login2 = "no action here";
function OnGUI () 
{
    GUI.SetNextControlName ("user");
    login = GUI.TextField (Rect (10,10,130,20), login);
    login2 = GUI.TextField (Rect (10,40,130,20), login2);
    if (Event.current.Equals (Event.KeyboardEvent ("return")) && GUI.GetNameOfFocusedControl () == "user")
     {
          Debug.Log ("Login");
      }
    if (GUI.Button (new Rect (150,10,50,20), "Login"))
        Debug.Log ("Login");
}
  參見:SetNextControlName, FocusControl
  login2 = GUI.TextField(new Rect(10, 40, 130, 20), login2);
if(Event.current.Equals(Event.KeyboardEvent.(「return」))&&GUI.GetNameOfFocusedControl() == 「user」)
 Debug.log(「Login」);
if(GUI.Button(new Rect(150, 10, 50, 20), 「Login」))
 Debug.log(「Login」);
}
 參見:SetNextControlName
◆ static function HorizontalScrollbar(position : Rect, value : float, size : float, leftValue : float, rightValue : float) : bool
◆ static function HorizontalScrollbar(position : Rect, value : float, size : float, leftValue : float, rightValue : float, style : GUIStyle) : bool
 參數
position屏幕上用於滾動條的矩形區域
value在min和max之間的位置
 size 能看見多大?
 leftValue滾動條左邊的值
 rightValue  滾動條右邊的值
 style 用於滾動條背景的風格。若是不設置,將使用當前GUISkin的horizontalScrollbar。
 返回float – 修改後的值。這能夠經過拖動這個滾動條,或者單擊兩端的箭頭來改變。
 描述:製做一個水平滾動條。滾動條能夠用來滾動文檔。大多數狀況下,你會使用scrollViews代替。
 找到額外的元素:
 在滾動條兩端的按鈕將在當前皮膚中搜索」leftbutton」和」rightbutton」做爲風格。滾動條的滑塊(你拖動的東西)將搜索並使用名爲「thumb」的風格。
 //這將使用下面的風格名來決定該按鈕的尺寸/位置
 //MyScrollbarrightbutton – 用於左側按鈕的風格名稱
 //MyScrollbarleftbutton – 用於右側按鈕的風格名稱
 //MyScrollbarthumb – 用於滑塊的風格名稱
 scrollPos = HoriztontalScrollbar(Rect(0, 0, 100, 20), scrollPos, 1, 0, 100, 「My Scrollbar」);
◆ static function HorizontalSlider(position : Rect, value : float, leftValue : float, rightValue :  float) : float
◆ static function HorizontalSlider(position : Rect, value : float, leftValue : float, rightValue :  float, slider : GUIStyle, thumb : GUIStyle) : float
 參數
position屏幕上用於滑桿的矩形區域
value滑桿顯示的值。這個決定可拖動的位置。
 leftValue滑桿左邊的值
 rightValue  滑桿右邊的值
 slider用於顯示拖動區域的GUIStyle。若是不設置, 將使用當前GUISkin的  horizontalSlider。
 thumb用於顯示拖動塊的GUIStyle。若是不設置, 將使用當前GUISkin的horizontalSliderThumb。
 返回float – 被用戶設置的值。
 描述:一個用戶能夠拖動的滑桿。能夠在min和max只見改變一個值。
◆ static function Label(position : Rect, text : string) : void
◆ static function Label(position : Rect, image : Texture) : void
◆ static function Label(position : Rect, content : GUIContent) : void
◆ static function Label(position : Rect, text : string, style : GUIStyle) : void
◆ static function Label(position : Rect, image : Texture, style : GUIStyle) : void
◆ static function Label(position : Rect, content : GUIContent, style : GUIStyle) : void
 參數
 position屏幕上用於標籤的矩形區域
 text 顯示在該標籤上的文本
 image顯示在該標籤上的Texture
 content用於這個標籤的文本,圖形和提示
 style 使用的風格。若是不設置,將使用當前GUISkin的label
 描述:在屏幕上製做一個文本或者紋理標籤.
 標籤沒有用戶交互,不會獲取鼠標點擊並老是以普通風格渲染。若是你想製做一個可視化響應用戶輸入的控件,使用一個Box控件。
 例如:繪製一個傳統的Hello world字符串
 function OnGUI
 {
  GUI.Label(Rect(10, 10, 100, 20), 「Hello world」);
 }
 例如:在屏幕上繪製一個紋理。標籤也用於顯示紋理,而不只是字符串。簡單傳遞一個紋理。
 var textureToDisplay : Texture2D;
 function OnGUI()
 {
  GUI.Label(Rect(10, 40, textureToDisplay.width, textureToDiplay.height), textureToDisplay);
 }
◆ static function PasswordField(position : Rect, password : string, markChar : char) : string
◆ static function PasswordField(position : Rect, password : string, markChar : char,  maxLength : int) : string
◆ static function PasswordField(position : Rect, password : string, markChar : char, style :  GUIStyle) : string
◆ static function PasswordField(position : Rect, password : string, markChar : char,  markChar : char, style : GUIStyle) : string
 參數
 position屏幕上用於文本的矩形區域
 password  用於編輯的密碼。這個函數返回值應該被賦回這個字符串。以下的例  子。
 markChar  用來隱藏密碼的字符。
 maxLength  字符串的最大長度。若是不設置,用戶能夠一直輸入。
 style使用的風格。不過不設置,將那個使用當前GUISkin的textField風格。
 返回string – 編輯過的密碼
 描述:製做一個用戶能夠輸入密碼的文本域。
 var passwordToEdit = 「My Password」;

 function OnGUI()
 {
  //製做一個文原本調整stringToEdit。
  passwordToEdit = GUI.PasswordField(Rect(10, 10, 200, 20), passwordToEdit, 「*」, 25);
 }

◆ static function RepeatButton(position : Rect, text : string) : bool
◆ static function RepeatButton(position : Rect, image : Texture) : bool
◆ static function RepeatButton(position : Rect, content : GUIContent) : bool
◆ static function RepeatButton(position : Rect, text : string, style : GUIStyle) : bool
◆ static function RepeatButton(position : Rect, image : Texture, style : GUIStyle) : bool
◆ static function RepeatButton(position : Rect, content : GUIContent, style : GUIStyle) : bool
 參數
 position  屏幕上用於按鈕的矩形區域
 text顯示在該按鈕上的文本
 image  顯示在該按鈕上的Texture
 content  用於這個按鈕的文本,圖形和提示
 style使用的風格。不過不設置,將那個使用當前GUISkin的button風格。
 返回bool - /true/當用戶單擊按鈕時。
 描述:製做一個按鈕。當用戶按住它時一直是激活的。
◆ static function ScrollTo(position : Rect) : void
 描述:滾動全部包含在scrollview中的數據以便position可見。
◆ static function SelectionGrid (position : Rect, selected : int, texts : string[], xCount : int) :  int
◆ static function SelectionGrid (position : Rect, selected : int, images : Texture[], xCount :  int) : int
◆ static function SelectionGrid (position : Rect, selected : int, content : GUIContent[],  xCount : int) : int
◆ static function SelectionGrid (position : Rect, selected : int, texts : string[], xCount : int,  style : GUIStyle) :  int
◆  static function SelectionGrid (position : Rect, selected : int, images : Texture[], xCount : int,  style : GUIStyle) :  int
◆ static function SelectionGrid (position : Rect, selected : int, content : GUIContent[],  xCount : int, style : GUIStyle) : int
 參數
 position屏幕上用於網格的矩形區域。
 selected選擇的網格按鈕的索引
 texts 顯示在網格按鈕上的字符串數組
 images顯示在網格按鈕上的紋理數組
 contents用於這個網格按鈕的文本,圖形和提示數組
 xCount在水平方向有多少個像素。空間將被縮放來適應,除非風格定義了一  個fixWidth。
 style 使用的風格。若是不設置,將使用當前GUISkin的button風格。
 返回int – 選擇按鈕的索引。
 描述:製做一個按鈕網絡。
◆ static function SetNextControlName(name : string) : void
 描述:設置下一個控件的名稱。
 這是接下來的控件被註冊。
◆ static function TextArea(position : Rect, text : string) : string
◆ static function TextArea(position : Rect, text : string, maxLength : int) : string
◆ static function TextArea(position : Rect, text : string, style : GUIStyle) : string
◆ static function TextArea(position : Rect, text : string, maxLength : int, style : GUIStyle) :  string
 參數
 position  屏幕上用於文本的矩形區域
 text用於編輯的文本。這個函數返回值應該被賦回這個字符串。以下的例子。
 maxLength 字符串的最大長度。若是不設置,用戶能夠一直輸入。
 style使用的風格。若是不設置,將使用當前GUISkin的textArea。
 返回string – 編輯過的字符串
 描述:製做一個多行文本區域。這裏用戶能夠編輯這個字符串。
 var stringToEdit = 「Hello World\nI’ve got 2 lines…」;
 function OnGUI()
 {
  //製做一個多行文本區域來調整stringToEdit
  stringToEdit = GUI.TextArea(Rect(10, 10, 200, 100), stringToEdit, 200);
 }
◆ static function TextField(position : Rect, text : string) : string
◆ static function TextField(position : Rect, text : string, maxLength : int) : string
◆ static function TextField(position : Rect, text : string, style : GUIStyle) : string
◆ static function TextField(position : Rect, text : string, maxLength : int, style :  GUIStyle) : string
 參數
 position  屏幕上用於文本的矩形區域
 text用於編輯的文本。這個函數返回值應該被賦回這個字符串。以下的例子。
 maxLength 字符串的最大長度。若是不設置,用戶能夠一直輸入。
 style使用的風格。若是不設置,將使用當前GUISkin的textField風格。
 返回string – 編輯過的字符串
 描述:製做一個單行文本域。這裏用戶能夠編輯這個字符串。
 var stringToEdit = 「Hello World」;

 function OnGUI()
 {
  //製做一個文本域來調整stringToEdit
  stringToEdit = GUI.TextField(Rect(10, 10, 200, 20), stringToEdit, 25);
 }
◆ static function Toggle(position : Rect, value : bool, text : string) : bool
◆ static function Toggle(position : Rect, value : bool, image : Texture) : bool
◆ static function Toggle(position : Rect, value : bool, content : GUIContent) : bool
◆ static function Toggle(position : Rect, value : bool, text : string, style : GUIStyle) : bool
◆ static function Toggle(position : Rect, value : bool, image : Texture, style : GUIStyle) : bool
◆  static function Toggle(position : Rect, value : bool, content : GUIContent, style : GUIStyle) :  bool
 參數
 position屏幕上用於按鈕的矩形區域
 value這個按鈕是打開的或關閉
 text 顯示在該按鈕上的文本
 image顯示在該按鈕上的Texture
 content用於這個按鈕的文本,圖形和提示
 style 使用的風格。若是不設置,將使用當前GUISkin的toggle風格。
 返回bool – 按鈕的新值
 描述:製做一個on/off開關按鈕
◆ static function Toolbar(position : Rect, selected : int, texts : string[]) : int
◆ static function Toolbar(position : Rect, selected : int, images : Texture[]) : int
◆ static function Toolbar(position : Rect, selected : int, contents : GUIContent[]) : int
◆ static function Toolbar(position : Rect, selected : int, texts : string, style : GUIStyle[]) :  int
◆ static function Toolbar(position : Rect, selected : int, images : Texture, style : GUIStyle[]) :  int
◆  static function Toolbar(position : Rect, selected : int, contents : GUIContent[], style :  GUIStyle) :  int
 參數
 position屏幕上用於工具欄的矩形區域
 selected選擇按鈕的索引
 texts 顯示在該工具欄上的字符串數組
 images顯示在工具欄按鈕上的紋理數組
 contents用於這個工具欄的文本,圖形和提示數組。
 style 使用的風格。若是不設置,將使用當前GUISkin的button風格。
 返回int – 選擇按鈕的索引
 描述:製做一個工具欄

◆ static function UnfocusWindows() : void
 描述:從全部窗體上移除焦點。
◆ static function VerticalScrollbar(position : Rect, value : float, size : float, topValue : float,  buttonValue : float) : float
◆ static function VerticalScrollbar(position : Rect, value : float, size : float, topValue : float,  buttonValue : float, style : GUIStyle) : float
 參數
 position屏幕上用於滾動條的矩形區域。
 value在min和max之間的位置。
 size 能看見多大?
 topValue滾動條頂端的值
 bottomValue  滾動條底端的值
 style 使用的風格。若是不設置,將使用當前GUISkin的horizontalScrollbar  風格。
 返回float – 修改後的值。這能夠經過拖動這滾動條,或者單擊兩端的箭頭來改變。
 描述:製做一個垂直滾動條。滾動條能夠用來滾動文檔。大多數狀況下,你會使用scrollViews代替。
 找到額外的元素:
 在滾動條兩端的按鈕將在當前皮膚中搜索「upbutton」和「downbutton」做爲風格。滾動條的滑塊(你拖動的東西)將搜索並使用名爲「thumb」的風格。
 //這將使用下面的風格名來決定該按鈕的尺寸位置。
 //MyVertScrollbarupbutton – 用於上端按鈕的風格名稱。
 //MyVertScrollbardownbutton – 用於下端按鈕的風格名稱。
 //MyVertScrollbarthumb – 用於滑塊的風格名稱。
 scrollPos = HorizontalScrollbar(Rect(0, 0, 100, 20), scrollPos, 1, 0, 100, 「MyVertScrollbar」);

◆ static function VerticalSlider(position : Rect, value : float, topValue : float, buttonValue :  float) : float
◆ static function VerticalSlider(position : Rect, value : float, topValue : float, buttonValue :  float, slider : GUIStyle, thumb : GUIStyle) : float
 參數
 position屏幕上用於滑桿的矩形區域。
 value滑桿顯示的值。這個決定可移動滑塊的位置。
 topValue滑桿頂端的值
 bottomValue  滑桿底端的值
 slider用於顯示拖動區域的GUIStyle。若是不設置,將使用當前GUISkin的horizontalSlider。
 thumb用於顯示土洞區域的GUIStyle。若是不設置,將使用當前GUISkin的horizontalSliderThumb。
 返回float – 被用戶設置的值。
 描述:一個用戶能夠拖動的垂直滑桿。能夠在min和max之間改變一個值。
◆ static function Window(id : int, position : Rect, func : WindowFunction, text : string) : Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, image : Texture) :  Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, content :  GUIContent) : Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, text : string, style :  GUISytle) : Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, image : Texture,  style : GUIStyle) : Rect
◆ static function Window(id : int, clientRect : Rect, func : WindowFunction, title :  GUIContent, style : GUIStyle) : Rect
 參數
 id用於每一個窗口的惟一ID。這是用於接口的ID。
 clientRect 屏幕上用於組的矩形區域。
 func在窗體內部建立GUI的函數。這個函數必須使用一個函數 – 當前建立  GUI的窗體id
 text做爲窗體標籤的文本。
 image  用於在標題欄上顯示圖片的Texture
 content  用於這個窗口的文本,圖形和提示。
 style用於窗口的可選風格。若是不設置,將使用當前GUISkin的window。
 返回Rect – 窗口位於的矩形位置
 描述:製做一個彈出窗口
 窗口浮動在普通GUI控件之上,具備單擊激活的特色並能夠有選擇的隨意被端用戶拖動。不像其餘的控件,你須要傳遞給他們一個獨立的功能並放置在窗口中。注意:若是你使用GUILayout在窗口中放置你的組件,你應該使用GUILayout.Window。這是一個小例子幫助你開始:
 var windowRect = Rect(20, 20, 120, 50);
 function OnGUI()
 {
  //註冊窗口。注意第三個參數。
  windowRect = GUI.Window(0, windowRect, DoMyWindow, 「My Window」);
 }
 //製做窗口內容
 function DoMyWindow(windowID : int)
 {
  if(GUI.Button(Rect(10, 20, 100, 20), 」Hello World」))
print(「Get a click」);
 }
 你能夠使用相同的函數來建立多個窗口。須要確保每一個窗口有一個本身的ID。例如:
 var windowRect0 = Rect(20, 20, 120, 50);
 var windowRect1 = Rect(20, 100, 120, 50);
 function OnGUI() 
  //注意窗口。咱們建立了兩個使用相同函數的窗體
  //注意他們的ID不一樣。
 windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, 「My Window」);
 windowRect1 = GUI.Window(1, windowRect1, DoMyWindow, 「My Window」)
}
//製做窗口內容
function DoMyWindow(windowID : int)
{
 if(GUI.Button(Rect(10, 20, 100, 20), 「Hello World」))
 print(「Get a click in window 」 + windowID);
 //使窗口能夠被拖動
 GUI.DragWindow(Rect(0, 0, 10000, 10000));
}
 中止顯示窗口,簡單的在DoGUI函數內中止調用GUI.Window。
//布爾變量以決定是否顯示窗口
//從遊戲GUI,腳本,檢視面板中或者其餘地方改變這個決定窗口是否可見。
var doWindow() = true;
//製做窗口內容
function OnGUI()
{
 //製做一個開關變量來隱藏或顯示窗口
 doWindow() = GUI.Toggle(Rect(10, 10, 100, 20), doWindow(), 「Window 0」);
 //確保僅在doWindow()爲真時調用GUI.Window
 if(doWindow())
  GUI.Window(0, Rect(110, 10, 200, 60), DoWindow(), 「Basic Window」);
}
 爲了使窗口從自動GUI獲取它的尺寸,使用GUILayout.Window。
 調用順序
 窗口須要從後向前繪製。在其餘窗口頂部的窗口須要在其餘窗口以後繪製。這就意味着你不能期望你的DoWindow函數以任何特定的順序被調用。爲了讓這個可以工做,當你的建立窗口時下面值被存儲(使用Window函數),當DoWindow被調用時取回:GUI.skin, GUI.enabled, GUI.color, GUI.backgroundColor, GUI.contentColor, GUI.matrix
 這就是說很容易像這樣製做彩色窗口:
 var windowRect0 = Rect(20, 20, 120, 50);
 var windowRect1 = Rect(20, 100, 120, 50);
 function OnGUI()
 {
  //這裏咱們製做了2個窗口,在這個以前設置GUI.color的值。
  GUI.color = Color.red;
  windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, 「Red Window」);
  GUI.color = Color.green;
  windowRect1 = GUI.Window(1, windowRect1, DoMyWindow, 「Green Window」);
 }
//製做窗口內容
//GUI.color的值被設置爲窗口被建立以前的值。
function DoMyWindow(windowID : int)
{
 if(GUI.Button(Rect(10, 20, 100, 20), 「Hello world!」))
  print(「Got a click in window with color 」 + GUI.color);
 //使窗口能夠被拖動
 GUI.DragWindow(Rect(0, 0, 10000, 10000));
}
提示:你能夠使用GUI.color的alpha組件來淡入淡出窗口。
參見:DragWindow, BringWindowToFront, BringWindowToBack
GeometryUtility
 類
 用於普通集合功能的工具類
類方法
◆ static function CalculateFrusturnPlanes(camera : Camera) : Plane[]
 描述:計算視錐平面
 這個函數取給定的相機視錐並返回它的六個面。
 參見:Plane, GeometryUtility.TestPlanesAABB
◆ static function CalculateFrusturnPlanes(worldToProjection : Matrix4x4) : Plane[]
 描述:計算視錐平面
 這個函數返回由給定的視和投影矩陣定義的視錐的六個面。
 參見:Plane, GeometryUtility.TestPlanesAABB
◆ static function TestPlanesAABB(planes : Plane[], bounds : Bounds) : bool
 描述:若是包圍盒在平面數組內部返回真。
 若是包圍盒在平面內部或者與任何平面交互返回真。
 參見:GeometryUtility.CalculateFrusturnPlanes。
Gizmos
 類
 Gizmos用於場景中給出一個可視化的調試或輔助設置。
 全部的Gizmos繪製都必須在腳本的OnDrawGizmos或OnDrawGizmosSelected函數中完成。
 OnDrawGizmos在每一幀都被調用。全部在OnDrawGizmos內部渲染的Gizmos都是可見的。
 OnDrawGizmosSelected盡在腳本所附加的物體被選中時調用。
類變量
◆ static var color : Color
 描述:設置下次繪製的Gizmos的顏色。
 function OnDrawGizmosSelected()
 {
  //在物體的前方繪製一個5米長的線
  Gizmos.color = Color.red;
  var direction = transform.TransformDirection(Vector3.forward) * 5;
  Gizmos.DrawRay(transform.position, direction);
 }
◆ static var matrix : Matrix4x4
描述:設置用於渲染全部gizmos的矩陣。
類方法
◆ Static function DrawCube(center:Vector3,size:Vector3):void
描述:用center和size繪製一個立方體.
Function OnDrawGizmosSelected(){
        //在變換位置處繪製一個變透明的藍色立方體
        Gizmos.color=Color(1,0,0,5);
        Gizmos.DrawCube(transform.position,Vector3(1,1,1));
}
◆ Static function DrawGUITexture(screenRect:Rect,texture:Texture,mat:Material=null):void
描述:在屏幕座標下繪製一個紋理。用於GUI背景。
◆ Static function DrawGUITexture(screenRect:Rect,texture:Texture,leftBorder:int,rightBorder:int,topBorder:int,bottomBorder:int,mat:Material=null):void
描述:在屏幕座標下繪製一個紋理。用於GUI背景。
◆ Static function Drawicon(center:Vector3,name:string):void
描述:在世界位置center處繪製一個圖標.
這個圖標被命名爲name並放置在Assets/Gizmos文件夾或Unity.app/Resoutces文件夾.DrawIcon容許你在遊戲中快速選擇重要的物體。
//在物體位置處繪製光源燈泡圖標.
//由於咱們在OnDrawGizmos函數內部調用它,在場景視圖中
//這個圖標老是可點選的.
function OnDrawGizmos(){
     Gizmos DrawIcon(transform.position,」Light Gizmo.tiff」);
}
◆ Static function DrawLine(from:Vector3,to:Vector3):void
描述:繪製一條線從from到to.
Var Larget:Transform;
function OnDrawGizmosSelected(){
        if(target != null)
        {
                 //從transform到target繪製一條藍色的線
       Gizmos.color = Color.blue;
                  Gizmos.DrawLine(transform.position,target.position);
}
}
◆ static function DrawRay(r:Ray):void
static function DrawRay(from:Vector3,direction:Vector3):void
描述:繪製一個射線從from開始到from + direction.
◆ function OnDrawGizmosSelected(){
    Gizmos.color = Color.red;
    Direction = transform.TransformDirection(Vector3.forward)*5;
    Gizmos.DrawRay(transform.positon,direction); 
}
◆ Static function DrawSphere(center:Vector3,radius:flont):void
描述:用center和randins繪製一個球體.
Function OnDrawGizmosSelected(){
      //在變換位置處繪製一個黃色的球體
      Gizmos.color = Color.yellow;
      Gizmos.DrawSphere(transtorm.position,1);
}
◆ Static function DrawWireCube(center:Vector3, size: Vector3):void
描述:用center和radius繪製一個線框立方體.
Function OnDrawGizmosSelected(){
     //在變換位置處繪製一個黃色立方體
     Gizmos.color = Color.yellow;
     Gizmos.DrawWireCube (transtorm.position, Vector3(1,1,1));
}
◆ Static function DrawWireSphere(center:Vector3,radius:float):void
描述:用center和radius繪製一個線框球體.
Var explosionRadius = 5.0;
Function OnDrawGizmosSelected(){
     //選中的時候顯示爆炸路勁
     Gizmos.color = Color.white;
     Gizmos.DrawSphere(transtorm.position,explpsionRadius);
}
Graphics
    類
  Unity繪製函數的原始接口。
  這個是高級快捷地進去Unity優化網格繪製的地方。只限於Unity Pro.
類方法
◆  static function DrawMesh(mesh:Mesh, position: Vector3, rotation: Quaternion, material: Material, layer: int, camera: Camera=null, submeshIndex: int, properties: MaterialPropertyBlock=null): void

◆  static function DrawMesh(mesh:Mesh,matrix:Matrix4x4,material:Material,layer:int,
camera:Camera = null,submeshIndex:int,properties:MaterialPropertyBlock=null):
void
參數
mesh                    用於繪製的Mesh.
position                 網格的位置。
rotation                 網格的旋轉。
matrix                   網格的變換矩陣(由位置,旋轉和變換x組合)
material                 使用的Material.
layer                      使用的Layer.
Camera                   若是是null(缺省),該網格將在全部相機中被繪製,不然它將只會在給定的相機中渲染。
submeshIndex                 那個子網格被渲染。這只是在網格使用了多個材質的時候使用。
Properties                        在網格繪製前應用到才子的額外材質屬性。參考MaterialPropertyBlock.
描述:繪製一個網格
DrawMesh     在一幀中繪製一個網格。這個網格將受到光照的影響,能夠投射接收陰影並被投射器影響。就像它是某個物體的一部分。他能夠繪製於全部相機,或者只是特定的一些相機
 在你想建立人景的網格,而又不想過多的建立和管理遊戲物體的時候使用DrawMesh.注意,DrawMesh不會當即繪製網格;它僅僅提交它用於渲染。網格將被做爲普通渲染過程的一部分。若是想當即繪製一個網格。使用Graphics.DrawMeshNow。
由於DrawMesh不會當即繪製網格,在調用這個函數之間修改材質屬性並會使材質使用它們。若是你想繪製一系列相同材質的網格,可是稍微有些不一樣的屬性(例如,改變每一個網格的顏色),那麼使用MaterialPropertyBlock參數。
參見:MateralPropertyBlock.
◆  Static  function DrawMeshNow(mesh:Mesh,position:Vector3,rotation:Quatemion):void
描述:在給定的position,用給定的rotation繪製一個mesh。
這個函數將設置模型視矩陣並繪製網絡。當前設置材質的pass能夠被使用(參考Setpass)
◆  Static function DrawMeshNow(mesh:Mesh,position:Vector3,rotation:Quatemion,materallndex:int):void
描述:在給定的position,用給定的rotation和一個materialIndex繪製一個mesh.
◆  Static function  DrawMeshNow(mesh:Mesh,matrx:Matrix4x4):void
描述:用給定的matrix繪製一個mesh.
若是這個矩陣有一個負的縮放這個函數將不會正確渲染物體。
◆  Static function DrawMeshNow(mesh:Mesh,matrx:Matrix4x4,materialIndex:int):void
描述:用給定的matrix和materialIndex繪製一個mesh.
若是這個矩陣有一個負的縮放這個函數將不會正確渲染物體。
◆  Static function DrawTexture(screenRect:Rect,texture:Texture,mat:Material = null):void
描述:在屏幕座標下繪製一個紋理。
◆  Static function DrawTexture(screenRect:Rect,texture:Texture,leftBorder:int,rughtBord:int,topBorder:int,bottomBorder:int,mat:Material=null):void
描述:在屏幕座標下繪製一個紋理。
◆  Static function DrawTexture(screenRect:Rect,texture:Texture,sourceRect:Rect,leftBorder:int,rughtBord:int,topBorder:int,bottomBorder:int,mat:Material=null):void
描述:在屏幕座標下繪製一個紋理
◆  static function DrawTexture(screenReet:Rect,texture:Texture,sourceRect:Rect,leftBordr:int.rightBrder:int.topBorder:int,bottomBorder:int,color:Bolor,mat:Material=null):void
描述:在屏幕座標下繪製一個紋理。
Hashtable

函數
◆  function Add(key:Object, value:Object):void
描述:添加指定的鍵和值到哈希表。
◆  function Clear():void
描述:數量被設置爲0,而且從該集合中元素到其餘對象的引用也將被釋放,容量沒有改變。///這個方法是O(n)操做,這裏n是元素數量。
◆  function Contains(key:object):bool
描述:決定該哈希表中是否包含指定的鍵。
◆  function ContainsKey (key:object):bool
描述:從哈希表中移除指定鍵的元素。
◆  function Remove(key:object):void
描述:從哈希表中移除指定鍵的元素。
HostData

這個是用來保存單個主機信息的數據結構。
從master服務器取回的主機列表,使用這個類表示單個主機。
變量
◆  var comment:string
描述:一個多用途的註釋(能夠保存數據)

◆  var conneetedfPlaycrs:int
描述:當前鏈接的玩家
◆  var gameName:stting
描述:遊戲的名稱(像John Doe's Game)
◆  var gameType:string
描述:遊戲類型(像MyUniqueGameType)
◆  var ip:string[]
描述:服務器IP地址
◆  var passwordProtected:bool
描述:服務器須要密碼嗎?
◆  var playerLimit:int
描述:最大玩家限制
◆  var port:int
描述:服務器端口
◆  var nseNat:bool
描述:這個服務器須要NAT穿透嗎?
input

到輸入系統的接口。
使用這個類讀取在Input Manager中設置的軸。
使用Input.GetAxis用下面的缺省軸讀取軸心:"Horizontal"和"Vertical"被映射到搖桿,A,W,S,D和方向鍵,"Mouse X"和"Mouse Y"被映射到鼠標添量,"Fire1","Fine2","Fine3"映射到Ctrl,Alt,Cmd鍵和鼠標的三鍵或腰桿按鈕。新的輸入軸能夠在Input Manager中添加。
若是你在爲任何一種運動行爲使用輸入,那麼使用Inpur.GetAxis。它給你一種平滑的可配置的輸入,這個輸入能夠被映射到鍵盤,搖桿或鼠標。
使用Input.GetButton用於像事件同樣的行爲,不要將它用於移動,Input.GetAxis將使腳本代碼更小更簡單。
類變量
◆  static var anyKey:bool
描述:當前按住了任何鍵或鼠標按鈕嗎?(讀取)
◆  static var anyKeyDown:bool
描述:用戶按下任何鍵或鼠標按鈕返回(Rend Only)。直到用戶釋放所用鍵/按鈕並再次接下任何鍵/按鈕時才返回真。
◆ static var input: String
描述:返回這一幀中鍵盤的輸入(只讀)。
只有ASCII能夠包含在inputString中。
該字符串能夠包含兩個能被處理的特殊字符:字符「\b」表明退格。
*符"\n"表示回車。
//顯示如何從鍵盤讀取輸入
//(例如,用戶輸入它的名字)。
//你須要附加這個腳本到一個GUTText物體。function Updarc(){
for (var c;char in Input inputString){
//退格,移除最後一個字符
if(c=="\b") {
iftguiText.Lcngth.text.Substring(0,guiText.text Length-1);
}
//結束
efse if (e=="\n"){
prinr("Uscr cntered his name:"+guiText,text);
}
//正常的文本輸入.附加到尾部
elsc
}
guiText.text+=c;
}
}
}
◆  static var mousePosition:Vcctor3
描述:當前鼠標在像素座標下的位置。
屏幕或窗體的左下爲(0,0),屏幕或窗體的左上爲(Screen.width,Screen.height).
var particle:GamcObject,
function Update() {
if (lnput,GctButtonDown{"Firel")){
//從當前鼠標座標處建立一個射線
var ray=Camera.main.ScreenPointToRay(Input mousePositicn);
if{Physics.Raycast(ray)) {
//若是碰到建立一個粒子
Instontiatc(particlc,transfonn.position,transfonn.rotation);
}
}
}
類方法
◆  static function CetAxis(axinName:string):float
描述:設置由axinName確實虛擬軸的值。
對於鍵盤和搖桿輸入,這個值將在-1...1。
一個很是簡單的行駛在x-z平面的汽車。
var spced=10.0;
var cotatinnSpeed=100.0;
function update()
}
//獲取水平和垂直軸,
//默認滴它們被映射到方向鍵
//這個值的範圍在-1到1
var transtation=loput.getaxis("vertical")*spccd;
var rotation=inpul getaxis ("horizontal"*rotarionspeed)
//使它以10米/秒速度移動而不是10米/幀
translation*=time delta time
//沿着物體的Z軸移動變換
transtorm.transtate(1010translation);
//繞着Y軸旋轉
transform.rotate(0.rotation.0);
}
//指定一個鼠標查看
var horizontalspccd=2.0;
var verticelspeed=2.0
function update()
{
獲取鼠標增量,這個沒有在範圍-1...1之間
var h=horizontalspeed*inpul.getaxis("mouse X");
var v=verticalspeed*input.getaxis("mouse Y");
transform.rotate(v.h.0);
}
◆static function getaxisraw(axisname:string):float
描述:設置由axisname肯定虛擬軸的值,而且沒有使用平滑過濾,
對於鍵盤和搖桿輸入,這個值將在-1...1的範圍內。由於輸入沒有被平滑,
老是-1,0或1.若是你想本身處理全部鍵盤輸入的平滑,這個是頗有用的。
function update(){
var speed=input.getaxisraw("horizoatal"*time deta time);
transform rotate(0.speed.0);
}
◆static function getbutton(button name:string):bool
描述:當時由button name 肯定的虛按鈕被按住時返回真。
考慮自動開火-這個將在按鈕被按住時一直返回真。
//若是每0.5秒實例化一個projcctile,
//若是firel按鈕(默認爲Ctrl)被按下
var projectile:game object;
var firerate=0.5;
private var nextfire=0.0;
function update()
{
fi(input getbutton("firel")&&time.time>nextfire){
nextfire=time.time+firerate;
clone=instantiate(peojecctile,teansform,position,transffrm,rotation);
}
}
只有使用這個實現事件行爲例如,射擊,使用input.getaxis 用於任意類型的移動行爲
◆static function getbuttondown(button name:steing):bool
描述:當由:button name 肯定的虛擬按鈕被按下時返回真。
知道用戶釋放並再次按下時返回真。
//當用戶按下firel按鈕時實黎化一個projcctile
var projectile:gameobject;
function update(){
if(input getbution down("firel")){
elone=instantiate(projectile,transforrn,position.transforn.rotinon);
}
}
只使用這個實現事件行爲例如,射擊,使用lnput.GetAxis用於任意類型的移動行爲。
◆  static function GetButton Up(buttonName:string):bool
描述:當由buttonName肯定的虛擬按鈕被釋放時返回真.
直到用戶按下按鈕並再次鬆開時返回真。
//當用戶按下Fire;按鈕時實例化一個projectile.
var projectile:GameObject;
function Update O;
if(lnput GetButtonUp("Firel")){
clcne=lnstantiate{projectile,transtorm.position,transform.rotation);
  } 
}
只使用這個實現事件行爲例如,射擊。使用lnput.GetAXis用於任意類型的移動行爲,
◆  static funcrion GetKey(name:string):bool
描述:當用戶按住由name肯定的鍵時返回真,考慮自動開火。
鍵標識列表參考輸入管理器。在處理輸入時建議使用lnput.GetAxis和lnput.GetButton
由於它容許端用戶定義這些鍵.
funcrion Update(){
if(lnput.GetKey("up")){
   print("up arrow key is held down");
}
if(lnput.GetKey("down"))
}
   print("down arrow key is held down");
  } 
}
◆  static junction GetKey(key:keyGode):bool
描述:當用戶按住由key KeyCode枚舉參數肯定的鍵時返回真.
funcrion Update(){
if(lnput.GetKey(KeyCode.UpArrow))}
   print("up arrow key is held down");
}
if(lnput.GetKey(KeyCode.DownArrow)){
   print("down arrow key is held down");
   }
}
◆  static function GetkeyDown(name:string):bool
描述:當用戶開始按下由name確的鍵時返回真.
直到用戶釋放按鈕並再次按下時返回真.
鍵標示列表參考lnput Manager.在處理輸入時建議使用lnput.GetAxis和Input.GetBUtton
function Update();
if(input GetkeyDown("space"))
   print("space key was pressed");
  } 
}
static function GetKeyDown(Key:KeyCode):bool
描述:當用戶按下由Key KeyCode枚舉參數肯定的鍵時返回真.
function Update();
 if{lnput GetKeyDown(KeyCode.Space))
print("space key was pressed");
}
}
◆  static function GetKeyUp(name:sting):bool
描述:當用戶釋放由name肯定的鍵時返向真.
直到用戶按下按鈕並再次鬆開時返向真。
鍵標示列表參考lntpot Manager.在處理輸入時建議使用lnput.GetAxis和lnput.GetButton
由於它容許端用戶定義這些鍵.
function Update();{
if(lnput.GetKeyUp("space");
  } 
}
◆  static function GetKeyUP(Key:KeyCode):bool
描述:當用戶釋放由Key KeyCde 校舉參數肯定的鍵時返回真.
function Update(){
if(lnput,GetKeyUp(KeyCode.Space));
  print("space key was feleased");
  }
}
◆  statie function GetMouseButton(button:int):bool
描述:返回給定的鼠標按鈕是否被按住。
/button/值爲0表示左鍵,1表示右鍵,2表示中鍵.
◆  statie function GetMouseButtonDown(button:int)bool
描述:用戶按下給定的鼠標按鈕時返回真.
直到用戶釋放按鈕並再次按下它時才返回真.button值爲0表示中鍵左鍵,1表示右鍵,2表示中鍵.
◆  statie function GetMouseButtonUp(button:int)bool
描述:用戶釋放給定的鼠標按鈕時返回真.
直到用戶釋放按鈕並再次釋放它時才返回真.button值爲0表示中鍵左鍵,1表示右鍵,2表示中鍵.
◆  statie function ResetlnputAxes();Void
描述:重置全部輸入。在ReaetlnputAxes以後全部軸將返回0而且全部按鈕返回0.
這可用於當重生玩家,而且當你不想任何來自鍵盤的輸入還處於按下時。
lnpu.ReaetlnputAxes();
jointDrive
結構
關節如何沿着本地X軸移動 
變量
◆  var maximumForce:float
描述:用於向指定的方向推進物體的力的量。僅在Mode包含Velocity時使用。
◆  var mode:jointDriveMode
描述:驅動是否嘗試到這個位置和/或速度.
◆  var positionDamper:float
描述:位置彈簧的阻力強度,只用於mode包含位置的時候.
◆  var positionSpring:float
描述:朝着定義的方向推進的一個阻力強度。只用於mode包含位置的時候.
Jointlimits
結構
jointlimits被Hingejoint使用來限制關節角度.
參見:Hingejoint
變量
◆  var max:float
描述:關節的上限。當關節角度或位置的上限。
關節將使用力來約束它。
//設置最小連接角度爲20度
hingejoint.limits.max=40;
◆  var maxBounce:float
描述:當關節碰到關節的上限時關節的彈力。
//設置關節反彈時的上限
hingejoint.limits.maxBounce=1;
◆  var min:float
描述:關節的下限。當關節角度或位置的下限。
關節將使用力來約束它。
//設置最小連接角度爲20度
hingejoint.limits.min=20;
◆  var minBounce:float
描述:當關節碰到關節的下限時關節的彈力。
 //關節反彈時的下限
hingejoint.limits.minBounce=1;
jointMotor
結構
jointMotor用來旋轉一個關節
例如:Hingejoint能夠被告知以制定的速度和力旋轉。關節而後用給定的最大力試圖到達這個速度,參見:
變量
◆  var force:float
描述:動力將應用最大爲force的力以便取得targetvelocity
◆  var freeSpin:bool
描述:若是freeSpin被啓用動力將只加速而不會減速
◆  var targetvelocity:float
描述:動力將應用最大爲force的力以便取得targetvelocity
Jointspring
結構
變量
◆  var damper:float
描述:用語阻尼彈簧的阻尼力。
◆  var spring:float
描述:用於達到目標位置的彈力
◆  var targetposition:float
描述:關節試圖到達的目的位置
這裏一個hingehoint目標位置是目標角度
Keyframe
結構
一個關鍵幀它能夠插入動畫的曲線
變量
◆  var in tangent:float
描述:在曲線上從下一個點到這個點時描述切線。
參加:outtangent
◆  var outtangent:float
描述:在曲線上從這個點到下一個點時描述切線。
參見:intangent
◆  var time:float
描述:關鍵幀時間
在一個2D圖形中,你能夠把這當作x值
參見:value
◆  var value:float
描述:該動畫曲線在關鍵幀處的值
參見:time
構造函數
◆  static function keyframe(time:float,value:float):keyfranie
描述:建立一個關鍵幀
◆  static function keyframe(time:float,value:float,intangent:float,outangent:float):keyframe
描述:建立一個關鍵幀
layermask
結構
layermask容許你在檢視面板中顯示layermask彈出菜單
相似與camera,cullingmask。layermasks 能夠選擇性地過濾物體,例如當投射射線,
//使用層蒙板投射一個射線
//它能夠在檢視面板中修改
var mask larermask=
function Update(){
if(Physics.Raycast(transform.position, transform.forward, 100, mask.value))
{
Debug.Log(「Hit something」;
}
}
變量
◆  var valuc:vin
描述:轉化層蒙板的值爲一個整形值
//使用層蒙板投射一個射線
//它能夠在檢視面板中修改
var mask:lnyermask=-1
fonction update(){
if{physics.rayeast(transforn.position.transform.forwatd.100.mask.value))
{
Debug 
}
}
類方法
◆  static function LayerToName(layer :in):string
描述:給定一個層的數字。返回內置的或在tag Maneger中定義的層名稱。
◆  static function NameToLayer(layerName :string):int
描述:給定一個層的名字。返回內置的或在tag Maneger中定義的層索引。
◆  static implicit function LayerMask(intva1:int):layermask
描述:隱式轉化一個整數位已個層蒙板
Lightmapdata

光照貼圖數據
一個場景能夠有多個光照貼圖儲存在這裏,renderer組建能夠使用這些光照貼圖,這就使得它可以在多個物體上使用相同的材質,而每一個物體能夠使用不一樣的光照貼圖或同一個光照貼圖的不一樣部分。
參見,linghrmapsettings類 renderer lightmapindex 屬性
變量
◆  var lightmap:texture2D
描述:光照貼圖的紋理
參見:lightmspsettings 類 renderer lighunaplndex屬性
linghtmapsettings

儲存這個場景的光照圖
一個場景能夠有多個光照貼圖儲存在這裏,renderer組件能夠使用這些光照貼圖,這就使得它可以在多個物體上使用相同的材質,而每一個物體能夠使用不一樣的光照貼圖或同一個光照貼圖的不一樣部分。
參見:lightmapdata類renderer.lightmaplndex屬性
類變量
◆  sartic var lightmaps:lightmapdata[]
描述:光照貼圖數組
參見:lightmapdata類renderer.lightmaplndex屬性。
Masterserver
類,主服務器用來使服務器和客服端匹配。
你能夠創建以個遊戲主機或爲你的遊戲類型取回主機列表。這裏的這個函數用來與主服務器通訊,主服務器位於不一樣的服務器上,若是必要這個服務器能夠被定製,主服務器的概覽和技術描述:參見master server manual page
類變量
◆  static var dedicatedserver:bool
描述:申明這臺機器爲專用服務器。
若是做爲一個服務器運行,鏈接數定義了玩家的數量,當在主服務器上註冊的時候這個被報告,默認狀況下主服務器假定這個實例不是專用服務器,所以玩家數會增長1(佔用服務器上的一個\「chent」\)若是不但願,這個變量能夠設置爲假,而後知有鏈接數被報告爲玩家數。
function startserver{}{
nerwork lnitializeserver(32.25002):
masrerserver.dedicatedserver=true;
masterserver.registerhost("myuniquegametype","johndoes game","133tgame for all");
}
◆static var ip address:string
描述:主服務器的IP地址。
默認地這個是由unity技術運行的服務器。
function 
masterserver ip address="127.0.0.1";
master server.port=10002;
}
◆static var port:int
描述:主服務器的連接端口。
默認地這個是由unity技術雲頂的服務器,
masterserver.ipaddress="127.0.0.1";
master server.port=100021;
}
◆static var updaterate:int
描述:爲主服務器主機信息更新設置最小更新速率。
一般,主機更新只在主機信息被改變的時候發生(如鏈接的玩家)。更新率定義了主機更新之間的最小時間量,缺省值爲60秒(檢查更新)所以,若是以個主機更新唄發送而後一些域在10秒後改變,而後更新可能會在50秒以後發送(在下一次檢查到改變的時候)。若是這個被設置爲0,之後就沒有更新被髮送,只發送初始註冊信息。
function startserver()
{
network lnitialigeserver(32.25002);
//在初始化註冊以後沒有主機信息更新
Masterserver.updaterate=0;
masterserver,registerhost("myuniquegametype","johndoes game","133tgame forall");
}
類方法
◆static function clearhostlist():void
描述:清楚由masterserver.pollhostlist接收到的主機列表。
若是你想更新列表並想確保你不使用較舊的數據時,使用這個,
function awakc()
{
//確保類表是空的並請求一個新的列表
masterserver clearhostlist();
masterserver.requesthostlist("myuniquegametype");
}
function lpdate()
{
//若是任何主機被接收,顯示遊戲名稱,再次清理主機列表,}
if(masterserver.pollhostlist(),length!=0){
var hostdata;hostdata[]=masterserver.pollhostlist();
for(var i:int=0;i<hostdata.length;i++){
    debug,log("game name:"+hostdata[i]gamename);
}
masterserver,clearhostlist()
}
}
◆static function pollhostlist():hostdata[]
描述:使用master server.requeshostlist接收最新的主機列表
使用masterserver.clearhostlist清理當前主機列表。這樣你能夠肯定返回的列表時最新的。
  function awaket(){
//確保列表時空的並請求一個新的列表
masterserver .clearhostlist();
masterserver.requesrhostlist("larustest"):
;
function update()
;
//若是任何主機被接收,顯示遊戲名稱,再次清理主機列表;
if(masterserver.pollhostlist()length!=0){
varhostdata hostdata[]=masterserver.pollhostlist();
for(var i:int=0;i<hostdata.length;i++){
debug.log("game name"+hostdata[i].gamename);
}
masterserver.clearhostlist()
}
◆static function registerhost(gametypename:string,gamename:string.comment:string=""):void
描述:在主服務器註冊這個服務器。
若是主服務器地址信息還沒有改變,缺省的主服務器將被使用。
function ongui()
{
if(guilayout.button("stnrt server")){
//若是沒有公有IP地址,使用NAT穿透
network。usenat=!network.havepublicaddrss();
network.lnitializeserver(32.25002);
masterserver.registerhost("myuniquegametype","johndoes game","133tgame for all");
}
}
◆static function RequestHosList(gameTypeName:string):void
描述:從主服務器請求一個主機列表。
當它完成的時候,這個列表能夠經過MasterServer.PollHcstList使用。
function Awakc(){
//確保列表時空的並請求一個新的列表
MastcrScrver.RequestHostList();
MastcrScrver.RequestHostList("LarusTcst");
}
function Update()
}
//若是任何主機被接收,顯示遊戲名稱,再次清理主機列表。
if(MastcrScrvcr.PollHcstLisx().length!=0)}
var hostData:HostData[]=MasterSer.pollHostList();
for (var i:int=();i<hostData.length;i++){
Debug.Log("Game namc;"+hostData[i].gamceName);
}
MastcrScrvcr.ClearHostList();
}
}
static function UnregisterHost():void
描述:從主服務器註銷這個服務器。
若是服務器沒有被註銷或已經被註銷,不作任何事。
function OnGUt() {
if(GUILayout.Button("Disconnect")){
Nctwork,Disconnect();
NastcrServer.UnregisterHost();
}
}
MaterialPropertyBlock

應用的一塊材質值。
MateriaIPropcrtyBlock被Graphics.DrawMesh使用。當你想用相同的材質(但有稍微有些不一樣的屬性)繪製多個物體時,使用這個。例如,若是你想稍微改變每一個網絡的顏色時。
出於性能緣由,屬性塊只能包含有限數量的屬性值。兩個4x4矩陣,六個向量顏色或12個浮點數能夠存儲在這個塊中,存儲空間時共享,因此存儲一個矩陣留下兩倍少的空間來
 
存儲向量和浮點數。
Graphics。DrawMesh 拷貝傳遞的屬性塊,所以最有效的方法是使用它來建立一個快併爲全部DrawMesh 調用使用它。使用Clear來清除塊的值,AddFloat,AddVector,AddColot,AddMatrix來添加值。
參見:Graphics,DrawMesh,Matcrial。
函數
◆  function AddColor(name:string,value:Colo):void

◆  function AddColor(nameID:int,value:Colo):void

描述:添加一個顏色材質屬性。
出於性能緣由,屬性塊只能包含有限量的屬性值。兩個4x4矩陣,六個向量/顏色或12個浮點數能夠存儲在這個塊中。存儲空間時共享,使用存儲一個矩陣留下兩個倍少的空間來存儲向量和浮點數。當塊的存儲空間填滿後,額外的Add調用將被忽略。
使用nameID的函數變量體更快,若是你重複添加相同名稱的屬性,使用Shader.propertyToID來獲取不一樣的標示,並傳遞這個標示到AddColor。
◆  function AddFloat(name:string,value:float):void
◆  function AddFloat(nameID:int,value:float):void
描述:添加一個浮點材質屬性。
出於性能緣由,屬性塊只能包含有限數量的屬性值。兩個4x4矩形,六個向量/顏色或存12個浮點數能夠存儲在這個塊中,存儲空間是共享,因此存儲一個矩陣留下兩倍少的空間來存儲向量和浮點數。當塊的存儲空間填滿後,額外的Add調用將被忽略。
使用nameID的函數變體更快,若是你重複添加相同名稱的屬性,使用Shader.PropertyToID來獲取不一樣的標示,並傳遞這個標示到AddFloat。
◆  function AddMatrix(name:string,value:Matrix4x4):void
◆  function AddMatrix(nameID:int,value:Matrix4x4):void

描述:添加一個矩陣材質屬性。
處於性能緣由,屬性塊只能包含有限數量的屬性值。兩個4x4矩陣,六個向量/顏色或12個浮點數能夠存儲在這個塊中。存儲空間時共享,因此存儲一個矩陣留下兩倍少的空間來存儲向量和浮點數。當塊的存儲空間填滿後,額外的Add調用將被忽略。
使用nameID的函數變體更快,若是你重複添加相同名稱的屬性,使用Shader.PropertyToID來獲取不一樣的標示,並傳遞這個標示到AddMatrix。
◆  function AddVector(name:string,value:Vector4):void
◆  function AddVector(nameID:int,value:Vector4):void
描述:添加一個向量材質屬性。
出於性能緣由,屬性塊只能包含有限數量的屬性值。兩個4x4矩陣,六個向量/顏色或12個浮點數能夠存儲在這個塊中。存儲空間是共享,因此存儲一個矩陣留下兩倍少的空間來存儲向量和浮點數。當塊的存儲空間填滿後,額外的Add調用將被忽略。
使用nameID的函數變體更快,若是你重複添加相同名稱的屬性,使用
Shader.ProrertyToLD來獲取不一樣的標示,並傳遞這個標示到AddVector。
◆  function Clear():void
描述,清除材質屬性值。
GrawMesh 拷貝傳遞的屬性塊,所以最有效的方式是使用它來建立一個塊併爲
全部DrawMesh調用使用它。使用Clear來清除塊的值,ADDFloat,AddVector,AddColor,AddMatrix來添加值.
Mathf
結構
經常使用數學函數的集合。
類變量
 ◆  static var Deg2Rad:float
 描述:度到弧度的轉化常量(只讀)。
 這個等於(PI*2)/360.
//轉化30度爲弧度
var deg=30.0;
var od=dcg*Mathf.Deg2Rad;
參見:Rad2Deg常量。
◆  static varEpsilon:float
描述:一個小的浮點數值(只讀)
比較小於它的值沒有多人意見,由於浮點數是不精確的。
print(MathfEpsilon);
◆  static var Infinity:float
描述:表示正無窮(只讀).
◆  static var NegativeIntinity:float
描述:表示負無窮(只讀).
◆  staic var PI:float
描述:3.14159265358979...值(只讀).
◆  static var Rad2deg:float
描述:弧度到度的轉化常量(只讀).
這個等於360、(PI*2).
 轉化1弧度爲度
var rad=1.0;
var deg=rad*Mathf.Rad2Deg.
參見:Deg2Rad常量
類方法
◆  staric function Abs(f:float):float
描述:返回f的絕對值。
//打印10.5
print(Mathf.Abs(-10.5)).
◆  staric function Abs(value:int):int
描述:返回value的絕對值。
//打印10
print(Mathf.Abs(-10));
◆  staric function Acos(f:float):float
描述:返回f的反餘弦_一個弧度角它的餘弦是f.
print(Mathf.AcOS(0.5);
◆  staric function Approximately(a:float,b:float):bool
描述:比較兩個浮點數值看看它們是否近似。
因爲浮點數值不精確,不建議使用等操做來比較它們。例如,1.0==10.0/10.0也許不會返回真。
if(Mathf.Approximately(1.0,10.0/10.0))
print("same");
◆  static function Asin(f:float):float
描述:返回f的反正弦_一個弧度角它的正弦是f.
print(Matht.Asin(0.5));
◆  staric function Atan(f:float):float
描述:返回f的反切_一個弧度角它的正切是f.
print(Mathf.Atan(0.5));
◆  staic function Atan2(y:float,x:float):float
描述:返回一個弧度角它的Tan爲y/x。
返回的值是一個角度,該角表示x軸和開始於零並終結在(x,y)處的向量之間的角度。
//一般使用transform.lookAt.
//但這能夠給你更多的對角度的控制
vartatget:Transform;
function Update()
{
var relativ=transfom.lnverseTeansformPoint(target.position);
var angle=Mathf.Atan2(reative,reative.z)*Mathf.Rad2Deg;
transform.Rotate(0,angle,0);
}
◆  static function Ceil(f:fioat):float
描述:返回大於等於f的最小整數.
◆  static function CeilTolnt(f:fioat):int
描述:返回大於等於f的最小整數.
◆  static function Clamp(value:float,min:float,max:float):float
描述:在一個最小的浮點數和最大的浮點數之間截剪。
//隨着時間設置變換位置
//可是不會小於1或大於3
function Update()
{
transtorm,position.x=Mathf.Clamp(lime.time.1.0,3.0);
}
◆  staric function Clamp(value:int,min:int,max:int):int
描述:在min和max之間裁剪值並返回裁剪後的值。
//在1到3之間裁剪10,
//打印3到控制檯
prnt(Mathf.Clamp(10,1,3))
◆  static function Clamp01(value;float):float
描述:在0和1之間裁剪值並返回裁剪後的值。
//隨着時間設置變換位置
//可是不會小於0或大於1
function Update(){
transform.position.x=Mathf.Clamp01(Time.time);
}
◆  staic function ClosestPowerOflwo(value:int):int
描述:返回最直接的2的冪次值。
例如。7返回8或者19返回16
◆  staric function Cos(f:float):float
描述:返回弧度f的餘弦值.
print(Mathf.Cos(3));
◆  staic function EXP(power:float):float
描述:返回e的特定次冪。
print(Mathf.Cos(6));
◆  static function Floor(f:float):float
描述:返回小於f的最大整數.
◆  static function FloorTolnt(f:float):int
描述:返回小於f的最大整數.
◆  static function lnverseLerp(from:float,to:float,value:float):float
描述:在兩個值之間計算Lerp參數.
varwalkSpeed=5.0;
varunSpeed=10.0;
var speed=8.0;
//參數如今是3/5
vvar parameter=Mathf.laverseLerp(walkSpeed,runSpeed,speed);
◆  staic tunchon Lerp(a:float,b:float,t:float):float
描述:基本t在a到b之間插值。t本裁剪到0到1之間。
當t爲0時返回from . 當t爲1時返回to .當t=0.5時返回a和b的平均。
var minimum = 10.0;
var maximum = 20.0;
// 在一秒內從minimum漸變到maximum
Function Update()
{
transform.position.x = Mathf.lerp(minimum,maximum,Time.time);
}
◆ static function LerpAngle(a:float,b:float,t:float):float
描述:與Lerp相同,可是當它們可繞360度時確保插值正確,
變量a和b被認爲是度。
//以2爲底6的對數
//打印2.584963
print(Mathf.Log(6,2));
◆ static function Log(f:float):float
描述:返回一個數以天然(以e爲底)對數。
//10的天然對數
//打印4.60517
print(Mathf.Log(10));
◆ static function Log10(f:float):float
描述:返回一個數以10爲底的對數。
//以10爲底100的對數
//打印2
print(Mathf.Log10(100));
◆ static function Max(a:float,b:float):float
描述:返回兩個值中較大的一個。
//打印2
print(Mathf.Max(1,2));
◆ static function Max(a:int,b:int):int
描述:返回兩個值中較大的一個。
//打印2
print(Mathf.Max(1,2));
◆ static function Min(a:float,b:float):float
描述:返回兩個值中較小的一個。
//打印1
print(Mathf.Min(1,2));
◆ static function Min(a:int,b:int):int
描述:返回兩個值中較小的一個。
//打印1
print(Mathf.Min(1,2));
◆ static function PingPong(t:float,length:float):float 
描述:來回改變t值,t值不會超過length,也不會小於0,只會在length和0之間循環。
function Update()
{
//讓x位置在0到3之間循環
transform.position.x = Mahtf.PingPong(Time.time,3);
}
◆ static function Pow(f:float,p:float):float
描述:返回f的p次方。
print(Mahtf.Pow(6,1.8));
◆ static function Repeat(t:float,length:float):float
描述:使t值循環,不大於length不小於0。它與操做模板相似,但能夠使用浮點數。
function Update()
{
//讓x位置在0到3之間循環
transform.position.x = Mahtf.Repeat(Time.time,3);
}
◆ static function Sign(f:float):float
描述:返回f的符號。
當f爲正或爲0則返回1,爲負返回-1。
◆ static function Sin(f:float):float
描述:返回以f爲弧度的sin值。
print(Mahtf.Sin(3));
◆ static function SmoothDamp(current:float,target:float,ref currentVelocity:float,smoothTime:float,maxSpeed:float = Mahtf.Infinity,deltaTime:float =Time.deltaTime):float
描述:逐步的向指望值變化。
這個值就像被一個不會崩潰的彈簧防震器所影響。這個函數能夠用來平滑任何類型的值,位置,顏色,標量。最經常使用於讓一個跟隨攝像機的速度變的平滑。
current就是當前位置。target是咱們但願達到的位置。currentVelocity是當前速度,這個值在你訪問這個函數的時候會被隨時修改。smoothTime是要到達目標位置的近似時間,實際到達目標時要快一些。maxSpeed可讓你隨意的設定最大速度。deltaTime是上次訪問該函
數到如今的時間。缺省爲Time.deltaTime。
//平滑到目標高度
var target : Transform;
var smoothTime = 0.3;
private var yVelocity = 0.0;
function Update ()
{
var newPosition = Mathf.SmoothDamp(transform.position.y, target.position.y,yVelocity, smoothTime);
transform.position.y = newPosition;
}
◆ Static function SmoothDampAngle(current: float, target: float, ref currentVelocity): float, smoothTime: float, maxSpeed: float=Mathf.Infinity, deltaTime: float=Time.deltaTime): float
描述: 基於Game Programming Gems4章節1.10
隨着時間逐漸的改變一個角度爲目的的角度。這個值被像彈簧阻尼同樣的函數平滑。這個函數能夠用來平滑任何一種值,位置,顏色,標量。最多見的是平滑一個跟隨攝像機。
current是當前位置。target是咱們試圖到達的位置。currentVelocity是當前速度,這個值在每次你調用這個函數的時候都被修改。smoothTime是到達目的地近似時間,實際的時間將更短。maxSpeed爲容許的最大速度。deltaTime爲從上次調用該函數到如今的時間。缺省爲Time.deltaTime。
//一個簡單的平滑跟隨攝像機。
//跟隨目標的朝向
var target : Transform;
var smooth = 0.3;
var distance = 5.0;
private var yVelocity = 0.0;
function Update () 
{
//從目前的y角度變換到目標y角度
var yAngle = Mathf.SmoothDampAngle(transform.eulerAngles.y,target.eulerAngles.y, yVelocity, smooth);
//target的位置
var position = target.position;
//而後,新角度以後的距離便宜
position += Quaternion.Euler(0, angle, 0) * Vector3 (0, 0, -distance);
//應用位置
transform.position = position;
//看向目標
transform.LookAt(target);
}
◆ static function SmoothStep (from : float, to : float, t : float) : float
描述:在min與max中插值並在限定處漸入漸出
◆ static function Sqrt (f : float) : float 
描述:返回f的平方根  
print(Mathf.Sqrt(10));
◆ static function Tan (f : float) : float 
描述:返回弧度f的正切值 
print(Mathf.Tan(0.5));
Matrix4x4
一個標準的4x4變換矩陣。
一個變換矩陣能夠執行任意的線形3D變換(例如,評議,旋轉,縮放,切邊等等)而且偷師變化使用齊次座標。腳本中不多使用矩陣:最經常使用Vector3,Quaternion,並且Transform類的功能更簡單。單純的矩陣用於特殊狀況,如設置非標準相機投影。
 參考任何圖形學教程獲取關於變換矩陣的深刻揭示。
 在Unity中,Matrix4x4被Transform,Camera,Material和GL函數使用。
變量
◆ var inverse : Matrix4x4
描述:返回該矩陣的逆(只讀)
若是用原始矩陣誠意逆矩陣結果爲identity矩陣。
若是一些矩陣以一個特定的方式變換響亮,逆矩陣能夠將他們變換回去。例如worldToLoclaMatrix和localToWorldMatrix是互逆的。
◆ var this[row : int,column : int]:float
描述:訪問[row,column]處的元素。
row和column必須在0到3之間,矩陣是一個4x4的數組,你能夠經過使用這個函數訪問單個的元素。
注意標準數學符號-row是第一個索引。
◆ var this[index : int]:float
描述:按順序索引存取元素(包括在0..15)
矩陣是一個4x4的數組,因此它的總數爲16,。你能夠使用一維索引來存取單個元素。index是row+column*4
◆ var transpose : Matrix4x4
描述:返回這個矩陣的轉置(只讀)。
轉置矩陣是將原矩陣行列交換獲得的(沿主對角線翻轉)
函數
◆ function GetColumn(i : int):Vector4
描述:獲取矩陣的一列。
第i列做爲Vector4返回,i必須在0到3之間。
參見:SetColumn
◆ function GetRow(i : int):Vector4
描述:返回矩陣的一行。
第i行做爲Vector4返回,i必須在0到3之間。
參見:SetRow
◆ function MultiplyPoint (v : Vector3):Vector3
描述:經過這個矩陣變換位置。
返回由任意矩陣變化獲得的位置v。若是這個矩陣是一個正規的3D變換矩陣,使用MultiplyPoint3x4比它更快。MultiplyPoint是較慢的,可是能處理投影變換。
參見:MultiplyPoint,MultiplyVector。
◆ function MultiplyPoint3x4(v : Vector3):Vector3
描述:經過這個矩陣變換位置(快)。
返回由當前變換矩陣變換獲得的位置v。這個函數是MultiplyPoint的快速版,可是它只能處理常規的3D變化。Multiplypoint是較慢的,可是能處理投影變換。
參見:MultiplyPoint,MultiplyVector。
◆ function MultiplyVector(v : Vector3):Vector3
描述:經過這個矩陣變換方向。
這個函數相似於MultiplyPoint,但它是變換方向而不是位置。變換方向時,只考慮矩陣的旋轉部分。
參見:MultiplyPoint,MultiplyPoint3x4。
◆ function SectColumn(i : int,v:vector4):void
描述:設置矩陣的一列。
使用這個來構建一個變換矩陣,這個矩陣使用right,up和forward向量。
//從變換構建一個矩陣
var matrix = Matrix4x4();
//從變換構建一個矩陣
function Start () 
{
matrix.SetColumn (0, transform.right);
matrix.SetColumn (1, transform.up);
matrix.SetColumn (2, transform.forward);
var p = transform.position;
matrix.SetColumn (3, Vector4 (p.x, p.y, p.z, 1));
}
//設置第i列爲v。i必須在0到3之間。
參見:GetColumn
◆ function SetRow(i : int,v:Vector4):void
描述:設置矩陣的一行。
設置第i行爲v。i必須在0到3之間。
參見:GetRow
◆ function SetTRS(pos : Vector3, q:Quaternon, s:Vector3):void
描述:設置這個矩陣爲一個變換,旋轉和縮放矩陣。
當前的矩陣本修改一遍具備位置pos,旋轉q和縮放s。
◆ function ToString():string
描述:返回已格式化的該矩陣的字符串。
類變量
◆ static var identity : Matrix4x4
描述:返回單位矩陣(只讀)。
這個矩陣在使用的時候不會影響任何東西。它的主對角線上全是1,其餘位置全是0。
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
參見:zero變量。

◆&n, bsp;static var zero : Matrix4x4
描述:返回全部元素都爲零的矩陣(只讀)。
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
參見:identity變量。
類方法
◆ static operator * (lhs : Matrix4x4,rhs : Matrix4x4) : Matrix4x4
描述:兩個矩陣相乘。
返回lhs * rhs。
◆ static operator * (lhs : Matrix4x4,v:Vector4):Vector4
描述:由矩陣來變換一個Vector4。
◆ static function Ortho(left : float,right : float,bottom : float,top : float,zNear : float,zFar : float):Matirx4x4
描述:建立一個正交投影矩陣。
返回的矩陣是視口ledt到right,bottom到top的區域,zNear和zFar深度裁剪面板。
若是你想使用正交來作像素修正渲染,最好使用GL.LoadPixelMatrix,由於它會爲Direct3D渲染器運用適當的half-texel便宜。
參見:GL.LoadPixelMatrix,GL.LoadProjectionMatrix,GUI.matrix
◆ static function Perspective(fov : float,aspect : float,zNear : float,zFar : float):Matrix4x4
描述:建立一個透視投影矩陣。
fov爲透視矩陣的垂直視野,aspect爲寬高比,zNear和zFar設置爲深度裁剪面板。
參見:GL.LoadPixelMatrix,GL.LoadProjectionMatrix,GUI.matrix
◆ static function Scale(v:Vector3):Matrix4x4
 描述:穿件一個縮放矩陣。
 返回沿着座標軸被響亮v縮放的矩陣,該矩陣看起來像這樣:
v x 0 0 0
0 v y 0 0
0 0 v z 0
0 0 0 1
◆ static function TRS(pos:Vector3,q:Quaternion,s:Vector3):Matrix4x4
 描述:建立一個變換,旋轉和縮放矩陣。
返回的矩陣具備位置pos,旋轉q和縮放s。
NetworkMessageInfo
這個數據結構包含一個剛收到的來自網絡的消息。
它揭示了它從哪來,發送的時間和由什麼網絡視圖發送的。
變量
◆ var networkView : NetworkView
描述:發送這個消息的NetworkView
◆ var sender : NetworkPlayer
 描述:發送這個網絡信息(擁有者)的玩家。
◆ var TimeStamp : double
描述:當消息被髮送時的時間戳,以秒計。
時間郵戳能夠用於實現插值或者連續劉寶的預測,時間戳被做爲雙精度數傳遞,以免遊戲運行長一段時間後溢出。內置的時間戳被設置爲32位整數,以毫秒爲精度以便節省帶寬。時間戳現對於Network.time自動調整。所以Network.time-messageInfo.timeStamp是抱在傳輸時花費的時間。
var something : float;
var transitTime: double;
function OnSerializeNetworkView (stream : BitStream, info : NetworkMessageInfo) {
var horizontalInput : float = 0.0;
if (stream.isWriting) {
// 發送
horizontalInput = transform.position.x;stream.Serialize (horizontalInput);
} else {
// 接收
transitTime = Network.time - info.timestamp;
stream.Serialize (horizontalInput);
something = horizontalInput;
}
}
function OnGUI() {
GUILayout.Label("Last transmission time: "+ transitTime);
}
NetworkPlayer
 NetworkPlayer是一個數據結構,經過它你能夠經過網絡定位其餘玩家。
例如,你能夠直接發送一個消息給其餘玩家。
變量
◆ var externalIP : string
描述:返回網絡接口的外部IP地址。這個只能在創建了外接鏈接之後才能輸入。
◆ var externalPort : int
描述:返回網絡接口的外部接口。這個只能在創建了外接鏈接之後才能輸入。
◆ var ipAddress : string
描述:該玩家的IP地址。
◆ var port : int
描述:該玩家的端口號。
構造函數
◆ static function NetworkPlayer(ip : string , port : int) : NetworkPlayer
描述:
函數
◆ function ToString() : string
描述:返回該網絡玩家的指數。
類方法
◆ static operator != (lhs : NetworkPlayer,rhs : NetworkPlayer):bool
描述:若是兩個NetworkPlayers不是同一個玩家返回真
◆ static operator == (lhs : NetworkPlayer,rhs : NetworkPlayer):bool
描述:若是兩個NetworkPlayers是同一個玩家返回真
NetworkPlayer
 NetworkPlayer是一個數據結構,經過它你能夠經過網絡定位其餘玩家。
例如,你能夠直接發送一個消息給其餘玩家。
變量
◆ var externalIP : string
描述:返回網絡接口的外部IP地址。這個只能在創建了外接鏈接之後才能輸入。
◆ var externalPort : int
描述:返回網絡接口的外部接口。這個只能在創建了外接鏈接之後才能輸入。
◆ var ipAddress : string
描述:該玩家的IP地址。
◆ var port : int
描述:該玩家的端口號。
構造函數
◆ static function NetworkPlayer(ip : string , port : int) : NetworkPlayer
描述:
函數
◆ function ToString() : string
描述:返回該網絡玩家的指數。
類方法
◆ static operator != (lhs : NetworkPlayer,rhs : NetworkPlayer):bool
描述:若是兩個NetworkPlayers不是同一個玩家返回真
◆ static operator == (lhs : NetworkPlayer,rhs : NetworkPlayer):bool
描述:若是兩個NetworkPlayers是同一個玩家返回真
NetworkViewID
 在一個多玩家遊戲中,NetworkViewID是用於網絡視實例的惟一標識符。
這個是重要的,由於這個在全部客戶端是惟一的數字,而且客戶端本身能夠產生這些數字,不然網絡同步將被斷開。
變量
◆ var isMine : bool
描述:若是是被我實例化的,返回真。
◆ var owner : NetworkPlayer
描述:擁有NetworkView的NetworkPlayer。能夠是服務器。
函數
◆ function ToString() : string
描述:返回NetworkViewID中的格式化字符串細節。
類方法
◆ static operator != (lhs : NetworkViewID,rhs : NetworkViewID):bool
描述:若是兩個NetworkViewIDs不是同一個玩家返回真
◆ static operator == (lhs : NetworkViewID,rhs : NetworkViewID):bool
描述:若是兩個NetworkViewIDs是同一個玩家返回真
Network

網絡類是網絡實現的核心並提供核心函數。
這個類定義了網絡接口和全部網絡參數。你能夠使用它來設置一個服務器或連接到一個服務器並有一些列輔助函數來幫助你完成這些功能。獲取更多關於編輯器中的信息請參考Network Maner component reference。
消息傳遞
◆ function OnConnectedToServer() : void
描述:當成功連接到服務器上時,在客戶端調用這個函數。
function OnConnectedToServer() {
Debug.Log("Connected to server");
}//發送本地玩家名稱到服務器
◆ function OnDisconnectedFromServer(mode : NetworkDisconnection):void
描述:客戶端從服務器上斷開時在客戶端上調用,但當鏈接被斷開時在服務器上調用。
當連接丟失或被服務器斷開時,在客戶端調用這個函數。NetworkDisconnection枚舉將標示鏈接是否斷開或是否鏈接丟失。鏈接成功斷開時再服務器上調用這個函數(在Network.Disconnect以後)。
function OnDisconnectedFromServer(info : NetworkDisconnection) {
if (Network.isServer) {
Debug.Log("Local server connection disconnected");
}
else {
if (info == NetworkDisconnection.LostConnection)
Debug.Log("Lost connection to the server");
else
Debug.Log("Successfully diconnected from the server");
}
}
◆ function OnFailedToConnect(error : NetworkConnectionError):void
描述:當鏈接由於某些緣由失敗時,在客戶端上調用該函數。
失敗的緣由做爲NetworkConnectionError枚舉傳入。
function OnFailedToConnect(error: NetworkConnectionError){
Debug.Log("Could not connect to server: "+ error);
}
◆ function OnFailedToConnectToMasterServer(error : NetworkConnectionError):void
描述:當鏈接到主服務器出現問題時,在客戶端或服務器端調用該函數。
錯誤緣由做爲NetworkConnectionError枚舉傳入。
function OnFailedToConnectToMasterServer(info: NetworkConnectionError){
Debug.Log("Could not connect to master server: "+ info);
}
◆ function OnNetworkInstantiate(info : NetworkMessageInfo):void
描述:當一個物體使用NetworkInstantiate進行網絡初始化時在該物體上調用這個函數。這個對於禁用或啓用一個已經初始化的物體組件來講是很是有用的,它們的行爲取決於他們是本地仍是遠端。注意:在NetworkMessageInfo裏的networkView屬性不能在OnNetworkInstantiate裏使用。
function OnNetworkInstantiate (info : NetworkMessageInfo) {
Debug.Log("New object instantiated by " + info.sender);
}
 描述:當一個新的玩家成功鏈接時再服務器上調用這個函數。
private var playerCount: int = 0;
function OnPlayerConnected(player: NetworkPlayer) {
Debug.Log("Player " + playerCount++ + " connected from " + player.ipAddress + ":" + player.port);
}// 用玩家信息構建一個數據結構
◆ function OnPlayerDisconnected(player : NetworkPlayer) : void
描述:當玩家從服務器斷開時再服務器上調用這個函數。
function OnPlayerDisconnected(player: NetworkPlayer) {
Debug.Log("Clean up after player " + player);
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);
}
◆ function OnSerializeNetworkView(stream : BitStream, info : NetworkMessageInfo) : void
描述:用來在一個被網絡視架空的抄本中自定義變量同步。
它自動決定被序列化的變量是否應該發送或接收。這個依賴於誰擁有這個物體,例如,擁有者發送,而其餘全部的接收。
//該物體的生命值信息
var currentHealth : int;
function OnSerializeNetworkView(stream : BitStream, info : NetworkMessageInfo){
var health : int = 0;
if (stream.isWriting){
health = currentHealth;
stream.Serialize(health);
}
else{
stream.Serialize(health);
currentHealth = health;

}
◆ function OnServerInitialized() : void
描述:當Network . InitializeServer 被調用並完成時,在服務器上調用這個函數。
function OnServerInitialized() {
Debug.Log("Server initialized and ready");
}
類變量
◆ static var connections : NetworkPlayer[]
描述:全部鏈接上的玩家。在客戶端中,該變量只包含服務器。
function OnGUI() {
if (GUILayout.Button ("Disconnect first player")) {
if (Network.connections.length > 0) {
Debug.Log("Disconnecting: "+Network.connections[0].ipAddress+":"+Network.connections[0].port);
Network.CloseConnection(Network.connections[0], true);


}
◆ static var ConnectionTesterIP:string
描述:用在Network.TestConnection中的鏈接測試的IP地址。
function ResetIP() {
Network.connectionTesterIP = "127.0.0.1";
Network.connectionTesterPort = 10000;
}
◆ static var connectionTesterPort:int
描述:用在Network.TestConnection中的鏈接測試的IP端口。
function ResetIP() {
Network.connectionTesterIP = "127.0.0.1";
Network.connectionTesterPort = 10000;
}
◆ static var incomingPassword:string
描述:爲這個服務器設置密碼(對於進入的鏈接)。這個必須與客戶端上Network.Connect中的相同,傳遞」」表示沒有密碼(默認)。
function ConnectToServer () {
Network.Connect("127.0.0.1", 25000, "HolyMoly");
}
function LaunchServer () {
Network.incomingPassword = "HolyMoly";
Network.InitializeServer(32, 25000);
}
◆ static var isClinet:bool
描述:若是你的端類型是客戶端則返回真。
function OnGUI() {
if (Network.isServer)
GUILayout.Label("Running as a server");
else if (Network.isClient)
GUILayout.Label("Running as a client");
}
◆ static var isMessageQueueRunning:bool
描述:啓用或禁用網絡消息處理。若是這個被禁用,沒有RPC調用或網絡視同步會替代。Network level loading有如何使用這個函數的例子。
◆ static var isServer:bool
描述若是你的端類型是服務器端則返回真。
function OnGUI() {
if (Network.isServer)
GUILayout.Label("Running as a server");
else if (Network.isClient)
GUILayout.Label("Running as a client");
}
◆ static var maxConnections:int
描述:設置容許的鏈接/玩家的最大數量。設置0,覺得這沒有心的鏈接能夠被創建。但現有保持鏈接。設置爲-1表示最大鏈接數被設置爲與當前開發的鏈接數相同。在這種狀況下,若是一個玩家掉線,那麼這個空位仍是爲他開放的。這個不能設置爲高於Network.InitializeServer設置的鏈接數。
function StartGameNow() {
// 不容許更多玩家
Network.maxConnections = -1;
}
◆ static var minimumAllocatableViewIDs:int
描述:在ViewIDc池中獲取或設置服務器分配給客戶端ViewID的最小數。當玩家使用新的數字鏈接並被刷新時,ViewID池被分配給每一個玩家。服務器和客戶端應該同步這個值。在服務器上設置的更高,將會發送比它們真正須要的更多視ID數到客戶端。在客戶端上設置更高,意味着它們須要更多視ID。例如當池須要的ID數,服務器中並不包含足夠的數量,則會在一行中使用兩次。默認值爲100。若是一個遊戲經過網絡實例化大量新的物體,例如每秒超過100個的網絡實例,那麼這個值須要被設置的更高。
function Awake () {
// 使用更大的視ID池來分配
Network.minimumAllocatableViewIDs = 500;
}
◆ static var natFacilitatorIP:string 
描述:NAT穿透輔助的IP地址。一般這與服務器相同。
function ResetIP() {
Network.natFacilitatorIP = "127.0.0.1";
Network.natFacilitatorPort = 10001;
}
static var natFacilitatorPort:int 
描述:NAT穿透輔助的端口。
function ResetIP() {
Network.natFacilitatorIP = "127.0.0.1";
Network.natFacilitatorPort = 10001;
}
◆ static var peerType:NetworkPeerType
描述:端類型狀態。例如,斷開鏈接,鏈接,服務器或客戶端。
function OnGUI() {
if (Network.peerType == NetworkPeerType.Disconnected)
GUILayout.Label("Not Connected");
else if (Network.peerType == NetworkPeerType.Connecting)
GUILayout.Label("Connecting");
else
GUILayout.Label("Network started");
}
◆ static var player:NetworkPlayer 
描述:獲取本地NetworkPlayer實例。
◆ static var ProxyIP:string
描述:代理服務器的IP地址。
 
function Awake(){
Network.proxyIP = "1.1.1.1";
Network.proxyPort = 1111;
}
◆ static var proxyPassword:string
描述:設置代理服務器密碼。能夠製做你本身的代理服務器。在這種狀況下,你也許想用密碼保護它。而後Unity玩家必須正確的設置這個值。
function Awake(){
//設置自定義代理服務器地址和密碼
Network.proxyIP = "1.1.1.1";
Network.proxyPort = 1111;
Network.proxyPassword = "secret";
}
◆ static var proxyPort:int  描述:代理服務器的端口。
function Awake(){
Network.proxyIP = "1.1.1.1";
Network.proxyPort = 1111;
}
◆ static var sendRate:float  描述:用於全部網絡視的默認網絡更新發送速率。
function Awake () {
//增長默認的發送速率
Network.sendRate = 25;
}
◆ static var sendRate:float
描述:獲取當前網絡時間(秒)。這個能夠用來比較NetworkMessageInfo中返回的時間。這個實例腳本須要附加到一個帶有網絡視的物體上,並使網絡視監視這個腳本。它管理時間,發送這個物體的同步X位置消息。
var something : float;
var transitTime: double;
function OnSerializeNetworkView (stream : BitStream, info : NetworkMessageInfo) {
var horizontalInput : float = 0.0;
if (stream.isWriting) {//發送
horizontalInput = transform.position.x;
stream.Serialize (horizontalInput);
}
 else {//接收
transitTime = Network.time - info.timestamp;
stream.Serialize (horizontalInput);
something = horizontalInput;
}
}
function OnGUI() {
GUILayout.Label("Last transmission time: "+ transitTime);
}
◆ static var useNat:bool
 
描述:當鏈接(客戶端)或接收鏈接(服務器)時,咱們應該使用NAT穿透嗎?若是這個在在服務器上設置,只有具備NAT穿透的客戶端才能鏈接到它。可是若是服務器有一個NAT地址,這個須要打開以便鏈接。有些路由器不知道如何作NAT穿透。所以對於這些玩家惟一的方法就是修改路由器以便打開合適的轉發端口(遊戲端口)。參考Network.TestConnection和Network.TestConnectionNAT獲取如何自動檢測端用戶的方法。
function OnGUI() {
if (GUILayout.Button ("Start Server"))
{
//若是沒有共有IP地址,使用NAT穿透
Network.useNat = !Network.HavePublicAddress();
Network.InitializeServer(32, 25002);
MasterServer.RegisterHost("MyUniqueGameType", "JohnDoes game", "l33t game for all");
}
}
◆ static var useProxy:bool
描述:標示是否須要代理服務器支持,在這種狀況下流量經過代理服務器被延遲。代理伺服器是一種與服務器和客戶端鏈接性問題的解決方案。當機器有一個非NAT穿透能力的路由器,其鏈接的選擇很是優先。一個遊戲不能沒有外部鏈接(只有客戶端在本地網絡中)。經過使用代理服務器,該機器能夠具備徹底的鏈接性,可是額外的代價是全部的流量都會被延遲。一個沒有NAT穿透能力的客戶端經過代理可以鏈接到任何服務器,只要代理服務器正確的設置。官方並不提供代理服務器爲公衆使用。因此你須要本身創建代理服務器。固然,用共有IP地址設置代理服務器並保證有大量可用帶寬是明智的。看成爲客戶端運行時,只要啓用Network .useProxy就能夠。想往常昂使用Network . Connect鏈接到服務器。全部經過代理服務器的流量將被延遲。服務器的外部IP和內部IP還像往常同樣工做。這樣若是它們位於同一網絡中,客戶端能夠直接鏈接到它而不須要代理。做爲一個服務器運行時,OnServerInitialized(NetworkPlayer)返回一個NetworkPlayer結果代表遊戲服務器中轉的IP端口,代理服務器分配給遊戲服務器的端口是什麼。這個是其餘客戶端能夠鏈接到的IP端口。當鏈接到服務器時,客戶端不會將這個服務器與其餘服務器區別對待。嚴格的說,它們不須要知道這個服務器獲得代理服務器的幫助。當使用主服務器時,你不能只依賴於它在使用代理服務器時爲服務器註冊的IP端口。服務器使用的代理服務器的IP地址和端口,能夠防止在數據域的註釋中來發送給主服務器。從主服務器接收主機信息的客戶端能夠去除註釋域並查看它是否可以爲那個主機使用另外一個可選的IP端口。
重要:你不該該同時爲鏈接到它的服務器和客戶端啓用代理支持,會發生意想不到的事情。
var imaserver: boolean;
var serverIP: String;
var serverPort: int;
var serverUsesNAT: boolean;
function Awake(){
//設置自定義代理服務器地址
Network.proxyIP = "1.1.1.1";
Network.proxyPort = 1111;
if (imaserver)
StartServerWithProxy();
else
ConnectToServerWithProxy();
}
function StartServerWithProxy(){
Network.useProxy = true;
Network.InitializeServer(2,25000);
}
function OnServerInitialized(player: NetworkPlayer){
if (Network.useProxy)
Debug.Log ("Successfully started server with proxy support. We are connectable through "+ player.ipAddress + ":" + player.port);
}
function OnFailedToConnect(msg: NetworkConnectionError){
if (Network.useProxy && imaserver){
Debug.LogError("Failed to connect to proxy server: " + msg);
}
}
function ConnectToServerWithProxy(){
Network.useProxy = true;
Network.useNat = serverUsesNAT;
Network.Connect(serverIP, serverPort);
}
function OnConnectedToServer(){
Debug.Log("Connected successfully to server");
}
類方法
◆ static function AllocateViewID():NetworkViewID
描述:查詢下一個可用的網絡視ID數並分配它(保留)。這個數字又能夠被賦予一個實例化物體的網絡視。注意,爲了使其可正常工做,必須有一個NetworkView附加到這個物體,這個物體必須有這個腳本並必須使這個腳本做爲它的觀察屬性。必須有一個Cube預設,帶有一個NetworkView它監視某些東西(例如該Cube的Transform)。腳本中的cubePrefab變量必須設置爲立方體預設。使用智能的AllocateViewID是最簡單的方法。若是有超過一個NetworkView附加在初始化的Cube上着將變得更復雜。
var cubePrefab : Transform;
function OnGUI (){
if (GUILayout.Button("SpawnBox")){
var viewID = Network.AllocateViewID();
networkView.RPC("SpawnBox", RPCMode.AllBuffered, viewID, transform.position); 
}
}
@RPC
function SpawnBox (viewID : NetworkViewID, location : Vector3) {
//實例化本地的prefab
var clone : Transform;
clone = Instantiate(cubePrefab, location, Quaternion.identity);
var nView : NetworkView;
nView = clone.GetComponent(NetworkView);
nView.viewID = viewID;

◆ static function CloseConnection (target : NetworkPlayer, sendDisconnectionNotification : bool) : void  
描述:關閉與其餘系統的鏈接。/target/定義鏈接到的那個系統將被關閉,若是咱們是客戶端,鏈接到服務器的鏈接將會關閉。若是咱們是服務器目標玩家,將會被踢出。sednDisconnectionNotification啓用或禁用通知將被髮送到另外一端。若是禁用鏈接被丟棄,若是沒有斷開鏈接通知被髮送到遠端,那麼以後的鏈接將被丟棄。
function OnGUI() {
if (GUILayout.Button ("Disconnect from server")) {
if (Network.connections.length == 1) {
Debug.Log("Disconnecting: "+Network.connections[0].ipAddress+":"+Network.connections[0].port);
Network.CloseConnection(Network.connections[0], true);

else if (Network.connections.length == 0)
Debug.Log("No one is connected");
else if (Network.connections.length > 1)
Debug.Log("Too many connections. Are we running a server?");
}
if (GUILayout.Button ("Disconnect first player")) {
if (Network.connections.length > 0) {
Debug.Log("Disconnecting: "+Network.connections[0].ipAddress+":"+Network.connections[0].port);
Network.CloseConnection(Network.connections[0], true);


}
◆ static function Connect (IP:string, remotePort:int, password:string = ""):NetworkConnectionError
描述:鏈接到特定的主機(IP或域名)和服務器端口。參數是主機的IP地址,點IP地址或一個域名。remotePort,指定鏈接到遠端機器的端口。password,它是一個可選的用於服務器的密碼。這個密碼必須設置爲與服務器的Network.incomingPassword相同。
function ConnectToServer () {
Network.Connect("127.0.0.1", 25000);
}
◆ static function Connect(IPs:string[], remotePort:int, password:string = ""):NetworkConnectionError
描述:該函數與Network.Connect相似,可是能夠接受一個IP地址數組。當從一個主服務器的主機信息返回多個內部IP地址時,IP數據結構能夠被直接傳入這個函數。它將實際的鏈接到相應ping的第一個IP(可鏈接)。
◆ static function Destroy (viewID : NetworkViewID) : void
描述:跨網絡銷燬與該視ID相關的物體。本地的於遠端的都會被銷燬。
var timer : float;
function Awake () {
timer = Time.time;
}
//經過網絡銷燬擁有該腳本的物體
//其必須具有NetworkView屬性
function Update() {
if (Time.time - timer > 
2)
{
Network.Destroy(GetComponent(NetworkView).viewID);
}

function Update() {
if (Time.time - timer > 2){
Network.Destroy(GetComponent(NetworkView).viewID);
}
}
◆ static function Destroy (gameObject : GameObject) : void
描述:跨網絡銷燬該物體。本地的與遠端的都會被銷燬。
var timer : float;
function Awake () {
timer = Time.time;
}//經過網絡銷燬擁有該腳本的物體
function Update() {
if (Time.time - timer > 2){
Network.Destroy(gameObject);
}
}
◆ static function DestroyPlayerObjects (playerID : NetworkPlayer) : void
描述:基於視ID銷燬全部屬於這個玩家的全部物體。這個只能在服務器上調用。例如,清理一個已斷開的玩家留下的網絡物體。
function OnPlayerDisconnected(player: NetworkPlayer) {
Debug.Log("Clean up after player " + player);
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);
}
◆ static function Disconnect (timeout : int = 200) : void
描述:關閉全部開放的鏈接並關閉網絡接口。timeout參數表示網絡接口在未收到信號的狀況下,多長時間會關閉。網絡狀態,入安全和密碼,也會被重置。
function OnGUI() {
if (GUILayout.Button ("Disconnect")) {
Network.Disconnect();
MasterServer.UnregisterHost();
}
}
◆ static function GetAveragePing (player : NetworkPlayer) : int
描述:到給定player的最後平均ping時間,以毫秒計。若是沒有發現玩家,返回-1。Ping會每隔幾秒自動發出。
function OnGUI() {
var i: int;
GUILayout.Label("Player ping values");
for (i=0; i < Network.connections.length; i++) {
GUILayout.Label("Player " + Network.connections[i] + " - " + Network.GetAveragePing(Network.connections[i]) + " ms");
}
}、

◆ static function GetLastPing (player : NetworkPlayer) : int
描述:到給定player的最後平均ping時間,以毫秒計。 
若是沒有發現玩家,返回-1。Ping會每隔幾秒自動發出。
function OnGUI() {
var i: int;
GUILayout.Label("Player ping values");
for (i=0; i < Network.connections.length; i++) {
GUILayout.Label("Player " + Network.connections[i] + " - " + Network.GetLastPing(Network.connections[i]) + " ms");
}
}
◆ static function HavePublicAddress () : bool
描述:檢查該機器是否有一個公共IP地址。檢查全部接口來獲取Ipv4公共地址。如發現返回真。
function OnGUI() {
if (GUILayout.Button ("Start Server")){
// 若是沒有公共IP地址,使用NAT穿透
Network.useNat = !Network.HavePublicAddress();
Network.InitializeServer(32, 25002);
MasterServer.RegisterHost("MyUniqueGameType", "JohnDoes game", "l33t game for all");
}
}
◆ static function InitializeSecurity () : void
描述:初始化安全層。你須要再Network.InitializeServer調用以後在服務器上調用這個函數。不要再客戶端調用該函數你的在線遊戲達到必定知名度時就有人試圖做弊。你講須要再遊戲層和網絡層處理這個。若是你但願使用它們,Unity能夠經過提供安全鏈接處理網絡層。
使用AES加密,阻止未受權讀取並阻止重複攻擊,添加CRC來檢測數據篡改,使用隨機的、加密的SYNCookies來組織未受權登陸,使用RSA加密保護這個AES密鑰
大多數遊戲將使用安全鏈接。而後,它們會向每一個數據包添加15本身並須要時間計算,因此你也許想限制使用此功能。
function Start (){
Network.InitializeSecurity();
Network.InitializeServer(32, 25000);
}
◆ static function InitializeServer (connections:int,listenPort:int) : NetworkConnectionError
描述:初始化安全層。connections是容許進入的鏈接或玩家的數量。listenPort是咱們要監聽的端口。
function LaunchServer () {
Network.incomingPassword = "HolyMoly";
Network.InitializeServer(32, 25000);
}
◆ static function Instantiate (prefab:Object, position:Vector3, rotation:Quaternion, group:int):Object
描述:網絡實例化預設。給定的預設將在全部的客戶端上初始化。同步被自動設置因此沒有額外的工做須要作。位置、旋轉和網絡組數值做爲給定的參數。這是一個RPC調用,所以
 
當Network.RemoveRPCs爲這個組調用的使用,這個物體將被移除。注意在編輯器中必須設置playerPrefab,你能在Object.Instantiate物體參考中獲取更多實例化信息。
//當成功鏈接到服務器上時
//當即實例化新鏈接的玩家角色
var playerPrefab : Transform;
function OnConnectedToServer (){
Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0);
}
◆ static function RemoveRPCs (playerID : NetworkPlayer) : void
描述:移除全部屬於這個玩家ID的RPC函數。
function OnPlayerDisconnected(player: NetworkPlayer) {
Debug.Log("Clean up after player " + player);
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);
}
◆ static function RemoveRPCs (playerID : NetworkPlayer, group : int) : void
描述:移除全部屬於這個玩家ID並給予給定組的全部RPC函數。
◆ static function RemoveRPCs (viewID : NetworkViewID) : void
描述:移除全部與這個視ID數相關的RPC函數調用。
◆ static function RemoveRPCsInGroup (group : int) : void
描述:移除全部屬於給定組數值的RPC函數。
◆ static function SetLevelPrefix (prefix : int) : void
描述:設置關卡前綴,而後全部網絡視ID都會使用該前綴。此處提供了一些保護,能夠防止來自前一個關卡的舊的網絡更新影響新的關卡。此處能夠設置爲任何數字並隨着新關卡的加載而增長。這不會帶來額外的網絡負擔,只會稍微減少網絡視ID池。Network level loading有如何使用該函數的例子。
◆ static function SetReceivingEnabled (player : NetworkPlayer, group : int, enabled : bool) : void
描述:啓用或禁用特定組中來自特定玩家的信息接收。在你不但願任何網絡消息進入的時候能夠使用這個函數,而後在你準備好的時候啓用。例如,可用於中止網絡消息,知道關卡被加載。
//中止接收來自全部玩家(客戶端)的組0的信息
for (var player : NetworkPlayer in Network.connections)
Network.SetReceivingEnabled(player, 0, false);
◆ static function SetSendingEnabled (group : int, enabled : bool) : void
描述:啓用或禁用特定網絡組上的信息傳輸和RPC調用。當你知道你不發送任何有用的信息到其餘客戶端時,能夠設置這個。例如在你徹底你家在關卡以前。Network level loading中有例子。
static function SetSendingEnabled (player : NetworkPlayer, group : int, enabled : bool) : void 
描述:基於目標玩家和網絡組啓用或禁用消息傳說和RPC調用。當在客戶端使用時,惟一可能的NetworkPlayer就是服務器。
◆ static function TestConnection (forceTest : bool = false) : ConnectionTesterStatus
描述:測試這個機器的網絡鏈接。執行兩種測試,這取決機器有公用IP仍是隻有一個私有IP。公用IP測試主要用於服務器,不須要測試具備公用地址的客戶端。爲了公用IP測試成功,必須開啓一個服務器實例。一個測試服務器將嘗試鏈接到本地服務器的IP地址和端口,所以它被顯示在服務器中位可鏈接狀態。若是不是,那麼防火牆是最有可能阻斷服務端口的。服務器實例須要運行以便測試服務器能鏈接到它。另外一個試驗檢測NAT穿透能力。服務器和客戶端均可以進行,無需任何事先設定。若是用於服務器NAT測試失敗,那麼不設置端口轉發是一個壞主意。本地LAN網絡以外的客戶端將不能鏈接。若是測試失敗,客戶端就不能使用NAT鏈接到服務器,這些服務器將不會提供給用戶做爲主機。這個函數是異步的,並可能不會返回有效結果。由於這個測試須要一些時間來完成(1-2秒)。測試完成後,測試的結果只在函數被再次調用時返回。這樣,頻繁訪問該函數是安全的。若是須要其餘的測試,入網絡鏈接已改變,那麼forcTest參數應該爲真。該函數返回一個ConnectionTesterStatus枚舉。
//是否應該在主機列表上隱藏NAT主機?
private var filterNATHosts = false;
private var doneProbingPublicIP = false;
function OnGUI (){
//開始/輪詢鏈接測試
//在標籤上顯示結果並按照結果作出相應的反應
natCapable = Network.TestConnection();
if (natCapable == -2)
GUILayout.Label("Problem determining NAT capabilities");
else if (natCapable == -1)
GUILayout.Label("Undetermined NAT capabilities");
else if (natCapable == 0){
GUILayout.Label("Cannot do NAT punchthrough, " +"filtering NAT enabled hosts for client connections, " +"impossible to run a server.");
filterNATHosts = true;
Network.useNat = false;
}
else if (natCapable == 1){
if (doneProbingPublicIP)
GUILayout.Label("Non-connectable public IP address (port "+ serverPort +" blocked), NAT unchthrough can circumvent the firewall.");
else
GUILayout.Label("NAT punchthrough capable. " +"Enabling NAT punchthrough functionality.");
//一旦服務器開始NAT功能被啓用
//客戶端是否開啓這個基於主機是否須要
Network.useNat = true;
}
else if (natCapable == 2){
GUILayout.Label("Directly connectable public IP address.");
Network.useNat = false;
}
else if (natCapable == 3){
GUILayout.Label("Non-connectble public IP address (port " + serverPort +" blocked), running a  
server is impossible.");
Network.useNat = false;
if (!doneProbingPublicIP){
natCapable = Network.TestConnectionNAT();
doneProbingPublicIP = true;
}
}
else if (natCapable == 4){
GUILayout.Label("Public IP address but server not initialized, "+"it must be started to check server accessibility.");
Network.useNat = false;
}
if (GUILayout.Button ("Retest connection")){
Debug.Log("Redoing connection test");
doneProbingPublicIP = false;
natCapable = Network.TestConnection(true);
}
}
◆ static function TestConnectionNAT () : ConnectionTesterStatus
描述:測試NAT穿透的鏈接性。這個就像Network.TestConnection,只不過NAT穿透是強制的,即便該機器有一個公用地址。請參考Network.TestConnection。
Object

Unity所涉及的全部物體的基類。任何從Object繼承的公有變量將做爲一個目標顯示在監視面板中,容許你從GUI中設置。
變量
◆ var hideFlags : HideFlags 描述:該物體是否被隱藏,保存在場景中或被用戶修改。
◆ var name : string
描述:對象的名稱。組件與遊戲物體和全部附加的組件共享相同名稱。
//改變物體的名稱爲Hello
name = "Hello";
函數
◆ function GetInstanceID () : int 描述:返回該物體的實例id。一個物體的實例ID老是惟一。
描述:返回該物體的實例id。
一個物體的實例id老是惟一的。
print(GetInstanceID());
類方法
◆ static function Destroy (obj : Object, t : float = 0.0F) : void
描述:移除一個遊戲物體,組件或資源。物體obj將被小火或者t秒後被銷燬。若是obj是一個Component它將被從GameObject中移除。若是obj是一個GameObject它將銷燬這個GameObject,以及它的組件和所子對象。實際的銷燬老是推遲到下個Update來臨時,但總在渲染前完成。
//銷燬這個遊戲物體
Destroy (gameObject);
//從物體上移除該腳本
Destroy (this);
//從遊戲物體上移除剛體組件
Destroy (rigidbody);
//加載該遊戲物體後5秒刪除
Destroy (gameObject, 5);
//當玩家按下Ctrl時移除名爲FoooScript的腳本
function Update () {
if (Input.GetButton ("Fire1") && GetComponent (FooScript))
Destroy (GetComponent (FooScript));
}
◆ static function DestroyImmediate (obj : Object, allowDestroyingAssets : bool = false) : void

描述:當即銷燬物體。強烈建議使用Destroy代替它。該函數應該只在編寫編輯器代碼時使用,由於延遲的銷燬將不會再編輯器模式調用。遊戲代碼中建議使用Destroy。Destroy老是延遲的(可是在同一幀執行)。當心使用該函數,由於它能永久的銷燬資源。
◆ static function DontDestroyOnLoad (target : Object) : void
描述:加載新場景時確保物體target不被自動銷燬。當加載一個新的關卡時,場景中的全部物體都會被銷燬,而後心關卡中的物體將被加載。爲了在關卡加載的時候保持物體在上面調用DontDestroyOnLoad。若是物體是一個組件或遊戲物體,那麼它的整個變換層次將不會被銷燬。
//保證該遊戲物體及其變化子物體在載入新場景時不會被銷燬。
function Awake () {
DontDestroyOnLoad (this);
}
◆ static function FindObjectOfType (type : Type) : Object
描述:返回第一個類型爲Type的已激活加載的物體。參見Object.FindObjectsOfType 。
◆ static function FindObjectsOfType (type : Type) : Object[]
描述:返回全部類型爲Type的已激活加載的物體。 
參見Object.FindObjectsOfType 。
它將返回任何資源(網格、紋理、預設等)或已激活加載的物體。
//當點擊該物體,它將禁用場景中全部鉸鏈中的彈簧。
function OnMouseDown () {
hinges = FindObjectsOfType (HingeJoint);
for (var hinge : HingeJoint in hinges) {
hinge.useSpring = false;
}

c#版
public class Something : MonoBehaviour{
void OnMouseDown(){
HingeJoint[] hinges = FindObjectsOfType<HingeJoint>();
for (HingeJoint hinge in hinges) {
hinge.useSpring = false;
}
}
}
◆ static function Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
描述:克隆original物體並返回該克隆。防護position兵設置旋轉爲rotation,而後返回該克隆。本職上與cmd-d相同,並移動到給定位置。若是一個遊戲物體、組件或腳本實例被傳入,Instantiate將克隆整個遊戲物體層次,全部的子對象也被克隆。全部遊戲物體被激活。參加:預設實例化的深刻討論。
//實例化預設的10個拷貝,間隔爲2單位。
var prefab : Transform;
for (var i=0;i<10;i++) {
Instantiate (prefab, Vector3(i * 2.0, 0, 0), Quaternion.identity);
}
Instantiate更多經常使用於實例化投射物、AI敵人,粒子爆炸或b破損的物體。
//實例化一個剛體,而後設置速度。
var projectile : Rigidbody;
function Update () {
//按下ctrl時,發射一個物體
if (Input.GetButtonDown("Fire1")) {
//以該變化位置與旋轉實例化投射物
var clone : Rigidbody;
clone = Instantiate(projectile, transform.position, transform.rotation);
//沿當前物體Z軸,給克隆體一個初始速度
clone.velocity = transform.TransformDirection (Vector3.forward * 10);
}
}
實例化也能直接克隆腳本實例。整個遊戲物體層級將被克隆,而且克隆腳本的實例將被返回。
//初始化一個附加了Missile腳本的預設
var projectile : Missile;
function Update () {
//按下ctrl時,發射一個物體
if (Input.GetButtonDown("Fire1")) {
//以該變化位置與傳轉實例化投射物
var clone : Missile;
clone = Instantiate(projectile, transform.position, transform.rotation);
//設置火箭超市銷燬爲5秒
clone.timeoutDestructor = 5;
}
}
克隆一個物體以後能夠使用GetComponet來設置附加到克隆物體上的特定組件的屬性。
◆ static function Instantiate (original : Object) : Object 
描述:克隆original物體並返回該克隆。這個函數保留克隆物體的位置與賦值命令相同(cmd-d)。
//當任何剛體進入這個觸發器時實例化預設。
//它保留預設的原始位置與旋轉。
var prefab : Transform;
function OnTriggerEnter () {
Instantiate (prefab);
}
◆ static operator != (x : Object, y : Object) : bool 
描述:比較兩個物體是否不一樣。
var target : Transform;
function Update (){
//若是target不一樣於咱們的變換。
if (target != transform){
print("Another object"); 
}
}
◆ static operator == (x : Object, y : Object) : bool 
描述:比較兩個物體是否相同。
var target : Collider;
function OnTriggerEnter (trigger : Collider){
if (trigger == target)
print("We hit the target trigger");
}
var target : Transform;
function Update (){
//該物體已被銷燬。
if (target == null)
return;
}
◆ static implicit function bool (exists : Object) : bool 
描述:這個物體是否存在?
if(rigidbody) 
等同於
if(rigidbody != null)
AnimationClip
類,繼承自Object。
存貯基於動畫的關鍵幀。
AnimationClip被Animation使用來播放動畫。 
變量
◆ var frameRate : float
描述:關鍵幀被殘陽的幀率。這個與用來製做動畫/模型的動畫程序相同。
//打印動畫剪輯的幀率到控制檯。
print(animation["walk"].clip.frameRate);
◆ var length : float 
描述:動畫播放的描述。
animation.Play(animation.clip);
//等待動畫完成。
yield WaitForSeconds (animation.clip.length);
◆ var wrapMode : WrapMode 
描述:在動畫狀態中設定默認的卷模式。
構造函數
◆ static function AnimationClip () : AnimationClip 
描述:建立一個新的動畫剪輯。
函數
◆ function AddEvent (evt : AnimationEvent) : void
描述:建立一個新的動畫剪輯。這將添加這個時間直到退出播放模式或玩家退出。若是你想從編輯器添加一個固定的剪輯到AnimationEvent,使用UnityEditorAnimationUtility.SetAnimationEvents。
◆ function ClearCurves () : void 
描述:從剪輯中清理全部曲線。
◆ function SetCurve (relativePath : string, type : Type, propertyName : string, curve : AnimationCurve) : void
參數
relativePath  應用這個曲線的遊戲物體的路徑。relativePath被格式化爲一個路徑名。入:「root/spine/leftArm」若是relativePath爲空,表示該動畫剪輯所附加的遊戲物體。
type  被進行動畫處理的組件的類類型。
propertyName 被動畫處理的屬性的名稱或路徑。
curve 動畫曲線。
描述:給動畫指定一個特定的曲線屬性。若是曲線爲null該曲線將被移除。若是曲線爲null該曲線將被移除。若是曲線屬性已經存在,則會被替換。一般的名稱是:「localPostion.x」,「localPostion.y」,「localPostion.z」,「localRotation.x」,「localRotation.y」,「localRotation.z」,「localRotation.w」,「localScale.x」,「localScale.y」,「localScale.z」。出於性能考慮Transform的位置、旋轉和縮放只能被所謂一個動畫屬性。
 
//對x座標的位置進行動畫處理
function Start (){
//建立曲線
var curve = AnimationCurve.Linear(0, 1, 2, 3);
//用曲線建立剪輯
var clip = new AnimationClip();
clip.SetCurve("", Transform, "localPosition.x", curve);
//添加並播放剪輯
animation.AddClip(clip, "test");
animation.Play("test");
}
@script RequireComponent(Animation)
Material屬性能夠使用shader處處的名稱制做動畫屬性。一般的屬性名稱是:「_MainTex」,「_BumpMap」,「_LightMap」,「_Color」,「_SpecColor」,「_Emmission」。
Float屬性「PropertyName」
Vector4屬性「PropertyName.x」「PropertyName.x」 「PropertyName.x」 「PropertyName.x」 Color屬性「PropertyName.r」「PropertyName.g」「PropertyName.b」「PropertyName.a」
UV旋轉屬性「PropertyName.rotation」;UB便宜和縮放「PropertyName.offset.x」「PropertyName.offset.y」「PropertyName.scale.x」「PropertyName.scale.y」
對於在同一個Renderer上的多個索引材質,你能夠像這樣加前綴「[1]._MainTex.offset.y」。
//對alpha值和主要材質地平線補償進行動畫處理
function Start () {
var clip = new AnimationClip ();
clip.SetCurve ("", typeof(Material), "_Color.a",AnimationCurve (Keyframe(0, 0, 0, 0), Keyframe(1, 1, 0, 0)));
clip.SetCurve ("", typeof(Material), "_MainTex.offset.x",AnimationCurve.Linear(0, 1, 2, 3));
animation.AddClip (clip, clip.name);
animation.Play(clip.name);
}
@script RequireComponent(Animation)
繼承的成員
繼承的變量 
name 對象名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
AssetBundle

類,繼承自Object。AssetBundles讓你經過WWW類流式加載額外的資源並在運行時實例化它們。AssetBundles經過BuildPipeline.BuildAssetBundle建立。參見:WWW.assetBundle ,Loading Resources at Runtime ,BuildPipeline.BuildPlayer
function Start () {
var www = new WWW ("http://myserver/myBundle.unity3d");
yield www;
//獲取指定的主資源並實例化
Instantiate(www.assetBundle.mainAsset);
}
變量
◆ var mainAsset : Object
描述:竹資源在構建資源boundle時指定(只讀)。該功能能夠方便的找到bundle內的主資源。例如,你也許想將預設一個角色幷包括全部紋理、材質、網格和動畫文件。可是徹底操縱角色的預設應該是你的mainAsset而且能夠被容易的訪問。
function Start () {
var www = new WWW ("http://myserver/myBundle.unity3d");
yield www;
//獲取指定的主資源並實例化
Instantiate(www.assetBundle.mainAsset);
}
函數
◆ function Contains (name : string) : bool 
描述:若是AssetBundle的名稱中包含特定的對象則進行檢索。若是包含則返回真。
◆ function Load (name : string) : Object 
描述:從bundle中加載名爲name的物體。
◆ function Load (name : string, type : Type) : Object
描述:從bundle中加載名爲name的type類物體。
◆ function LoadAll (type : Type) : Object[ ]
描述:加載全部包含在資源bundle中且繼承自type的物體。
◆ function LoadAll () : Object[ ]
描述:加載包含在資源bundle中的全部物體。
◆ function Unload (unloadAllLoadedObjects : bool) : void
描述:寫在bundle中的全部資源。Unload釋放bundle中全部序列化數據。當unloadAllLoaderObjects爲假,bundle內的序列化數據將被寫在,可是任何從這個bundle中實例化的物體都將無缺。固然,你不能從這個bundle中加載更多物體。當unloadAllLoaderObjects爲真,全部從該bundle中加載的物體也將被銷燬。若是
場景中有遊戲物體引用該資源,那麼引用也會丟失。
繼承的成員
繼承的變量 
name 對象名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
AudioClip
類,繼承自Object。音頻數據的容器。一個AudioClip以壓縮或未壓縮的格式存儲音頻文件。AudioClips被AudioSources參考或引用來播放聲音。參見組件參考的AudioClip.component。
變量
◆ var isReadyToPlay : bool
描述:有沒流式音頻剪輯準備播放?(只讀)若是AudioClip是從網站上下載的,此變量用來判斷下載到的數據是否足夠不間斷的播放。對於不是來自web的流的AudioClips,該值老是真。
function Start (){
www=new WWW(url);
audio.clip=www.audioClip;
}
function Update (){
if(!audio.isPlaying && audio.clip.isReadyToPlay)
audio.Play();
}
◆ var length : float
 描述:音頻剪輯的長度,以秒計(只讀)。
audio.Play();
//等待音頻播放完成
yield.WaitForSeconds(audio.clip.length);
繼承的成員
繼承的變量 
name 對象名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
Component
類,繼承自Object。音頻數據的容器。全部附加到遊戲物體上的對象的基類。
變量
◆ var animation : Animation
描述:附加到這個GameObject的Animation。(沒有則爲null)
◆ var audio : AudioSource
描述:附加到這個GameObject的AudioSource。(沒有則爲null)
audio.Play()
◆ var camera : Camera
描述:附加到這個GameObject的Camera。(沒有則爲null)
◆ var collider : Collider
描述:附加到這個GameObject的Collider。(沒有則爲null)
collider.material.dynamicFriction =1
◆ var constantForce : ConstantForce
描述:附加到這個GameObject上的ConstantForce(沒有則爲null)。
◆ var gameObject : GameObject 
描述:這個組件所附加的遊戲物體。組件老是附着在遊戲物體上。
print(gameObject.name);
◆ var guiText : GUIText
描述:附加到這個GameObject上的GUIText(沒有則爲null)。
guiText.text = "Hello World";
◆ var guiTexture : GUITexture
描述:附加到這個GameObject上的GUITexture(只讀)(沒有則爲null)。
◆ var hingeJoint : HingeJoint
描述:附加到這個GameObject的HingeJoint(沒有則爲null)。
hingeJoint.motor.targetVelocity = 5;
◆ var hingeJoint : HingeJoint
描述:附加到這個GameObject的HingeJoint(沒有則爲null)。
◆ var light : Light
描述:附加到這個GameObject的Light(沒有則爲null)。
◆ var networkView : NetworkView
描述:附加到這個GameObject的NetworkView(只讀)(沒有則爲null)。
networkView.RPC("MyFunction", RPCMode.All, "someValue");
◆ var particleEmitter : ParticleEmitter
描述:附加到這個GameObject的ParticleEmitter(沒有則爲null)。
particleEmitter.emit = true;
◆ var renderer : Renderer
描述:附加到這個GameObject的Renderer。(沒有則爲null)
◆ var rigidbodyr : Rigidbody
描述:附加到這個GameObject的rigidbody。(沒有則爲null)
◆ var tag : string
描述:附加到這個GameObject的rigidbody。標籤能夠用來標識一個遊戲物體。標籤在使用前必須在標籤管理器中定義。
◆ var transform : Transform
描述:附加到這個GameObject的Transform。(沒有則爲null)
transform.Translate(1, 1, 1);
函數
◆ function BroadcastMessage (methodName : string, parameter : object = null, options : 
SendMessageOptions = SendMessageOptions.RequireReceiver) : void
描述:在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName方法。經過使用零參數,結婚搜方法能夠選擇忽略parameter。若是options被設置爲SednMessageOptions.RequireReceiver,那麼若是這個消息沒有被任何組件接受時,將打印一個錯誤信息。
//使用值5調用ApplyDamage
BroadcastMessage ("ApplyDamage", 5.0);
//每一個附加到該遊戲物體及其全部子物體上含有ApplyDamage函數的腳本都會被調用
function ApplyDamage (damage : float) {
print (damage);
}
◆ function CompareTag (tag : string) : bool 
描述:這個遊戲物體有被標籤爲tag嗎?
//當即銷燬觸發器,銷燬任何進入到觸發器的碰撞器,這些碰撞器被標記爲Player
function OnTriggerEnter (other : Collider) {
if (other.CompareTag ("Player")) {
Destroy (other.gameObject);
}
}
◆ function GetComponent (type : Type) : Component
描述:若是遊戲物體上附加了這個組件,則返回一個Type類,若是沒有則返回null。
//等同於Transform curTransform = transform
var curTransform : Transform = GetComponent (Transform);
//你能夠像訪問其餘組件同樣的訪問腳本組件
function Start () {
var someScript : ExampleScript = GetComponent (ExampleScript);
someScript.DoSomething ();
}
for c#
public class Something : MonoBehaviour{
void Start(){
ExampleScript someScript = GetComponent<ExampleScript>();
someScript.DoSomething ();
}
}
◆ function GetComponent (type : string) : Component
描述:若是遊戲物體上附加了這個組件,則返回一個Type類,若是沒有則返回null。處於性能緣由,最好用Type調用GetComponent而不是字符串。不過有時你可能沒法獲得Type。例如當是同從Javascript中訪問c#時。這時你能夠簡單的經過名稱而不是類型訪問該組件。
//爲了訪問附加在同一物體上的腳本中的公有變量與函數
script = GetComponent(ScriptName);
script.DoSomething ();
◆ function GetComponentInChildren (t : Type) : Component
描述:返回type類型組件,這個組件位於GameObject或任何它的子物體上,使用深度優先搜索。只有激活的最賤會被返回。
var script : ScriptName = GetComponentInChildren(ScriptName);
script.DoSomething ();
for c#
ScriptName script = GetComponentInChildren<ScriptName>();
script.DoSomething ();
◆ function GetComponents (type : type) : Component[]
描述:返回GameObject上全部type類型組件。
//關閉該遊戲物體鉸鏈上的全部彈簧 
var hingeJoints = GetComponents (HingeJoint);
for (var joint : HingeJoint in hingeJoints) {
joint.useSpring = false;
}
for c#
HingeJoint[] hingeJoints = GetComponents<HingeJoint>();
for (HingeJoint joint in hingeJoints) {
joint.useSpring = false;
}
◆ function GetComponentsInChildren (t:Type,includeInactive:bool=false) : Component[]
描述:返回GameObject上或其子物體上全部type類型組件。
//關閉該遊戲物體極其子物體上的鉸鏈上的全部彈簧
var hingeJoints = GetComponentsInChildren (HingeJoint);
for (var joint : HingeJoint in hingeJoints) {
joint.useSpring = false;
}
for c#
HingeJoint[] hingeJoints = GetComponentsInChildren<HingeJoint>();
for (HingeJoint joint in hingeJoints) {
joint.useSpring = false;
}
繼承的成員
繼承的變量 
name 對象名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
Behaviour
類,繼承自Component。Behaviours是能夠被啓用或禁用的組件。參見MonoBehaviour和Component。
變量
◆ var enabled : bool
描述:啓用Behaviours被更新,禁用Behaviours不被更新。這將在behaviour的堅實面板中顯示爲一個小的複選框GetComponent(PlayerScript)enabled = false;
繼承的成員
繼承的變量 
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
Animation
類,繼承自Behaviour,可枚舉。動畫組件用來播放動畫。你能夠給動畫組件賦予一個動畫剪輯,並從腳本中控制它的播放。Unity中的動畫系統是基於權值的,而且支持動畫混合、附加動畫、動畫合成、層和全部動畫播放方面的徹底控制。
爲了播放動畫可以使用Animation.Play。
爲了在動畫間漸變可以使用Animation.CrossFade。
爲了改變更畫的層可以使用AnimationState.layer。
爲了改變更畫的包裹模式(循環、單次、往返)可以使用Animation.wrapMode或
AnimationState.wrapMode。
AnimationState能夠被用來調整播放速度和直接控制混合語合成。
Animation也支持枚舉,所以你能夠像這樣循環全部的AnimationStates。
//使該角色上全部動畫半速播放
for (var state : AnimationState in animation) {
state.speed = 0.5;
}
變量
◆ var animateOnlyIfVisible : bool
描述:啓用後,Unity會在認爲動畫不可見的時候中止播放。該選項能夠節省資源。
◆ var animatePhysics : bool
描述:啓用後,動畫獎在物理循環中執行。這隻在與運動學剛體結合時有用。一個動畫平臺能夠應用速度和摩擦到其頂部的剛體。爲了利用這個,animatePhysics必須被啓用,而且動畫物體必須爲一個運動學剛體。
◆ var clip : AnimationClip
描述:默認動畫。
animation.Play(animation.clip);
//等待動畫完成
yield WaitForSeconds (animation.clip.length);
◆ var isPlaying : bool
描述:是否正在播放動畫?
//在動畫沒有播放時播放這個動畫。
function OnMouseEnter() {
if (!animation.isPlaying)animation.Play();
}
◆ var playAutomatically : bool
描述:默認的動畫剪輯(Animation.clip)是否在開始時自動播放?
animation.playAutomatically = true;
◆ var this[name : string] : AnimationState
描述:返回名爲name的動畫狀態。
//獲取walk動畫狀態並設置它的速度
animation["walk"].speed = 2.0;
//獲取run動畫狀態並設置它的速度
animation["run"].weight = 0.5;
◆ var wrapMode : WrapMode
描述:超出剪輯播放時間以外時如何處理?
WrapMode.Default:從剪輯中獲取迴繞模式(默認爲Once)。
WrapMode.Once:當時間到達末尾時中止動畫。
WrapMode.Loop:當時間到達末尾時從頭開始播放。
WrapMode.PingPong:在開始和結束之間來回播放。
WrapMode.ClampForever:播放動畫。當它到達末端時,它將保持在最後一幀。
//讓動畫循環
animation.wrapMode = WrapMode.Loop;
函數
◆ function AddClip (clip : AnimationClip, newName : string) : void
描述:添加一個clip到Animation,它的名稱爲newName。
var walkClip : AnimationClip;
animation.AddClip(walkClip, "walk");
◆ function AddClip (clip : AnimationClip, newName : string, firstFrame : int, lastFrame : int, addLoopFrame : bool = false) : void
描述:添加clip只在firstFrame和lastFrame之間播放。這個新的剪輯也將被使用名稱newName並添加到Animation。addLoopFrame:是否要插入額外的幀一邊匹配第一幀?若是製做循環動畫就要打開這個。若是存在一個同名的剪輯,老的將被覆蓋。
//分割默認的剪輯爲shoot,walk和idle動畫
animation.AddClip(animation.clip, "shoot", 0, 10);
//walk和idle將在末尾添加額外的循環真
animation.AddClip(animation.clip, "walk", 11, 20, true);
animation.AddClip(animation.clip, "idle", 21, 30, true);
◆ function Blend (animation : string, targetWeight : float = 1.0F, fadeLength : float = 0.3F) : void
描述:在接下來的time內混合名爲animation的動畫獲得targetWeight。其餘動畫播放不會受影響。
◆ function CrossFade (animation : string, fadeLength : float = 0.3F, mode : PlayMode = PlayMode.StopSameLayer) : void
描述:淡入名爲animation的動畫,並在time內淡出其餘動畫。若是模式是PlayMode.StopSameLayer,在同一層上淡入的動畫將會被淡出。若是模式是PlayMode.StopAll,當動畫被淡入後,全部動畫都會被淡出。若是動畫被設置爲循環,在播放後將中止並回放。
//淡入walk循環並淡出同一層上全部其餘動畫。
//0.2秒內完成淡入
animation.CrossFade("Walk", 0.2);
//當玩家想要移動的時候,使角色動畫在Run和Idle動畫之間漸變。
function Update (){
if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1)animation.CrossFade("Run");
else
animation.CrossFade("Idle");
}
◆ function CrossFadeQueued (animation : string, fadeLength : float = 0.3F, queue : QueueMode = QueueMode.CompleteOthers, mode : PlayMode = PlayMode.StopSameLayer) : AnimationState
描述:在前一動畫播放完後漸變到下一個動畫。例如你能夠播放一個特定的動畫序列。動畫在播放前複製自身,所以你能夠再相同的動畫間漸變,這可用來重疊兩個相
同的動畫。例如你可能有一個揮劍的動畫,玩家快速揮動了2次,你能夠回放這個動畫並從開始播放它,但會跳幀。
下面是可用的queue modes:
下面是可用的queue modes:
若是queue爲QueueMode.CompleteOthers這個動畫紙在全部其餘動畫都中止播放時纔開始。
若是queue爲QueueMode.PlayNow這個動畫將以一個複製的動畫狀態當即開始播放。
動畫播放完成後它將自動清除它本身。在它播放完成後使用賦值的動畫將致使一個異常。
function Update (){
if (Input.GetButtonDown("Fire1")) 
animation.CrossFadeQueued("shoot", 0.3, QueueMode.PlayNow);
}
◆ function GetClipCount () : int
描述:獲取當前animation的剪輯數。
◆ function IsPlaying (name : string) : bool
描述:名爲name的動畫是否在播放?
function OnMouseEnter() {
if (!animation.IsPlaying("mouseOverEffect"))
animation.Play("mouseOverEffect");
}
◆ function Play (mode : PlayMode = PlayMode.StopSameLayer) : bool
function Play (animation : string, mode : PlayMode = PlayMode.StopSameLayer) : bool
描述:當即播放該動畫,沒有任何混合。Play()將會開始播放名爲animation的動畫,或者播放默認動畫,且會在沒有混合的狀況下忽然播放。若是模式爲PlayMode.StopSameLayer全部在同一層上的動畫都將被中止。若是模式是PlayMode.StepAll全部當前播放的動畫都將被中止。若是動畫正在播放,其餘動畫將被中止,但該動畫會回到開始位置。若是動畫沒有被設置爲循環,播放完後將中止並回放。若是動畫沒法被播放(沒有該剪輯或沒有默認動畫),Play()會返回假。
//播放默認動畫
animation.Play ();
//播放walk動畫,中止該層內全部其餘動畫
animation.Play ("walk");
//播放walk動畫,中止其餘全部動畫
animation.Play ("walk", PlayMode.StopAll);
◆ function PlayQueued (animation : string, queue : QueueMode = QueueMode.CompleteOthers, mode : PlayMode = PlayMode.StopSameLayer) : AnimationState
描述:在前一動畫播放完後漸變一個動畫。例如你能夠播放一個特定的動畫序列。動畫狀態在播放前複製自身,所以你能夠再相同的動畫之間漸變。這可用來重疊兩個相同的動畫。例如你可能有一個揮劍的動畫。玩家快速的砍了兩次,你能夠回放這個動畫,而且從開始播放,只不過會跳幀。
下面是可用的queue modes:
若是queue爲QueueMode.CompleteOthers這個動畫紙在全部其餘動畫都中止播放時纔開始。
若是queue爲QueueMode.PlayNow這個動畫將以一個複製的動畫狀態當即開始播放。
動畫播放完成後它將自動清除它本身。在它播放完成後使用賦值的動畫將致使一個異常。
function Update (){
if (Input.GetButtonDown("Fire1")) 
animation.PlayQueued("shoot", QueueMode.PlayNow);
}
◆ function RemoveClip (clip : AnimationClip) : void
描述:從動畫列表中移除剪輯。這將移除該剪輯及全部棘突它的動畫狀態。
◆ function RemoveClip (clipName : string) : void
描述:從動畫列表中移除剪輯。這將移除指定名稱的動畫狀態。
◆ function Rewind (name : string) : void
描述:回退名爲name的動畫。
//回退walk動畫到開始
animation.Rewind("walk");
◆ function Rewind () : void
描述:回退全部動畫。
//回退全部動畫到開始
animation.Rewind();
◆ function Sample () : void
描述:在當前狀態採樣動畫。若是想要設置一些動畫狀態,並採樣一次,能夠用這個。
//設置一些狀態
animation["MyClip"].time = 2.0;
animation["MyClip"].enabled = true;
//採樣動畫
animation.Sample();
animation["MyClip"].enabled = false;
◆ function Stop () : void
描述:中止全部由這個Animation開始的動畫。中止一個動畫並回退到開始。
//終止全部動畫
animation.Stop();
◆ function Stop (name : string) : void
描述:中止名爲name的動畫。中止一個動畫並回退到開始。
//中止walk動畫
animation.Stop ("walk");
◆ function SyncLayer (layer : int) : void
描述:同步全部在該層的動畫的播放速度。當混合兩個循環動畫時,它們一般有不一樣長度。例如一個walk循環要比run更長。當混合它們時,你須要確保行走於跑循環中腳的位置相同。也就是說,動畫的播放速度必須被調整一邊動畫同步。SyncLayer將給予它們的混合權值計算在該層上全部動畫播放的平均詭異化速度,而後對該層上的動畫使用播放速度。
//放置walk和run動畫在同一層,並同步它們的速度
animation["walk"].layer = 1;
animation["run"].layer = 1;
animation.SyncLayer(1);
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
AudioListener
類,繼承自Behaviour。標示在三維空間中的偵聽器。這個類可實現麥克風同樣的設備。它記錄周圍的聲音,並經過玩家的揚聲器播, 放。在場景中只能有一個偵聽器。參見組件參考中AudioSource,AudioListener,component。
變量
◆ var velocityUpdateMode : AudioVelocityUpdateMode
描述:可以讓你設置Audio Listener是否應該用固定或動態方式更新。若是你遇到了多普勒效應問題,請確保設置這個更新於Audio Listener的移動在同一循環內。若是它被附加到一個剛體,默認設置將自動設置該偵聽器在固定的更新週期內更新,動態的以其餘方式。
listener.velocityUpdateMode = AudioVelocityUpdateMode.Fixed;
類變量
◆ static var pause : bool
描述:音頻的暫停狀態。若是設置爲真,該偵聽器將不會產生聲音。相似於設置音量爲0.0
AudioListener.pause = true;
◆ static var volume : float
描述:控制遊戲的音量。
AudioListener.volume = 0.5;
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
AudioSource
類,繼承自Behaviour。標示三位空間中的音頻源。AudioSource被附加到GameObject以便在三位環境中播放聲音。單聲道聲音以3D播放。爲了播放三位聲音,也須要一個AudioListener。音頻偵聽器一般附加在使用的相機上。立體聲老是不以距離爲基礎衰減。你能夠使用Play,Pause,Stop來播放音頻剪輯。也能夠再播放時使用volume屬性調整音量,或者使用time來定位。多個聲音能夠使用PlayOneShot在一個AudioSource上播放。能夠使用PlayClipAtPoint在三位空間中的一個靜態位置播放剪輯。參見AudioListener,AudioClip,AudioSource component。
變量
◆ var clip : AudioClip
描述:默認播放的AudioClip。
var otherClip: AudioClip;
// 播放默認聲音
audio.Play();
// 等待音頻結束
yield WaitForSeconds (audio.clip.length);
// 指定其餘音頻並播放
audio.clip = otherClip;
audio.Play();
◆ var ignoreListenerVolume : bool
描述:這使音頻源不考慮音頻偵聽器的音量。播放背景音樂時可啓用這個。當播放背景音樂時,你但願音樂不受普通音量設置的影響,能夠使用該變量。
audio.ignoreListenerVolume = true;
◆ var isPlaying : bool
描述:clip如今生意否在播放?
//當音頻組件中止播放時,播放otherClip
var otherClip : AudioClip;

function Update (){
if (!audio.isPlaying) {
audio.clip = otherClip;
audio.Play();
}
}
◆ var loop : bool
描述:音頻剪輯是否循環?若是你在一個正在播放的AudioSource上禁用循環,聲音將在當前循環結束後中止。
// 中止聲音循環
audio.loop = false;
◆ var maxVolume : float
描述:音頻剪輯播放時的最大音量。不論你距離多近,聲音不會比這個值更大。
audio.maxVolume = 0.5;
參見:minVolume, rolloffFactor.
◆ var minVolume : float
描述:音頻剪輯播放時的最小音量。不論你距離多遠,聲音不會比這個還小。
audio.minVolume = 0.5;
參見:maxVolume, rolloffFactor.
◆ var pitch : float
描述:音頻源的音調。
audio.pitch = 1.0;
◆ var playOnAwake : bool
描述:若是設置爲真,音頻源江在awake時自動播放。
if(! audio.playOnAwake) {
audio.Play();// 若是沒有設置爲Awake時播放,那麼播放該剪輯
}
◆ var rolloffFactor : float
描述:設置聲音衰減的速度。該值越大,偵聽器必須更接近才能聽到聲音。
audio.rolloffFactor = 0.1;
參見:minVolume, maxVolume.
◆ var time : float
描述:以秒計算的播放位置。使用這個來讀當前播放時間或尋找新的播放時間。
◆ var velocityUpdateMode : AudioVelocityUpdateMode
描述:Audio Source是否應該以固定或動態的方式更新?若是你遇到了這個源的多普勒效應問題,請確保設置這個更新與Audio Source的移動
在同一循環內。若是它被附加到一個剛體,默認設置將自動設置該源在固定的更新週期內更新,以動態的以及其餘方式。
◆ var volume : float
描述:音頻源的音量。
audio.volume = 0.2;
函數
◆ function Pause () : void
描述:暫停播放clip。
audio.Pause();
參見:Play,Stop函數
◆ function Play () : void
描述:播放clip。
audio.Play();
參見:Pause,Stop函數
◆ function PlayOneShot (clip : AudioClip, volumeScale : float = 1.0F) : void
描述:播放一個AudioClip。
//與其餘物體碰撞時播放impact音頻剪輯
var impact : AudioClip;
function OnCollisionEnter () {
audio.PlayOneShot(impact);
}
◆ function Stop () : void
描述:中止播放clip。
audio.Stop();
參見:Play,Pause函數
類方法
◆ static function PlayClipAtPoint (clip : AudioClip, position : Vector3, volume : float = 1.0F) : void
描述:在制定位置上播放剪輯。播放完成後自動消除音頻源。正在播放的聲音的音頻源被返回。
//在制定位置播放clip
var clip : AudioClip;
AudioSource.PlayClipAtPoint(clip, Vector3 (5, 1, 2));
若是想進一步控制播放,能夠使用下面代碼。
var theClip : AudioClip;
PlayAudioClip(theClip, transform.position, 1);
function PlayAudioClip (clip : AudioClip, position : Vector3, volume : float)
{
var go = new GameObject ("One shot audio");
go.transform.position = position;
var source : AudioSource = go.AddComponent (AudioSource);
source.clip = clip;
source.volume = volume;
source.Play ();
Destroy (go, clip.length);
return source;
}
Destroy (go, clip.length);
return source;
}
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
Camera
類,繼承自Behaviour。Camera是一個設備,玩家經過它來看世界。屏幕空間點用像素定義。屏幕左下爲(0,0);右上是(pixelWidth.pixelHeight)。z的位置是以世界單位衡量到相機的距離。視口空間點是歸一化的而且是相對於相機的。相機左下爲(0,0);右上是(1,1)。z的位置是以世界單位衡量到相機的距離。世界空間點是以全局座標定義的(例如Transform.position)。
參見:camera component
變量
◆ var aspect : float
描述:長寬比(寬度除以高度)。默認的長寬比是從屏幕的長寬比計算獲得的,即便相機沒有被渲染到全屏。若是修改了相機的aspect比,這個值將保持到你調用camera.ResetAspect();這將充值猖狂比爲屏幕的長寬比。
if(camera.aspect > 1.0)
print ("Screen is more wide than tall!");
else
print ("Screen is more tall than wide!");
參見:camera component,Screen類。
◆ var backgroundColor : Color
描述:屏幕將被清理未這個顏色。只能在clearFlags被設置爲CameraClearFlags.SolidColor(或設置爲CameraClearFlags.Skybox但沒有設置天空盒)時使用。
//來回變化背景色
var color1 = Color.red;
var color2 = Color.blue;
var duration = 3.0;
//設置清楚標記爲該顏色
camera.clearFlags = CameraClearFlags.SolidColor;
function Update () {
var t = Mathf.PingPong (Time.time, duration) / duration;
camera.backgroundColor = Color.Lerp (color1, color2, t);
}
參見:camera component,Camera.clearFlags屬性。
◆ var cameraToWorldMatrix : Matrix4x4
描述:從相機空間到世界空間的變換矩陣(只讀)。使用次變量計算相機空間中的一個點在世界座標中的什麼位置。注意相機空間與openGL的約定相同。相機前味z軸負方向。這不一樣於Unity的約定,向前微z軸爭相。
//以distance單位,沿着相機所看到的方向,在屏幕中繪製一個黃色的球,
var distance = -1.0;
function OnDrawGizmosSelected () {
var m = camera.cameraToWorldMatrix;
var p = m.MultiplyPoint (Vector3(0,0,distance));
Gizmos.color = Color.yellow;
Gizmos.DrawSphere (p, 0.2);
}
◆ var clearFlags : CameraClearFlags
描述:相機如何清楚背景。能夠是CameraClearFlags.Skybox,CameraClearFlags.SolidColor,CameraClearFlags.Depth,CameraClearFlags.Nothing。
//用背景色清除(忽略天空盒)
camera.clearFlags = CameraClearFlags.SolidColor;
◆ var cullingMask : int
描述:這個用來選擇性的渲染部分場景。若是GameObject的layerMask與相機的cullingMask進行AND操做後爲0,則這個遊戲物體對於該相機是不可見的。參考Layers獲取更多信息。
//只渲染在第一層中的物體(默認層)
camera.cullingMask = 1 << 0;
參見:camera component
◆ var depth : float
描述:相機在渲染順序上的深度。具備較低深度的相機將在較高深度的相機以前渲染。若是有多個相機並其中一些不須要覆蓋整個屏幕,能夠使用這個來控制相機的繪製次序。
//設置該相機在主相機以後渲染
camera.depth = Camera.main.depth + 1;
參見:camera component,Camera.rect屬性
◆ var farClipPlane : float
描述:遠裁剪面的距離。
camera.farClipPlane = 100.0;
參見:camera component
◆ var fieldOfView : float
描述:相機的視野,以度爲黨委。這是垂直視野。水平FOV取決於視口的寬高比。當相機是正交時,fieldOfView被忽略。(參考orthographic)。
//設置附加到同一個遊戲物體上的相機的FOV位60
camera.fieldOfView = 60;
//設置主相機的視野爲80
Camera.main.fieldOfView = 80;
參見:camera component
◆ var nearClipPlane : float
描述:近才見面的距離。
camera.nearClipPlane = 0.1;
參見:camera component
◆ var orthographic : bool
描述:相機是正交的(true)仍是透視的(false)?若是orthographic爲true,相機的視野由orthographicSize定義。若是orthographic爲false,相機的視野由fieldOfView定義。
//設置相機爲正交
camera.orthographic = true;
//設置主相機爲正交
Camera.main.orthographic = true;
參見:camera component
◆ var orthographicSize : float
描述:在正交模式下相機的一半尺寸。這個爲視體垂直大小的一半。相機不是正交時,水平視大小拒絕於視口的長寬比。
//設置相機的正交尺寸爲5
camera.orthographic = true;
camera.orthographicSize = 5;
//設置主相機的正交尺寸爲5
Camera.main.orthographic = true;
Camera.main.orthographicSize = 5;
參見:camera component
◆ var pixelHeight : float
描述:相機的像素高度(只讀)。
print ("Camera is " + camera.pixelHeight + " pixels high");
◆ var pixelRect : Rect
描述:相機被渲染到屏幕像素座標中的位置。
function Update () {
var r = camera.pixelRect;
print ("Camera displays from " + r.xMin + " to " + r.xMax + " pixel");
}
◆ var pixelWidth : float
描述。相機的像素寬度(只讀)。
print ("Camera is " + camera.pixelWidth + " pixels wide");
◆ var projectionMatrix : Matrix4x4
描述:設置自動以的投影矩陣。若是你改變該矩陣,相機的渲染將再也不給予它的fieldOfView更新,直到調用到ResetProjectionMatrix。只有當真正須要一個非標準的投影時,才使用自定義投影。該屬性被Unity的水渲染使用來設置一個oblique.projection矩陣。使用自定義投影須要瞭解變換和投影矩陣。
//讓相機以有節奏的方式晃動
var originalProjection : Matrix4x4;
originalProjection = camera.projectionMatrix;
function Update () {
var p = originalProjection;
//改變原始矩陣的某些值
p.m01 += Mathf.Sin (Time.time * 1.2) * 0.1;
p.m10 += Mathf.Sin (Time.time * 1.5) * 0.1;
camera.projectionMatrix = p;
}
//設置一個變異中心的投影,這裏透視的消失點沒有必要在屏幕的中心。left/right/top/bottom定義近裁剪面大小。例如相機的近裁剪面偏移中心的距離,改變該值就能夠看到相機視圖的變化。
@script ExecuteInEditMode
var left = -0.2;
var right = 0.2;
var top = 0.2;
var bottom = -0.2;
function LateUpdate () {
var cam = camera;
var m = PerspectiveOffCenter(left, right, bottom, top,cam.nearClipPlane, cam.farClipPlane );
cam.projectionMatrix = m;
}
static function PerspectiveOffCenter(left : float, right : float,bottom : float, top : float,near : float, far : float ) : Matrix4x4{ 
var x = (2.0 * near) / (right - left);
var y = (2.0 * near) / (top - bottom);
var a = (right + left) / (right - left);
var b = (top + bottom) / (top - bottom);
var c = -(far + near) / (far - near);
var d = -(2.0 * far * near) / (far - near);
var e = -1.0;
var m : Matrix4x4;
m[0,0] = x; m[0,1] = 0; m[0,2] = a; 
m[0,3] = 0;
m[1,0] = 0; m[1,1] = y; m[1,2] = b; m[1,3] = 0;
m[2,0] = 0; 
m[2,1] = 0; m[2,2] = c; m[2,3] = d;
m[3,0] = 0; m[3,1] = 0; m[3,2] = e; 
m[3,3] = 0;
return m;
}
◆ var rect : Rect
描述:相機被渲染到屏幕歸一化座標中的位置。rect的範圍從0(左/下)到1(右/上)。
//每次按下空格鍵時改變視口寬度
function Update () {
if (Input.GetButtonDown ("Jump")) {
//隨機選擇邊緣
var margin = Random.Range (0.0, 0.3);
//設置矩形
camera.rect = Rect (margin, 0, 1 - margin * 2, 1);
}
}
◆ var targetTexture : RenderTexture
描述:目標渲染紋理(只限UnityPro)。
◆ var velocity : Vector3
描述:獲取世界空間中相機的速度(只讀)這是相機在上一幀以秒爲單位的運動。
function Update () {
print ("Camera moving at " + camera.velocity.magnitude + " m/s");
}
◆ var worldToCameraMatrix : Matrix4x4
描述:從世界到相機空間的變換矩陣。用這個計算物體的相機空間位置或提供自定義相機的位置。這個位置不是基於變化的。注意相機空間與openGL的約定相同:相機的前面爲Z軸負方向。這不一樣於Unity的約定,向前微Z軸爭相。若是你改變該矩陣,相機的渲染將再也不基於它的Transform更新。知道調用ResetWorldToCameraMatrix。
//從offset位置偏移相機的渲染
var offset = Vector3 (0,1,0);
function LateUpdate () {
//構建一個沿着Z軸偏移與鏡像的矩陣。由於相機已經爲Z軸鏡像,並用於其他部分
var camoffset = Vector3 (-offset.x, -offset.y, offset.z);
var m = Matrix4x4.TRS (camoffset, Quaternion.identity, Vector3 (1,1,-1));
//重載worldToCameraMatrix爲偏移鏡像變換矩陣
camera.worldToCameraMatrix = m * transform.worldToLocalMatrix;
}
函數
◆ function CopyFrom (other : Camera) : void
描述:使該相機的設置於其餘相機相同。這將從er相機拷貝到全部相機變量(視野,清楚標記,裁剪蒙版)。這也將使相機的變換與other相機相同,相機的層也與other相機相同。在作自定義渲染效果的時候,這能夠用來設置一臺具備與其餘相機設置徹底相同的相機。例如在使用RenderWithShader時。
◆ function Render : void
描述:手動渲染相機。這個將使用相機的清除標記,目標紋理和全部其餘設置。相機將發送OnPreCull,OnPreRender和OnPostRender到任何附加的腳本上,並渲染任何最後的圖像濾鏡。這個用來精確的控制渲染次序,爲了使用這個特性,建立一個相機並禁用它。而後在它上面調用Render。參見:RenderWithShader。
◆ function RenderToCubemap (cubemap : Cubemap, faceMask : int = 63) : bool
描述:從這個相機渲染到一個立方貼圖。這個是很是有用的。能夠再編輯器中烘焙場景的靜態立方貼圖。參考下面的想到實例。相機的位置,清除標誌和裁剪面距離將被使用來渲染到立方貼圖表面。faceMask是一個比特域,標示哪一個立方貼圖面應該被渲染。每一個位對應於一個面。比特數是CubemapFace枚舉的整型值。默認的全部六個立方貼圖面都將被渲染(默認值63最低的6位是打開的)。若是渲染失敗,這個函數將返回false。某些顯卡不支持這個函數。參見:Cubemap assets,Reflective shaders。
//從給定的點渲染場景到以靜態立方貼圖放置這個腳本到工程的Editor文件夾中,而後用一個Reflective shader來使用立方貼圖
class RenderCubemapWizard extends ScriptableWizard{
var renderFromPosition : Transform;
var cubemap : Cubemap;
function OnWizardUpdate () {
helpString = "Select transform to render from and cubemap to render into";
isValid = (renderFromPosition != null) && (cubemap != null);
}
function OnWizardCreate () {
//爲渲染建立臨時相機
var go = new GameObject( "CubemapCamera", Camera );//放置到物體上
go.transform.position = renderFromPosition.position;
go.transform.rotation = Quaternion.identity;
//渲染到立方貼圖
go.camera.RenderToCubemap( cubemap );
//銷燬臨時相機
DestroyImmediate( go );
}
@MenuItem("GameObject/Render into Cubemap")
static function RenderCubemap () {
ScriptableWizard.DisplayWizard(
"Render cubemap", RenderCubemapWizard, "Render!");
}
}
◆ function RenderToCubemap (cubemap : RenderTexture, faceMask : int = 63) : bool
描述:從這個相機渲染到一個立方貼圖。用於實時反射到立方貼圖渲染紋理,也是很是耗時的,尤爲是全部六個立方貼圖面在每一幀中都被渲染。相機的位置,清楚標誌和裁剪面距離將被使用來渲染到立方貼圖表面。faceMask是一
個比特域,標示哪一個立方貼圖面應該被渲染。每一個位對應於一個面。比特數是CubemapFace枚舉的整型值。默認的全部六個正方貼圖面都將被渲染(默認值63的最低6位是打開的)。若是渲染失敗該函數會返回false。某些顯卡不支持該函數。參加:RenderTexture.isCubemap, Reflective shaders。
//將該腳本附加到使用了Reflective shader的物體上實時反射立方貼圖
script ExecuteInEditMode
var cubemapSize = 128;
var oneFacePerFrame = false;
private var cam : Camera;
private var rtex : RenderTexture;
function Start () {
//啓動時渲染全部6個面
UpdateCubemap( 63 );
}
function LateUpdate () {
if (oneFacePerFrame) {
var faceToRender = Time.frameCount % 6;
var faceMask = 1 << faceToRender;
UpdateCubemap (faceMask);

else {
UpdateCubemap (63); //全部6個面
}
}
function UpdateCubemap (faceMask : int) {
if (!cam) {
var go = new GameObject ("CubemapCamera", Camera);
go.hideFlags = HideFlags.HideAndDontSave;
go.transform.position = transform.position;
go.transform.rotation = Quaternion.identity;
cam = go.camera;
cam.farClipPlane = 100; //不渲染較遠的部分
cam.enabled = false;
}
if (!rtex) { 
rtex = new RenderTexture (cubemapSize, cubemapSize, 16);
rtex.isPowerOfTwo = true;
rtex.isCubemap = true;
rtex.hideFlags = HideFlags.HideAndDontSave;
renderer.sharedMaterial.SetTexture ("_Cube", rtex);
}
cam.transform.position = transform.position;
cam.RenderToCubemap (rtex, faceMask);
}
function OnDisable () {
DestroyImmediate (cam);
DestroyImmediate (rtex);
}
◆ function RenderWithShader (shader : Shader, replacementTag : string) : void
描述:用shader替換渲染相機。參考Rendering with Replaced Shaders獲取細節。此函數將渲染相機。這將使相機的的清除標記、目標紋理和全部其餘設置。這個相機不會發送OnPreCull, OnPreRender 或者 OnPostRender到已附加的腳本上。
圖像濾鏡 
也不會被渲染。該函數能夠用於特效,例如渲染整個場景屏幕空間緩衝,熱效果等。爲了使用該特性,建立一個相機並禁用它。而後在它上面調用RenderWithShader。參見:Rendering with Replaced Shaders, SetReplacementShader, Render。
◆ function ResetAspect () : void
描述:返回猖狂比爲屏幕的長寬比。調用這個結束aspect的效果。
camera.ResetAspect();
◆ function ResetProjectionMatrix () : void
描述:讓投影反映正常的相機參數。調用這個結束projectionMatrix的效果。
camera.ResetProjectionMatrix();
◆ function ResetReplacementShader () : void
描述:從相機上移除shader替換。調用這個結束SetReplacementShader效果。
◆ function ResetWorldToCameraMatrix () : void
描述:在場景中讓渲染位置反映相機位置。調用這個結束worldToCameraMatrix的效果。
camera.ResetWorldToCameraMatrix();
◆ function ScreenPointToRay (position : Vector3) : Ray
描述:返回從相機出發,穿過屏幕點的一個射線。產生的射線是在世界空間中,從相機的近裁剪面開始並穿過屏幕position(x,y)像素座標(position.z被忽略)。屏幕空間以像素定義。屏幕的左下爲(0,0);右上是(pixelWidth,pixelHeight)。
//在屏幕視圖中繪製一條線,穿過一個到屏幕左下角200像素的點
function Update () {
var ray = camera.ScreenPointToRay (Vector3(200,200,0));
Debug.DrawRay (ray.origin, ray.direction * 10, Color.yellow);
}
◆ function ScreenToViewportPoint (position : Vector3) : Vector3
描述:從屏幕空間到視口空間變換position。屏幕空間以像素定義。屏幕的左下爲(0,0);右上是(pixelWidth,pixelHeight)。z的位置是以世界單位衡量的刀相機的距離。視口空間是歸一化的並相對於相機的。相機的左下爲(0,0);右上是(1,1)。z的位置是以世界單位衡量的刀相機的距離。
◆ function ScreenToWorldPoint (position : Vector3) : Vector3
描述:從屏幕空間到世界空間變換position。屏幕空間以像素定義。屏幕的左下爲(0,0);右上是(pixelWidth,pixelHeight)。z的位置是以世界單位衡量的到相機的距離。
//在所選相機的近裁剪面上繪製一個黃色的球,在離左下100像素的位置
function OnDrawGizmosSelected () {
var p = camera.ScreenToWorldPoint (Vector3 (100,100,camera.nearClipPlane));
Gizmos.color = Color.yellow;
Gizmos.DrawSphere (p, 0.1);
}
◆ function SetReplacementShader (shader : Shader, replacementTag : string) : void
描述:使相機用shader替換來渲染。參考Rendering with Replaced Shaders。調用該函數後,相機將使用替換的shader來渲染它的視圖。調用ResetReplacementShader來重置爲普通渲染。參見:Rendering with Replaced Shaders, ResetReplacementShader, RenderWithShader。
◆ function ViewportPointToRay (position : Vector3) : Ray
描述:返回從相機出發穿過視點的一個射線。產生的射線是在世界空間中,從相機的近裁剪面開始並穿過視口position(x,y)座標(position.z被忽略)。視口座標是歸一化的並相對於相機的。相機的左下爲(0,0);右上爲(1,1)。
//打印相機直接看到的物體名稱
function Update () {
//獲取穿過屏幕中心的射線
var ray = camera.ViewportPointToRay (Vector3(0.5,0.5,0));
//投射
var hit : RaycastHit;
if (Physics.Raycast (ray, hit)) {
print ("I'm looking at " + hit.transform.name);

else {
print ("I'm looking at nothing!");
}
}
◆ function ViewportToScreenPoint (position : Vector3) : Vector3
描述:從視口空間到屏幕空間變換position。視口空間是歸一化的並相對於相機的。相機的左下爲(0,0);右上爲(1,1)。z的位置是以世界單位衡量的刀相機的距離。屏幕空間以像素定義。屏幕左下爲(0,0;右上爲(pixelWidth,pixelHeight)。z的位置是以世界單位衡量的到相機的距離。
◆ function ViewportToWorldPoint (position : Vector3) : Vector3
描述:從視口空間到屏幕空間變換position。視口空間是歸一化的並相對於相機的。相機的左下爲(0,0);右上爲(1,1)。z的位置是以世界單位衡量的刀相機的距離。屏幕空間以像素定義。屏幕左下爲(0,0;右上爲(pixelWidth,pixelHeight)。z的位置是以世界單位衡量的到相機的距離。
//在進裁剪面的右上角,針對在場景視圖中選中的相機繪製一個黃色的球
function OnDrawGizmosSelected () {
var p = camera.ViewportToWorldPoint (Vector3 (1,1, camera.nearClipPlane));
Gizmos.color = Color.yellow;
Gizmos.DrawSphere (p, 0.1);
}
◆ function WorldToScreenPoint (position : Vector3) : Vector3
描述:從世界空間到屏幕空間變換position。屏幕空間以像素定義。屏幕的左下爲(0,0;右上爲(pixelWidth,pixelHeight)。z的位置是 
以世界單位衡量的刀相機的距離。
var target : Transform;
function Update () {
var screenPos = camera.WorldToScreenPoint (target.position);
print ("target is " + screenPos.x + " pixels from the left");
}
◆ function WorldToViewportPoint (position : Vector3) : Vector3
描述:從世界空間到視口空間變換position。視口空間是歸一化的並相對於相機的。相機的左下爲(0,0);右上爲(1,1)。z的位置是以世界單位衡量的到相機的距離。
//找出target在屏幕的左邊仍是右邊
var target : Transform;
function Update () {
var viewPos = camera.WorldToViewportPoint (target.position);
//視口座標範圍從0到1
if( viewPos.x > 0.5 )
print ("target is on the right side!");
else
print ("target is on the left side!");
}
消息傳遞
◆ function OnPostRender () : void
描述:OnPostRender在相機渲染場景以後調用。這個消息被髮送到全部附加在相機上的腳本。
◆ function OnPreCull () : void
描述:OnPreCull在相機開始裁剪場景以前調用。OnPreCull僅僅在這個過程之間被調用。這個消息被髮送到全部附加在相機上的腳本。若是你想改變相機的視覺參數(例如,fieldOfView或者僅僅是變換),就在這裏作這個。場景物體的可見性將給予相機的參數在OnPreCull以後肯定。
◆ function OnPreRender () : void
描述:OnPreCull在相機開始渲染場景以前調用。這個消息被髮送到全部附加在相機上的腳本。注意若是你在這裏改變了相機的視野參數(例如fieldOfView),它們將隻影響下一幀。用OnPreCull代替。
◆ function OnRenderImage (source : RenderTexture, destination : RenderTexture) : void
描述:OnRenderImage在全部渲染完成後被調用,來渲染圖片的後記處理效果(僅限UnityPro)。該函數容許使用給予shader的過濾器來處理最後的圖片。進入的圖片是source渲染紋理。結果是destination渲染紋理。當多個圖片過濾器附加在相機上時,它們序列化的處理圖片,將第一個過濾器的目標做爲下一個過濾器的源。
該消息被髮送到全部附加在相機上的腳本。參見:UnityPro中的image effects。
◆ function OnRenderObject (queueIndex : int) : void
描述:該函數被用來渲染你本身的物體,使用Graphics.DrawMeshNow或者其餘函數。queueIndex指定用來渲染物體的render queue。能夠使用RenderBeforeQueues屬性來指定你想繪製這個物體到哪一個渲染隊列。
◆ function OnWillRenderObject () : void
描述:若是物體可見,每一個相機都會調用OnWillRenderObject。該函數在裁剪過程當中被調用。可用該函數建立具備依賴性的渲染紋理。只有在被渲染的物體可見時,才更新該渲染紋理。例如,水組件就使用了這個。Camera.current將被設置爲要渲染這個物體的相機。
類變量
◆ static var allCameras : Camera[]
描述:返回場景中全部啓用的相機。
var count = Camera.allCameras.length;
print ("We've got " + count + " cameras");
◆ static var current : Camera
描述:當前用於渲染的相機,只用於低級的渲染控制(只讀)。多數時候你會使用Camera.main。只有在執行下面時間的時候使用該函數:MonoBehaviour.OnRenderImage, MonoBehaviour.OnPreRender, MonoBehaviour.OnPostRender。
◆ static var main : Camera
描述:第一個啓用的被標記爲「MainCamera」的相機(只讀)。若是場景中沒有這個相機返回null。
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
ConstantForce
類,繼承自Behaviour。一個不間斷的力。這是一個小的物理工具類,用來將一個連續的力應用到一個物體上。Rigidbody.AddForce只在一幀中應用力道Rigidbody,所以你不得不持續調用這個函數。
領以方面ConstantForce將在每一幀中應用這個力,知道改變這個力或例舉爲一個新的值。參見Rigidbody。
變量
◆ var force : Vector3
描述:這個力在每幀中應用到剛體。
//在世界座標系中向上移動剛體。
constantForce.force = Vector3.up * 10;
◆ var relativeForce : Vector3
描述:力-相對於剛體座標系統-在每幀中應用。
//向前移動剛體。
constantForce.relativeForce = Vector3.forward * 10;
◆ var relativeTorque : Vector3
描述:力矩-相對於剛體座標系統-在每幀中應用。
//繞着其X軸旋轉該物體。
constantForce.relativeTorque = Vector3.right * 2;
◆ var torque : Vector3
描述:這個力矩在每幀中應用到剛體。
//繞着世界的Y軸旋轉該物體。
constantForce.torque = Vector3.up * 2;
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
GUIElement
類,繼承自Behaviour。用於顯示在GUI上的圖片和文本字符串的基類。這個類處理全部GUI元素的基本功能。
函數
◆ function GetScreenRect (camera : Camera = null) : Rect
描述:在屏幕座標返回GUIElement的包圍矩陣。若是沒有camera被指定,一個填充整個遊戲窗口的相機將被使用。
function Start () {
var r = guiTexture.GetScreenRect ();
print ("This gui element is %d pixel wide.",r.width);
var r = guiText.GetScreenRect();
print ("This gui element is %d pixel wide.",r.width);
}
◆ function HitTest (screenPosition : Vector3, camera : Camera = null) : bool
描述:屏幕上的點在是否在元素內部?若是screenPositon包含在這個GUIElement內部時返回真,screenPosition以屏幕座標指定,例如由Input.mousePosition屬性返回的值。若是沒有camera被指定,一個填充整個遊戲窗口的相機將被使用。注意,若是位置在元素內部,true將被返回。即便遊戲物體屬於Ignore Raycast層(一般鼠標事件不會發送到Ignore Raycast物體)。參見GUILayer.HitTest。
if (guiTexture.HitTest (Vector3 (360, 450, 0.)))
print ("This gui texture covers pixel 360, 450");
if (guiText.HitTest (Vector3(360, 450, 0.)))
print ("This gui texture covers pixel 360, 450");
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
GUIText
類,繼承自GUIElement。顯示在一個GUI中的文本字符。
變量
◆ var alignment : TextAlignment
描述:文本的對齊。
guiText.alignment = TextAlignment.Left;
◆ var anchor : TextAnchor
描述:文本的錨點。
guiText.anchor = TextAnchor.MiddleCenter;
◆ var font : Font
描述:用於文本的字體。
var font : Font;
guiText.font = font;
◆ var lineSpaceing : float
描述:行間距倍數。這個能夠使被定義在字體中行間距增長。
//雙倍行間距
guiText.lineSpacing = 2.0;
◆ var material : Material
描述:用於渲染的Material。賦予一個新的材質來改變渲染處理。改變這個材質來改變渲染的字體。若是賦值null到material,將使用內置基本字體。
//改變這個材質顯示綠色文本。
guiText.material.color = Color.green;
參見:font variable
◆ var pixelOffset : Vector2
描述:文本的像素偏移。文本從它的原始位置偏移的量。
guiText.pixelOffset = Vector2 (10, 10);
◆ var tabSize : float
描述:這個標籤增長的寬度。
guiText.tabSize = 4.0;
◆ var text : string
描述:須要顯示的文本。
GUITexture
類,繼承自GUIElement。用於2D GUI的紋理圖片。
變量
◆ var color : Color
描述:GUI紋理的顏色。
//改變紋理的顏色爲綠色
guiTexture.color = Color.green;
◆ var pixelInset : Rect
描述:pixellnset用來調整尺寸和位置。爲了使GUI紋理老是原始大小,設置transform.localScale爲Vector3.zero。
transform.position = Vector3.zero;
transform.localScale = Vector3.zero;
guiTexture.pixelInset = Rect (50, 50, 100, 100);
◆ var texture : Texture
描述:用於繪製的紋理。
//將someTexture賦值給guiTexture。
var someTexture : Texture2D;
guiTexture.texture = someTexture; 
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
GUILayer
類,繼承自Behaviour。
函數
◆ function HitTest (screenPosition : Vector3) : GUIElement
描述:在屏幕的制定位置獲取GUI元素。返回屏幕上指定點的GUIElement。若是screenPosition在某個GUIElement內部,那個元素將被返回。若是這個位置沒有在任何GUI元素內部,返回null。輸入Ignore Raycast層的GUI元素將被忽略,就像它們不存在。screenPosition在屏幕座標系下,就像由Input.mousePosition屬性返回的值。參見:GUIElement.HitTest,Input.mousePositon。
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
LensFlare
類,繼承自Behaviour。用於Lensflare組件的藉口。這容許你在運行時改變鏡頭閃光的亮度和顏色。
變量
◆ var brightness : float
描述:閃光的強度。這個控制發光元素的尺寸和亮度。
參見:Lens flare component, flare assets。
◆ var color : Color
描述:閃光的顏色。這控制閃光元素的顏色(那些啓用了use light color的)。
參見:Lens flare component, flare assets。
◆ var flare : Flare
描述:使用的flare asset。
參見:Lens flare component, flare assets。
繼承的成員
繼承的變量 
enable 啓用則Behaviour被更新,不啓用則不更新
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
GetComponent 若是遊戲附體上附加了一個,則返回type類組件,沒有則返回null
GetComponentInChildren 若是該組件位於GameObject或任何其子物體上,返回type類組件,使用深度優先搜索
GetComponentsInChildren 若是這些組件位於GameObject或任何它的子物體上,返回type類組件。
GetComponents 返回GameObject上全部type類的組件
CompareTag 該遊戲物體被是否被標籤爲tag?
SendMessageUpwards 在該遊戲物體的每一個MonoBehaviour和該行爲的父對象上調用名爲methodName的方法
SendMessage 在該遊戲物體的每一個MonoBehaviour上調用methodName方法
BroadcastMessage 在這個遊戲物體或其任何子物體上的每一個MonoBehaviour上調用methodName
GetInstanceID 返回該物體的實例id
繼承的類函數 
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體、組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代理。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator!= 比較兩個物體是否不一樣。
DontDestroyOnLoad 加載新場景時確保目標物體不被自動銷燬。
Light
類,繼承自Behaviour。用於light components的腳本接口。使用這個來控制Unity光源的全部方面。這個屬性徹底與現實在監視面板中的值相同。一般光源都是在編輯器中建立,可是有時候須要從腳本中建立。
function Start () {
//製做一個遊戲物體
var lightGameObject = new GameObject ("The Light");
//添加光源組件
lightGameObject.AddComponent (Light);
//設置顏色和位置
lightGameObject.light.color = Color.blue;
//在添加光照組件後,設置位置(或任何變換組件)
lightGameObject.transform.position = Vector3 (0, 5, 0);
}
變量
◆ var attenuate : bool
描述:光源是否隨着距離衰減?對於Directional光源衰減老是關閉的。
//關閉光源衰減。
light.attenuate = false;
參見:Light component
◆ var color : Color
描述:光源的顏色。爲了修改光源的強度你須要改變光源顏色的亮度。光源老是增長亮度,所以一個黑色的光源與沒有光源相同。光源是否隨着距離衰減?對於Directional光源衰減老是關閉的。
//在2秒內使顏色變黑。
function Update () {
light.color -= Color.white / 2.0 * Time.deltaTime;
}
//在2個顏色之間來回插值光源顏色。
var duration = 1.0;
var color0 = Color.red;
var color1 = Color.blue;
function Update () {
//設置光源顏色
var t = Mathf.PingPong (Time.time, duration) / duration;
light.color = Color.Lerp (color0, color1, t);
}
參見:Light component。
◆ var cookie : Texture
描述:被蓋光源投影的cookie紋理。若是cookie是一個立方體貼圖,光源將變爲一個點光源。注意cookie只在像素光源下顯示。
//在監視面板中公開一個紋理的引用
var newCookie : Texture2D;
//賦cookie
light.cookie = newCookie;
參見:Light component
◆ var cullingMask : int
描述:這個用來選擇性的照亮部分場景。若是GameObject的layerMask與光源的cullingMask進行AND操做後爲0.,那麼這個遊戲物體不能被這個光源照亮。參考Layers獲取更多信息。
//只照亮第一層中的物體(默認層)
light.cullingMask = 1 << 0;
參見:Light component
◆ var flare : Flare
描述:爲這個光源使用的flare asset。
//在監視面板中公開一個閃光的引用
var newFlare : Flare;
//賦值閃光
light.flare = newFlare;
參見:Light component和flare asset。
◆ var intensity : float
描述:光源的強度被光源的顏色乘。該值能夠介於0~8之間。容許你建立明亮的燈光。
//隨時間改變光照強度
var duration = 1.0;
function Update() {
//餘弦理論
var phi = Time.time / duration * 2 * Mathf.PI;
//獲取餘弦,並將範圍從-1~1變爲0~1
var amplitude = Mathf.Cos( phi ) * 0.5 + 0.5;
//設置光的顏色
light.intensity = amplitude;
}
◆ var range : float
描述:光源的範圍。
即便光源關閉了attenuate,它仍是隻影響在它範圍內的物體。
//在原始範圍與原始範圍通常處變換光照範圍
var duration = 3.0;
private var originalRange : float;
originalRange = light.range;
function Update() {
var amplitude = Mathf.PingPong( Time.time, duration );
//將0..持續時間改成0.5..1範圍
amplitude = amplitude / duration * 0.5 + 0.5;
//設置光照範圍
light.range = originalRange * amplitude;
}
參見:Light component。
◆ var renderMode : LightRenderMode
描述:如何渲染該光源?此處能夠是LightRenderMode.Auto, LightRenderMode.ForceVertex 或 LightRenderMode.ForcePixel。像素光渲染比較慢可是看起來較好,尤爲是對那些沒有較高面數的幾何體。一些效果(例如凹凸)只會在像素光照下顯示。
//使光源只以點光照模式渲染
light.renderMode = LightRenderMode.ForceVertex;
參見:Light component
◆ var shadowConstantBias : float
描述:陰影偏移常量。
參見:shadows,shadowObjectSizeBias。
◆ var shadowSizeBias : float
描述:陰影偏移常量。
參見:shadows,shadowConstantBias。
◆ var shadows : LightShadows
描述:這個光源是否投射陰影?
//設置光源爲投射硬陰影
light.shadows = LightShadows.Hard;
參見:LightShadows, shadowStrength property, Renderer.castShadows, Renderer.receiveShadows
◆ var shadowStrength : float
描述:光源陰影的強度?
//使光源的陰影很是弱
light.shadowStrength = 0.3;
參見:shadows property, Renderer.castShadows, Renderer.receiveShadows。
◆ var spotAngle : float
描述:光源的投射光角度。主要用於Spot光源。改變Directional光源的cookie尺寸。對Point光源沒有影響。
//在」minAngle」與」maxAngle」之間隨機改變投射角度
//每’interval’秒改變一次.
var interval=0.3;
var minAngle=10;
var maxAngle=90;
private var timeLeft:float;
teimleft=interval;
light.type=LightType.Spot;
function Update()
{
 timeLeft=Time.deltaTime;
if(timeLeft<0.0){
 //開始改變
timeLeft=interval;
light.spotAngle=Random Range(minAngle,maxAngle);
};
}
參見:Light component
? var type:LightType
描述:光源的類型
能夠是LightType.Spot,LightType.Directional,LightType.Point.
//製做一個投射光源
Light.type=LightType.Spot;
參見:Light component
繼承的成員
繼承的變量
Enabled 啓用Behaviours被更新,禁用Behaviours不被更新。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponet返回type類型的組件,若是遊戲物體上附加一個,若是沒有返
                      回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
MonoBehaviour
類,繼承自Behaviour
MonoBehaviour是每一個腳本所繼承的基類。
每一個使用Javascript的腳本自動地從MonoBehaviour繼承。當使用C#或Boo時你必須顯式從MonoBehaviour繼承。
參見:手冊中的chapter on scripting.
函數
◆function Cancellnvoke():void
描述:取消全部在這個MonoBehaviour上調用
//在2秒時開始
//一個projectile所在每0.3秒時運行
var projectile:Rigidbody;
InvokeRepeating(「LaunchProjectile」,2,0.3);
//當用戶按下ctrl按鈕時,
//取消重複調用
Function Update()
{
 If(Input.GetButton(「Fire1」)){
  Cancellnvoke();
 
 }
}
Function LaunchProjectile(){
 Instance=Instantiate(prtfab);
Instance.velocity=Random.insideUnitSphere*5;
}
◆function Cancellvoke(methodName:string):void
描述:撤銷該行爲中名爲methodName的全部調用。
//在2秒時開始
//一個projectile將在每0.3秒時運行
var projectile :Rigidbady;
invokeRepeating(「LaunchProjectile」,2,0.3);
//當用戶按下crtl按鈕時
//取消重複調用
Function Update(){
 If(Input.GetButton(Fire1)){
  Cancellnvode(「LaunchProjectile」);
 }
}
Function LanuchProjectile(){
 instance=Instntiate(prefab);
 instance.velocity=Random.insideUnitSphere*5;
}
◆function Invoke(methodName:string,time:float):void
描述:在time秒調用methodName方法。
//在兩秒時發射一個投射物
var  Projectile:rigidbady;
Invoke(「LaunchProjectile」,2);
Function LaunchProjectile(){
 Instance=Instantiate(prefab);
 Instance.velocity=Random.insideUnitSphere*5;
}
◆function InvokeRepeating(methodName:string,time:float,repeatRate:float):void
描述:在time秒調用methodName方法。
第一次調用以後,每repeatRate秒重複調用這個函數
//在2秒時開始
//一個Projectile將在每0.3秒運行
var projectile:Rigidbody;
InvokeRepeating(「LaunchProjectile」,2,0.3);
Function LaunchProjectile(){
 instance=Instantiate(prefab);
 instance.velocity=Random.insideUnitSphere*5;
}
◆function IsInvoking(methodName:string)
描述:是否有任何對methodName的調用在等待?
◆function IsInvoking(methodName:string):bool
描述:是否有任何MonoBehaviour的調用在等待?
◆Function StartCoroutine(routine:IEnumerator):Coroutine
描述:開始一個coroutine
一個coroutine的執行能夠任何位置使用yield語句暫停,當coroutine繼續的時候yield返回值,當行爲須要跨越多個幀的時候,Coroutines是很是好的,當Coroutines幾乎沒有性能負擔。StartCoroutine函數老是當即返回,然而你可以yidle結果,這個將等待直到coroutine執行完成。
當使用javascript時,沒有必要使用StartCorutine,編譯器會爲你作這件事。在寫C#代碼的時候你必須調用StartCoroutine
//在這個例子中咱們顯示如何並行調用
//一個coroutine並繼續執行這個函數。
//0秒後,打印」Starting0.0」
//0秒後,打印」Before WaitAndPrint Finishes0.0」
//2秒後,打印」WaitAndPrint 2.0」
print(「Starting」+Time.time);
//WaitAndPrint做爲一個coroutine開始,並等待直到它完成
WaitAndPrint(2.0)
Print(「Before WaitAndPrint Finishes」+Time.time);
function WaitAndPrint(waitTime:float){
 //暫停執行waitTime秒
 Yield WaitForSeconds(waitTime);
 Print(「WaitAndPrint」+Time.time);
//WaitAndPrint做爲一個coroutine開始,並等待直到它完成
Yield WaitAndPrint(2.0);
Print(「Done」+Time.time);
}
C#例子代碼以下
//C#例子,在這個例子中咱們顯示如何並行調用
//一個coroutine並繼續執行這個函數
void Start(){
//0秒後,打印」Starting0.0」
//0秒後,打印」Before WaitAndPrint Finishes0.0」
//2秒後,print」waitAndPrint2.0」
Print(「Starting」+Time.time);
StartCoroutine(WaitAndPrint(2.0F));
Print(「Before WaitAndPrint Finishes」+Time.time);
}
IEnumerator WaitAndPrint(float waitTime){
// 暫停waitTime秒
Yield return new WaitForSeconds(waitTime);
Print(「WaitAndPrint」+Time);
}
//c#例子
//在這個例子中咱們展現如何調用一個coroutine並等待直到它完成
IEnumerator Start(){
//0秒後,打印」strating0.0」
//2秒後,prints」WaitAndPrint2.0」
//2秒後,打印」Done 2.0」
Print(「Starting」+Time.time);
Yield return StartCoutine(WaitAndPrint(2.0f);
Print(「Done」+Time.time);
}
IEnumerator WaitAndPrint(float waitTime){
//暫停waitTime秒
 Yield return new WaitForSeconds(waitTime);
Print(「WaitAndPrint」+Time.time);
}
◆Function StartCoroutine(methodName: string, value: object=null): Coroutine
描述:開始爲methodName的Coroutine。
在大多數狀況下,你要用StartCoroutine的變體。然而,使用一個字符串方法名的StartCoroutine容許StopCoroutine使用一個特定的方法名稱。字符串級本的特定時它有較高的運行時開銷來開始coroutine,而且你只能傳遞一個參數。
//在則合格例子中咱們現實如何一個字符串名調用一個coroutine並中止它
Function Start(){
StartCoroutine(「DoSomething」,2.0);
Yield WaitForSeconds(1);
StopCoroutine(」DoSomething」);
}
Function DoSomething(someParameter: float){
While(true)
{
Print(」DoSomething Loop」);
Yield
}
}
◆Function StopAllCoroutines(): void
描述:中止全部運行在這個行爲上的Coroutine。
//開始coroutine
StartCoroutine(「DoSomething」);
//緊跟着取消coroutine
Function DoSomething(){
While(true){
Yield;
}
}
StopAllCoroutines();
◆Function StopCoroutine(methodName: string): void
描述:中止全部運行在這個行爲上的名爲methodName的Coroutine。
請注意只使用一個字符串方法名的StartCoroutine才能使用StopCoroutine中止。
//在這個例子中咱們顯示如何使用一個字符串名調用一個coroutine並中止它
Function Start(){
StartCoroutine(「DoSomething」,2.0);
Yield WaitForSeconds(1);
StopCoroutine(」DoSomething」);
}
Function DoSomething(someParameter: float){
While(true)
{
Print(」DoSomething Loop」);
Yield

}
重載函數
◆Function Awake(): void
描述:當腳本實例被加載時,Awake 被調用。
在遊戲開始前,使用Awake 來初始化任何變量或遊戲狀態。在腳本實例的生命期內Awake 只被調用一次。Awake 在全部物體被初始化以後被調用,所以你能夠安全地告訴其餘物體或使用如GameObject.FindWithTag來查詢它們。每一個遊戲物體的Awake 以隨機的順序被調用。所以,你應該使用Awake 來再腳本之間設置引用,並使用Start來傳遞消息。Awake 老是在任何Start函數以前調用。這容許你調整腳本的初始化順序。Awake 不能做爲一個Coroutine
注意對於C#哈Boo用戶:使用Awake 而不是構造函數來初始化,由於組件的序列化狀態在構造的時候尚未肯定。Awake 只被調用一次,就像構造函數。
Private var target: GameObject;
Function Awake(){
Target=GameObject.FindWithTag(‘」Player」)
}
Awake不能做爲一個coroutine。
◆Function FixedUpdate (): void
描述:若是MonoBehaviour被啓用,這個函數將以固定的幀率調用。
當處理Rigidbody是應該使用FixedUpdate而不是使用Update。例如,當添加一個力到剛體時,你必須在FixedUpdate內以固定的幀率應用而不是在Update內。
//應用一個向上的力到剛體
Function FixedUpdate(){
Rigidbody.AddForce(Vector3.up);
}
力偉到從上一次調用Update的消逝時間,使用Time.deltaTime,這個函數只在Behaviour被啓用時調用。重載這個函數,以便給你的組件提供功能。
◆Function LateUpdate (): void
描述:若是該Behaviour被啓用,LateUpdate將在每幀中調用。
LateUpdate在全部Update函數被調用後調用。這可用於調整腳本執行順序。例如,一個跟隨相機應該老是在LateUpdate中實現,由於他跟蹤Update中移動的物體。
//向前以1米/秒的速度移動物體
Function LateUpdate (){
transfor.Translate(0,0,Time.deltaTime*1);
}
爲了獲得從最後一個調用LateUpdate的消逝時間,使用Time.deltaTime。若是該Behaviour被啓用,該函數將在每幀中調用。重載這個函數,以便給你的組件提供功能。
◆Function OnApplicationPause(pause: bool): void
描述:當玩家暫停時發送到全部遊戲物體。
OnApplicationPause能夠是一個coroutine,簡單地在這個函數中使用yield語句。
◆Function OnApplicationQuit(): void
描述:在應用退出以前發送到全部遊戲物體。
在編輯器中當用戶中止播放模式時這個被調用。在網頁播放器中當web被關閉時這個函數被調用。
◆Function OnBecameInvisible(): void
描述:OnBecameInvisible函數在這個渲染上的腳本。OnBecameVisible和OnBecameInvisible能夠用於只須要在須要在物體可見時才進行的計算。
//當它不可見時禁用這個行爲
Finction OnBecameInvisible(){
Enabled=false;
}
OnBecameInvisible能夠是一個coroutine,簡單地在這個函數中使用yield語句。當在編輯器中運行時,場景試圖相機也會致使這個函數被調用。
◆Function OnBecameVisible(): void
描述:OnBecameVisible函數在這個渲染器對任何相機變得可見時被調用。
這個消息被髮送到全部附加在渲染器上的腳本。OnBecameVisible和OnBecameInvisible能夠用於只須要在須要在物體可見時才進行的計算。
//當它不可, 見時禁用這個行爲
Finction OnBecameVisible(){
Enabled=false;
}
OnBecameVisible能夠是一個coroutine,簡單地在這個函數中使用yield語句。當在編輯器中運行時,場景試圖相機也會致使這個函數被調用。
◆Function OnCollisionEnter(collisionInfo: Collision): void
描述:
當這個碰撞器/剛體開始接觸另外一個剛體/碰撞器時OnCollisionEnter被調用。
相對於OnTriggerEnter,OnCollosionEnter傳遞Collision類而不是Collider,Collision類包含接觸點,碰撞速度等細細。若是在函數中不使用CollisionInfo,省略CollisionInfo參數以免不西藥的計算。注意若是碰撞器附加了一個非動力學剛體,也只發送碰撞事件。
Function OnCollisionEnter(collision: Collision){
//調試繪製全部的接觸點和法線
For(var contact: ContactPoint in collision.oontacts){
Debug.DrawRay(contact.point, contact.normal, Color.white);
}
//若是碰撞物體有較大的衝擊就播放聲音
If(collision.relativeVelocity.magnitude>2)
Audio.Play();
}
OnCollisionEnter能夠是一個coroutine,簡單地在這個函數中使用yield語句。
◆Function OnCollisionExit(collisionInfo: Collision): void
描述:當這個碰撞器/剛體開始接觸另外一個剛體/碰撞器時OnCollisionEnter被調用。
相對於OnTriggerExit,OnCollosionExit傳遞Collision類而不是Collider. Collision類包含接觸點,碰撞速度等細細。若是在函數中不使用CollisionInfo,省略CollisionInfo參數以免不西藥的計算。注意若是碰撞器附加了一個非動力學剛體,也只發送碰撞事件。
Function OnCollisionExit(collision: Collision){
Print(「No longer in contact with」+collisionInfo.transform.name);
}
OnCollisionExit能夠是一個coroutine,簡單地在這個函數中使用yield語句。
◆function OnCollisionStay(collisionInfo:collision):void
描述:對於每一個與剛體碰撞器相觸碰的碰撞器剛體,OnCollisionStay將在每一幀中被調用。
相對於OnTriggerStay,OnCollisionStay 傳遞Collision類而不是Collider.Collision類包含接觸點,碰撞速度等細節。若是在函數中不使用collisionInfo省略collisionInfo參數以免不要必要的計算。注意若是碰撞器附加了一個非動力學剛體,也只發送碰撞事件。
function OnCollisionStay(CollisionInfo:Collision){
 //調試繪製全部的接觸點和法線
 for (var contact:ContactPoint in collision.contacts){
  Debug.DrawRay(contact.point,contact.normal,Color.white);
 }
}
OnCollisionStay能夠是一個coroutine,也簡單地在這個函數中使用yield語句
◆function OnConnectedToServer():void
描述:當成功連接到服務器時在客戶端調用這個函數。
function OnConnectedToServer(){
Debug.Log(「Connected to server」);
//發送到本地玩家名稱到服務器
}
◆function OnControllerColliderHit(Hit:controllerColliderHit):void
描述:在移動的時候,控制器碰到一個碰撞器時,OnControllerColliderHit被調用。
這能夠用來在角色碰到物體時推開物體。
//這個腳本推開全部角色碰到物體時推開物體
Var pushPower=2.0;
Function OnControllerColliderHit(hit: OnControllerColliderHit){
 Var body:Rigidbody=hit.collider.attachedRigidboby;
 //無剛體
 If(body==null||body.isKinematic)
  return;
//不推開咱們身後的物體
If(hit.moveDirection.y<-0.3)
 Return;
//從移動方向計算推的方向
//只推開物體到旁邊而不是上下
Var pushDir=Vector3(hit.moveDirection.x,0,hit.moveDirection.z)
//若是知道角色移動有多快
//而後你就能夠用它乘以推進速度
//使用推力
Body.velocity=pushDir*pushPower;
}
◆function OnDisable():void
描述:當這個行爲禁用或不活動時這個函數被調用。
當物體被銷燬的時候這個函數也會被調用並能夠用於任何清理的代碼。當腳本在編譯結束後被加載時,OnDisable將被調用,而後腳本加載完成後OnEnable被調用。
Function OnDisable(){
Print("scrip was remove」);
}
OnDisabe 不能做爲一個coroutine.
◆function OnDisconnectedFromServer(mode:NetworkDisconnection):void
描述:當連接掛失或服務器斷開時在客戶端用這個函數。
Function OnDisconnectedFromServer(info.NetworkDisconnection){
 Debug.Log(「Disconnected from server」+info);
}
◆function OnDrawGizmos():void
 描述:若是你想繪製可被點的Gizmos時,實現OnDrawGizmos,
 這容許你在場景中快速選擇重要的物體。
//在物體的位置上繪製光源燈泡
function OnDrawGizmos(){
 Gizmos.DrawIcon(transform.position,」light Gizmo.tiff」);
}

◆function OnDrawGizmosSelected():void
描述:若是你想在物體被選擇時繪製gizmos,實現這個OnDrawGizmosSelected。
Gizmos只在物體被選擇的時候繪製。Gizmos不能點選。這能夠設置更容易,例如
一個爆炸腳本能夠繪製一個球顯示爆炸半徑。
var explosionRadius=5.0;
function OnDrawGizmosSelected(){
//選中的時候顯示爆炸半徑
 Gizmos.color=Color.white;
 Gizmos.DrawSphere(transfom.position,explosinRadius);
}
◆function OnEnable():void
描述:當物體啓用或激活時這個函數被調用
function OnEnbale(){
 print(「script was enabled」);
}
◆function OnFailedToconnect(error:NetworkConnectionError);void
描述:當連接由於某些緣由失敗時在客戶端上調用這個函數。
失敗的緣由做爲NetworkConnectionError枚舉傳入。
function OnFailedToconnect (info:NetworkConnectionError){
 Debug.Log(「Could not connect to server」+error);
◆function OnFailedToConnectToMasterServer (error:NetworkConnectionError):void
描述:當連接到主服務器出現問題時在客戶端或服務器調用這個函數。
錯誤的緣由做爲NetworkConnectionError枚舉傳入
function OnFailedToConnectToMasterServer(info:NetworkConnectionError){
 Debug.Log(「Could not connect to master server」+info);
}
◆function OnGUI():void
描述:OnGUI被調用來渲染並處理GUI事件。
若是Monobehaviour的啓用屬性被設置爲假,OnGUI()將不會被調用。
Function OnGUI(){
 If(GUI>Button(Rect(10,10,150,100),」I am a button」)){
  Print(「You clicked the button」)
 }
}
參考GUI Scrtipting Guide 獲取更多信息。
◆function ONJointBreak(breakForce:float):void
描述:當附加到相同遊戲物體上的關節被斷開時調用
當一個力大於這個關節的breakForce時,關節將被斷開,當關節斷開時,OnJointBreak將被調用,應用到關節的斷開力將被傳入,OnJointBreak以後這個關節將自動從遊戲物體移除。參見:Joint.breakForce
◆function OnLevelWasLoaded(level:int):void
描述:這個函數在一個新的關卡被加載以後被調用
//level是被加載的關卡的索引。使用菜單項File>Build Settings來查看索引引用的是那個場景,參見:Application.LoadLevel
//當關卡13被加載的關卡的索引」Woohoo」
Function OnLevelWasLoaded(level:int){
If(level==13){
 Print(「Woohoo」);
}
}
OnLevelWasLoaded 能夠是一個coroutine,簡單地在這個函數中使用yield語句。
◆function OnMouseDown():void
描述:當用戶在GUIElement或Collider上按下鼠標按鈕時OnMouseDown被調用
這個事件被髮送到全部附加在Collider或GUIElement的腳本上。
//加載名爲「someLevel」的關卡
//來響應用戶單擊
Function OnMouseDown(){
 Application.LoadLevel(「SomeLevel」);
}
這個函數不會在屬於Ignore Raycast的層上調用。
OnMouseDown能夠是一個coroutine,簡單地在這個函數中使用yield語句。這個事件被髮送到的有附加在Collider或GUIElement的腳本上。
◆function OnMouseDrag():void
描述:當用戶在GUIElement或Collider上點擊並按住鼠標時OnMouseDrag被調用。
當鼠標被按下時OnMouseDrag將在每幀中被調用。
//按住鼠標時使用材質顏色變暗
function OnMouseDrag(){
 renderer.material.color==Color.white*Time.deltaTime;
}
這個函數不會在屬於Ignore Ray的層被調用 。
OnMouseDrag能夠是一個coroutine,簡單地在這個函數中使用yield語句。這個事件被髮送到全部附加在collider或GUIElement的腳本上。
◆Function OnMouseEnter():void
描述:當鼠標進入GUIElement或collider時,OnMouseEnter被調用。
//附加這個腳本到網格
//使用當鼠標通過這個網格時使它變紅
Function OnMouseEnter(){
 Renderer.material.color=Color.red;
}
這個函數不會在屬於Ignore Raycast的層上調用。
OnMouseEnter能夠是一個coroutine,簡單地在這個函數中使用yield語句。這個事件被髮送全部附加在Collider或GUIElement的腳本上。
◆function OnMouseExit():void
描述:當鼠標再也不位於GUIElement或Collider上時,OnMouseExit被調用。
OnMouseExit與OnMouseEnter相反
//當鼠標在網格時
//漸變材質的紅色組件爲零
Function OnMouseExit(){
 Rnderer.material.color=Color.white;
}
這個函數不會在屬於Ignore Raycast的層上調用。
OnMouseExit能夠是一個coroutine,簡單地在這個函數中使用yield語句。這個事件被髮送到全部附加在Collider或GUIElement上腳本上。
◆function OnMouseOver();void
描述:當鼠標在GUIElement或Collider上時,OnMouseOver被調用。
//當鼠標在網格上時
//漸變材質的紅色組件爲零
function OnMouseOver(){
 renderer.material.color==0.1*Time.deltaTime;
}
這個函數不會在屬於Ignore Raycast的層上調用。
OnMouseOver能夠是一個coroutine,簡單地在這個函數中使用yield語句,這個事件被髮送到全部附加在Collider或GUIElement的腳本上。
◆function OnMouseUP():void
描述:當用戶已經鬆開鼠標按鈕時OnMouseUp調用。
在GUIElement或Collider上鬆開鼠標時OnMouseUp被調用。
//加載名爲」someLevel」的關卡
//來響應用戶單擊
function OnMouseUp(){
 Application.LoadLevel(「SomeLevel」);
}
這個函數不會在屬於Ignore Raycast的層上調用。
OnMouseUp能夠是一個coroution,簡單地在這個函數yield語句。這個事件被髮送到全部附加在Collider或GUIElement的腳本上。
◆function OnNetworkInstantiate(info:NetworkMessageInfo):void
描述:當一個物體使用Network.Instantiate進行網絡初始化在該物體上調用這個函數。
這個對於禁用或啓用一個已經初始化的物體組件來講是很是有用的,它們的行爲取決與它們是在本地仍是在遠端。
 注意:在NetworkMessageInfo裏的networkView屬性不能在OnNetworkInstantiate裏使用。
function OnNetworkInstantiate(info:NetworkMessageInfo){
 Debug.Log(「New object instantiated by」+info.sender);
}
◆function onParticleCollision(other:GameObject):void
描述:當一個粒子碰到一個碰撞器時OnParticleCollision被調用。
這個能夠在遊戲物體被粒子擊中時應用傷害到它的上面,這個消息被髮送到全部附加到
WorldParticleCollider 的腳本上和被擊中的Collider上,這個消息只有當你在
WorldParticleCollider檢視面板中啓用了sendCollisionMessage時纔會被髮送。
//應用力到全部被粒子擊中的剛體上
function OnParticleCollison(other:GameObject){
 var body=other.rigidbody;
 if(body){
  var direction=other.transform.position+transform.position;
  direction=direction.normalized;
  body.AddForce(direction*5);
 }
}
OnParticleCollision能夠是一個coroutine,簡單地在這個函數中使用yield語句。
◆function OnPlayConnected(player:NetworkPlayer):void
描述:當一個新玩家成功鏈接在服務器上調用這個函數。
private var playerCount:int=int=0;
function OnPlayerConnect(player.NetworkPlayer){
Debug.log(「Player」+playerCount+++」connected from」+player.ip.Address+」:」+player.port);
//用玩家的信息構建一個數據結構
}
◆function OnPlayerDisconnected(player:NetworkPlayer):void
描述:當玩家從服務器斷開時在服務器上調用這個函數。
function OnPlayerDisconnected (player:NetworkPlayer){
 Debug.Log(「Clean up after player」+player);
 Network.RemoveRPcs(player);
 Network.DestroyPlayerObject(player);
}
◆function OnpostRender():void
描述:OnPostRender在相機渲染場景以後調用。
只有腳本被附加到相機上時纔會調用這個函數。OnPostRender能夠是一個coroutine,
簡單地在這個函數中使用yield語句。
OnPostRender在相機渲染完全部它的物體以後被調用。若是你想在全部相機和GUI被渲染以後作一些事情,使用WaitForEndFrame coroutine
參見:OnPreRender,WaitForEndOfFrame
//當附加到機時,將消除
//相機紋理的alpha通道爲純白色
//若是你有一個渲染紋理並想將它顯示在GUI上時能夠使用這個函數
Parvate var mat:Material;
function OnPostRender(){
 //建立一個只渲染白色到alpha通道的着色器
 If(mat)
 {
 Mat=new Material(「Shader Hidden SetAlpha」+)
 「SubShader{「+」pass{」+」ZTest Always Cull off Zwrite Off」+」ColorMaskA」+」Color(1,1,1,1)」+」}」+」}」
+」}」);
}
}
// 用上述着色器繪製一個全屏四邊形
GL.PushMatrix();
GL.LoadOrtho();
for(var i=0;i<mat.pssCount;++i){
 mat.SetPass(i);
 GL.Begin(GL.QUADS);
 GL.Vertex3(0,0,0.1);
 GL.Vertex3(1,0,0.1);
 GL.Vertex3(1,1,0.1);
 GL.Vertex3(0,1,0.1);
 GL.End();
 }
 GL.PopMatrix();
}
◆function OnpreCull():void
描述:OnPreCull在相機開始裁剪場景以前調用
裁剪決定那個物體對於相機來講是可見的。OnPreCull僅僅在這個過程之間被調用。
只有腳本被附加到相機上時纔會調用這個函數
若是你想改變相機的視覺參數(例如fieldOfView或者僅是變換),就在這裏作這個。
場景物體的可見性將基於相機參數在OnPerCull以後肯定。
? function OnRender():void
描述:OnpreRender在相機開始渲染場景以前調用。
只用腳本被附加到相機上時纔會調用這個函數。
注意如是果你在這裏改變了相機的視野參數(例如fieldOfView),它們將影響下一幀。用OnPreCull代替。OnPreRender能夠是一個coroutine,簡單地在這個函數中使用yield語句。
參見:OnPostRender
? function OnRenderImage(source:RenderTexture,destination:RenderTexture):void
描述:OnRenderImage在全部渲染完成後被調用,來渲染圖片的後期處理效果(限於Unity Pro)
這容許你使用基於shader的過濾器來處理最後的圖片。進入圖片是source渲染紋理結果是destination渲染紋理。當有多個圖片過濾附加在相機上時,它們序列化地處理圖片,將第一個過濾器的目標做爲下一個過濾器的源。
這個消息被髮送到全部附加在相機上腳本。
參見:Unity Pro 中的image effects
◆function OnRenderObject(queueindex:int):void
描述:OnRenderObject被用來渲染你本身的物體,使用Graphics.DarwMesh或者其餘函數。
queueIndex指定用來渲染物體的render queue。能夠使用RenderBeforeQueues屬性來指定你想繪製這個物體到哪裏渲染隊列。
◆function OnserializeNetworkView(stream:Bitstream.info:NetworkMessageInfo):void
描述:用來在一個被網絡視監控的腳本中自定義變量同步
它自動決定被序列化的變量是否應該發送或接收,查看下面的例子獲取更好的描述:
//這個物體的生命信息
Int currentHealth;
function OnSerializeNetworkView(stream:BitStream,info:NetworkMessageInfo){
if(stream.isWriting){
  int health=currentHealth;
  stream.Serialize(health);
 }
 else{
  int health=0;
  stream.Serialize(health);
  currentHealth=health;
 }
}
◆function OnServerInitialized():void
描述:當Network.InitializeServer被調用並完成時,在服務器上調用這個函數。
function OnServerInitialized(){
 Debug.Log(「Server initialize and ready」);
}
◆function OnTriggerEnter(other:Collider):void
描述:當這個Collider other進入trigger時OnTriggerEnter被調用。
這個消息被髮送到這個觸發器碰撞器和接觸到觸發器的剛體(或者是碰撞器若是沒有剛體)。注息若是碰撞器附加了一個剛體,也只發送觸發器事件。
//銷燬全部進入該觸發器的物體
function OntriggerEnter(other:Collider){
 Destroy(other.gameObject);
}
OnTriggerEnter能夠是一個coroutine簡單地在這個函數中使用yield語句。
◆function OnTriggerExit(other:Collider):void
描述:當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
這個消息被髮送到觸發和接觸到這個觸發器的碰撞器。注意若是碰撞附加了一個剛體,也只發送觸發器事件。
//觥毀全部離開該觸發器的物體
function OntriggerExit (other:Collider){
Destroy(other.gameObject);
}
OnTriggerExit能夠是一個coroutine,簡單地在這個函數中使用yield語句。
◆function OnTriggerStay(other:Collider):void
描述:對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會在每一幀中都被調用。
這個消息被髮送到觸發器和接觸到這個觸發器的碰撞器。注意若是碰撞器附加了一個剛體,也只發送觸發器事件。
//對所進入這個觸發器的剛體使用一個向上的力
function OnTriggerStay(other:Collider){
 if(other.attachedRigidbody){
  other.attachedRigidbody.AddForce(Vector3.up*10);
 }
}
OnTriggerStay能夠是一個coroutine,簡單地在這個函數中使用yield語句。
◆function OnWillRenderObject():void
描述:若是物體可見,每一個相機都會調用OnWiiRenderObject。
這個函數在裁剪過程當中被調用,在渲染全部被裁剪的物體以前被調用。能夠用這個來建立具備依賴性的渲染紋理,只有在被渲染的物體可見時才更新這個渲染紋理。做爲一個例子,水組件就使用這個。
Camera.current將被設置爲要渲染這個物體的相機
◆function Reset():void
描述:Reset在用戶點擊檢視面版的上下文菜單或者第一次添加該組件被調用。Reset只在編輯模式下調用。Reset最經常使用於在檢視面板中給定一個好的默認值
//設置target爲一個默認的值
//這能夠用於跟隨相機
var target:GameObject;
function Reset(){
 //若是target沒有賦值,設置它
 if(!target){
  target=GameObject.FindWithTag(「play」);
 }
}
◆function Start():void
描述:Start在全部Update方法被第一次調用前調用。
Start在行爲的生命期內只調用一次。Awake和Start的不一樣在於Start只在腳本實例被啓用時調用。這個容許你延遲全部初始化代碼,知道真正須要它們的時候,Awake老是在任何Start函數以前調用。這容許你調整腳本的初始化順序。Start不能做爲一個coroutine
 Start函數在全部腳本實例的Awake函數調用以後調用。
 //初始化target變量
 //target是私有的而且不能在檢視面板中編輯
parivate var target:GameObject;
function Start(){
 target=GameObject.FindWithTag(「Player」);
}
◆function Update():void
描述:若是MonoBehaviour被啓用,Update將在每幀中調用。
Update是最經常使用的函數,來實現任何遊戲行爲。
//向前以1米的速度移動物體
function Update(){
 transform.Translate(0,0,Time.deltaTime*1);
}
爲了獲得從最後一次調用Update的消逝時間,使用Time.deltaTime。若是該Behaviour
被啓用,該函數將在每幀中調用,重載這個函數,以便給你的組件提供功能。
繼承的成員
繼承的變量
endbled 啓用Behaviours被更新,禁用Behaviour不被更新
transform附加到這個GameObject的Transform(若是沒有null)
rigidbody 附加到這個GameObject的Rigidbody(若是沒有null)
camera             附加到這個GameObject的Camera(若是沒有null)
light  附加到這個GameObject的Light(若是沒有null)
animation            附加到這個GameObject的Animation(若是沒有null)
constantForce附加到這個GameObject的ConstantForce(若是沒有null)
renderer             附加到這個GameObject的Renderer(若是沒有null)
audio 附加到這個GameObject的Audio(若是沒有null)
guiText 附加到這個GameObject的GUIText(若是沒有null)
networkView附加到這個GameObject的NetworkView(只讀)(若是沒有null)
guiTexture附加到這個GameObject的GUITexture(只讀)(若是沒有null)
collider 附加到這個GameObject的Collider(若是沒有null)
hingeJoint附加到這個GameObject的HingeJoint(若是沒有null)
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有null)
gameObject這個組件附加的遊戲物體。一個組件老是附加到一個遊戲物體
tag  這個遊戲物體的標籤
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景或被用戶修改
繼承的函數
GetComponent           返回type類型組件,若是遊戲物體上附加了一個若是沒有返回
null。
GetComponentInChildren   返回type類型的組件,這個組件位於GameObject或任何它的子
物體上,使用深度優先搜索。 
GetComponentsInChildren  返回全部type類型的組件,這些組件位於GameObject或任何它
的子物體上。
GetComponents           返回GameObject上全部type類型的組件。
CompareTag              這個遊戲物體被標籤爲tag?
SendmessageUpwards      在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先上
調用名爲methodName方法
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用methodName
方法。
BroadcastMessage在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用
methodName方法。
GetInstanceID 返回該物體的實例ID。
繼承的類函數
Operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
 
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!=  比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
 Terrain
類,繼承自MonoBehaviour
渲染地形的Terrain
變量
◆var basemapDistance:float
描述:超出basemapDistance的高度圖,將使用預先計算的地解析度basemap。
這個能夠改善遠處塊的性能。Unity混合任意數量的地形紋理,使用條圖來渲染近處的高度圖。
function Start(){
 Terrain.activeTerrain.basemapDistance=100;
}
◆var castShadows:bool
描述:地形應該投射陰影?
◆var detailObjectDistance:float
描述:在這個距離內細節將被顯示。
function Start(){
 Terrain.activeTerrain.detailObjectDistance=40;
 }
◆var heightmapMaximumLOD:int
描述:讓你實質下降用於渲染的高度圖解析度
這個可用在低端的顯卡上並不會顯示最高的LOD地形。值爲0表示老是顯示最高細節。
值爲1表示三角形數量將減少到1/4,高度圖的解析度將是寬度和高度的一半。
function Start(){
 Terrain.activeTerrain.heightmapMaximumLOD=1;
}
◆var heightmapPixelError:float
描述:當切換LOD時大約有多少像素時地形將處於錯誤的狀況。
較高的值減小多邊形的繪製數量。
function Start(){
 Terrain.activeTerrain.heightmapPixelError=10;
}
◆var Lighting:Terrain.Lighting
描述:地形光照模式
參見:TerrainLighting枚舉,Terrain Lightmap,terrain Settings
◆var terrainData:TerrainData
描述:存儲在高度圖中的地形數據,地形紋理,細節網格和樹。
◆var treebillboardDistance:float
描述:到相機的距離超過這個值,樹只被做爲公告板渲染。
下降這個值將改善性能,可是使過分看起來更差由於公告板和樹的不一樣將更加明顯。
Function Start(){
 Terrain.activeTerrain.treeBillboardDistance=100;
}
◆var treeCrossFadeLength:float
描述:樹從公告變換到網格到網格的總距離增量。
下降這個值將使變換髮生的越快。設置爲0時,在從網格切換分告表示時將當即發生。
function Start(){
 Terrain.activeTerrain.treeCrossFadeLength=20;
}
◆var treeDistance:float
描述:渲染樹的最大距離。
這個值越高,越遠的樹將看到,運行的也更慢。
參見:Terrain.treeBillboardDistance
function Start(){
 Terrain.activeTerrain.treeDistance=2000;
}
◆var treeMaximumFull.ODCount:int
描述:全LOD時渲染樹的最大數量。
這個是一個簡單的設置用來阻止太多的樓以太高的解析度和密度被繪製。由於若是
treeMaximumFullLodCount太高,樹將不會消失,你應該修改treeBillboardDistance爲不
包含。
Function Start(){
 Terrain.activeTerrain.treeMaximumFullLODCount=200;
}
函數
◆function SampleHeight(worldPositon:Vector3):float
描述:在世界空間的給定位置處採樣高度。
function LateUpdate(){
 transfom.positon.y=Terrain.activeTerrain.SampleHeght(transfom.position);
}
◆function SetNeighbors(left:Terrain,top:Terrain,right:Terrain,bottom:Terrain):void
描述:容許你在相鄰地形間設置鏈接
這個確保LOD在相鄰地形上相同。注意,在一個地形上調用這個函數是不夠的,你須要在每一個地形上設置鄰居。
類變量
◆static var activeTerrain: Terrain
描述:激活的地形。這個是用來在場景中獲取主地形的快捷方式。
類方法
◆Static functin CreateTerrainGameObject(assignTerrain: TerrainData): GameObject
描述:從TerrainData建立一個包含碰撞器的地形。
繼承的成員
繼承的變量 
Enabled 啓用Behaviour被更新,禁用Behaviours不被更新。
transform 附加到該GameObject的Transform(沒有返回null)
rigidbody 附加到該GameObject的Rigidbody(沒有返回null)
camera 附加到該GameObject的Camera(沒有返回null)
light 附加到該GameObject的Light(沒有返回null)
animation 附加到該GameObject的Animation(沒有返回null)
constantForce 附加到該GameObject的ConstantForce(沒有返回null)
renderer 附加到該GameObject的Renderer(沒有返回null)
audio 附加到該GameObject的Audio(沒有返回null)
guiText 附加到該GameObject的GuiText(沒有返回null)
networkView 附加到該GameObject的NetworkView(沒有返回null)
guiTexture 附加到該GameObject的GuiTexture(沒有返回null)
collider 附加到該GameObject的Collider(沒有返回null)
hingeJoint 附加到該GameObject的HingeJoint(沒有返回null)
particleEmitter 附加到該GameObject的ParticleEmitter(沒有返回null)
gameObject 該組件所附加的遊戲物體。組件老是會附加到遊戲物體上
tag 該遊戲物體的標籤。
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數 
Invok e 在time秒調用methodName方法。
Invok Repeating 在time秒調用methodName方法。
CancelInvoke 取消全部在這個MonoBehaviour上的調用
IsInvoking 是否有任何對methodName的調用在等待?
StartCoroutine 開始一個coroutine
StopCoroutine 中止全部運行在這個行爲上的名爲methodName的coroutine
StopAllCoroutines 中止全部運行在這個行爲上的coroutine
GetComponent  返回type類型的組件,若是遊戲物體上附加了一個,若是沒有
  返回null。
GetComponcetInChildren 返回type類型的組件,這個組件位於GameObject或任何它的子
  物體上。使用深度優先搜索
GetComponcetsInChildren 返回全部type類型組件,這些組件位於Gameobject或任何它的
  子物體上。
GetComponents  返回GameObject上全部type類型的組件。
CompareTag  這個遊戲物體被標籤爲tag?
SendMessageUpwards  在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先上調用
  名爲methodName方法。
SendMessage  在這個遊戲物體上的每一個MonoBehaviour上調用methodName
方法。
BroadcastMessage在這個遊戲物體或其2任何子的每一個MonoBehaviour上調用
methodName方法。
GetInstanceID 返回該物體的實例ID。
繼承的消息傳遞
Update  若是MonoBehaviour被啓用,Update將在每幀中
調用。
LateUpdate 若是該Behaviour被禁用,LateUpdate將在每幀中
調用。
FixedUpdate 若是MonoBehaviour被啓用,這個函數將在每幀中調用。
Awake  當腳本實例被加載時,Awake被調用。
StartStart在全部Update方法被第一次調用前調用。
Reset  Reset在用戶點擊檢視面板的上下文菜單或第一次添加該組件時
被調用。
OnMouseEnter當鼠標進入GUIElement或Collider時,OnMouseEnter被調用。
OnMouseOver 當鼠標在GUIElement或Collider時,OnMouseEnter被調用。
OnMouseExit 當鼠標再也不位於GUIElement或Collider上時,OnMouseExit被調用。
OnMouseDown當用戶在GUIElement或Collider上按下鼠標按鈕時
,OnMouseDown被調用。
OnMouseUp 當戶已經鬆開鼠標按鈕時OnMouseUp被調用。
OnMouseDrag 當用戶在EUIElement或Collider上點擊並按住鼠標時
OnMouseDrag被調用。
OnTriggerEnter當這個Collider other進入trigger時OnTriggerEnter被調用。
OnTriggerExit 當這個Collider other中止觸碰trigger進OnTriggerExit被調用。
OnTriggerStay 對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay
會在每一幀中都會被調用。
OnCollisionEnter當這個碰撞器剛體開始觸碰另外一個剛體碰撞器
 
時OnCollisionEnter被調用。
OnCollisonExit 對於每一個與碰撞器剛體中止觸碰另外一個剛體碰撞器時
OnCollisionExit被調用。
OnCollisonStay對於每一個與剛體碰撞器相觸的碰撞器剛體OnCollisonStay將在每
一幀中被調用。
OnControllerColliderHit  在移動的時候,控制器碰到一個碰撞器時OnControllerColliderHit
被調用。
OnJointBreak 當附加到相同遊戲物體上的關節被斷開時調用。
OnParticleCollision當一個粒子碰到一個碰撞器時OnParticleCollision被調用。
OnBecameVisibleOnBecamevisible函數在這個渲染器對任何相機變得可見時被
調用。
OnBecameInvisibleOnBecamevisible函數在這個渲染器對任何相機變得不可見時被
調用。
OnLevelWasLoaded這個函數在一個新的關卡被加載以後被調用。
OnEnable  當物體啓用或激活時這個函數被調用。
OnDisable 當這個行爲禁用或不活動時這個函數被調用。
OnPreCull OnPreCull在相機開始裁剪場景以前調用。
OnPreRender OnPreRender在相機開始渲染場景以後調用。
OnPostRender OnPostRender 在相渲染場景以後調用。
OnRenderObjectOnRenderObject被用來渲染你本身的物體,使用
Graphics.DrawMesh或者其餘函數。
OnWillRenderObject  若是物體可見,每一個相機都會調用OnWillRenderObject。
OnGUI  OnGUI被調用來渲染並處理GUI事件。
OnRenderImageOnRenderImage在全部渲染完成後被調用,來渲染圖片。
OnDrawGizmosSelected  若是你想在物體被選擇時繪製gizmos,實現這個
OnDrawGizmosSelected.
OnDrawGizmos若是你想繪製可被點選的gizmos時,實現OnDrawGizmos。
OnApplicationPause  當玩家暫停時發送到全部遊戲物體。
OnApllicationQuit在應用退出以前發送到全部遊戲物體。
OnPlayerConnected  當一個新玩家成功鏈接時在服務器上調用這個函數。
OnServerInitialized當Network.InitializeServer被調用並完成時,在服務上調用這
個函數。
OnConnectedToServer  當成功連接到服務器上時在客戶端調用這個函數。
OnPlayerDisconnected  當玩家從服務器斷開時在服務器上調用這個函數。
OndisconnectedFormServer 當連接丟失或服務器斷開時在客戶端調用這個函數。
OnFailedToConnect當連接由於某些原失敗時在客戶端上調用這個
 
函數
OnFailedToConnectToMasterServer   當連接到主服務器出現問題時在客戶端或服務器端調用這個函數。
OnNetworkInstantiate   當一個物體使用Network.Instantiate進行網絡初始化時在該物體上調用這個函數。
OnSerializeNetworkView   用來在一個被網絡視監控的腳本中自定義變量同步。
繼承的類函數
operator bool      這個物體存在嗎?
Instantiate        克隆original物體並返回這個克隆。
Destroy            移除一個遊戲物體,組件或資源。
DestroyImmediate   當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType  返回全部類型爲type的激活物體。
FindObjectOfType   返回第一個類型爲type的激活物體。
operator ==        比較兩個物體是否相同。
operator !=        比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
NetworkView
類,繼承自Behaviour
網絡視是多用戶遊戲的綁定物。
使用這個你能夠準肯定義什麼應該經過網絡同步,和如何同步,遊戲物體能夠有NetworkView組件,該組件能夠被定義爲觀察物體的其餘組件,能夠在Network View manual page和component reference page獲取更多信息。
變量
◆ var group : int
描述: 這個網絡視所在的網格組。
全部的網格消息和RPC調用經過這個組。
Function Awake(){
//經過組1發送來自這個網格視的全部消息
Network View.group=1;
}
◆ var isMine : bool
描述:這個網格視是有這個物體控制嗎?
Function OnNetworkInstantiate(info: NetworkMessageInfo){
If{networkView.isMine}
Debug.Log(「New object instanted by me」);
Else
Debug.Log(「New object instantiated by」+info.sender);
}
◆ var obseved : Component
描述:網絡視監控的組件。
 
//打印含有由數組中給出的viewID的對象的名稱(Print the names of the objects which have the view IDs given in the array)
Function PrintNames(viewIDs: Array){
   For (var ID: NetworkViewID in IDs){
       Debug.log(「Finding」+ID);
       Var view : NetworkView = networkView.Find(ID);
       Debug.log(view.observed.name);
}
}
◆ var owner : NetworkPlayer 
描述: 擁有這個網絡視的NetworkPlayer
function OnNetworkInstantiate(info: NetworkMessageInfo){
   if(!networkView.isMine)
       Debug.log(「New object instantiated by」 + networkView.owner);
}
◆ var stateSynchrohization: NetworkStateSynchronization
描述:爲這個網絡視設置的NetworkStateSynchronization類型。
確保NetworkView在全部機器上使用相同可靠的方法是你的責任。在狀態同步已經發生後不要在運行時改變狀態的可靠性。
◆ var viewID: NetworkViewID
描述:這個網絡視的ViewID。
函數
◆ function RPC(name: string, mode: RPCMode, params args:object[]): void
描述:在全部鏈接端調用一個RPC函數。
調用的函數必須有@RPC標誌([RPC]用於C Sharp)。NetworkView必須附加到GameObject,在這個物體上RPC函數可以被調用。NetworkView用於其餘什麼地方或者是僅僅用於RPC函數是沒有關係的。若是他僅僅用於RPC函數,state synchronization應該被關掉。Ovserved屬性設置爲none,在整個場景中RPC函數的名稱應該是惟一的,若是不一樣腳本的兩個RPC函數具備相同的名稱,僅有一個會被調用。RPC調用老是確保執行的順序與他們調用的順序相同。用NetworkView.group爲NetworkView設置的通訊用,被用於RPC調用。爲了獲取RPC自身的信息,能夠添加一個NetworkMessageInfo參數到函數申明中,它將自動包含這個信息。這樣的作的時候你不須要改變調用RPC函數的方式,能夠參考manual的RPC部分以便獲取更多關於RPC的信息。可用的RPC參數爲int,float,string,NetworkPlayer,NetworkViewID,Vector3和Quaternion。
var cubePrefab : Transform;
function OnGUI()
{
   if (GUILayout.Button(「SpawnBox」))
   {
       var viewID = Netwok.AllocateViewID();
 
       networkView.RPC(「SpawnBox」,
                   RPCMode.AllBuffered,
                   viewID,
                   transform.position);
    }
}
@RPC
function SpawnBox (viewID : NetworkViewID, location : Vector3) {
// Instantate the prefab locally
var clone : Transform;
clone = Instantiate(cubePrefab, location, Quaternion.identity);
var nView : NetworkView;
nView = clone.GetComponent(NetworkView);
nView.viewID = viewID;
}
◆ function RPC(name: string, target: NetworkPlayer, params args: object[]): void
描述:在特定的玩家端調用RPC
◆ function SetSeope(player: NetworkPlayer, relevancy: bool): bool
描述:相對於一個特定的網絡玩家這是網絡視的範圍
這能夠用來實現相關設置,設置它爲真假取決於你是否想這個玩家從網絡接收更新。
類方法
◆ static function Find(viewID: NetworkViewID): NetworkView
描述:基於NetworkViewID查找一個網絡視。
// 打印物體的名稱,這些物體具備數組中給定的視ID (Print the names of the objects which have the view IDs given in the array)
function PrintNames(viewIDs : Array) {
for (var ID: NetworkViewID in IDs) {
Debug.Log("Finding "+ID);
var view : NetworkView = networkView.Find(ID);
Debug.Log(view.observed.name);
}

繼承的成員
繼承的變量
enabled 啓用Behaviours被更新,禁用Behaviours不被更新。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camera 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce    附加到這個GameObject的ConstantForce(若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject       這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag              這個遊戲物體的標籤。
name             對象的名稱。
hideFlags        該物體是否被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent             返回type類型的組件,若是遊戲物體上附加了一個,若是沒有返回null。
GetComponentInChildren   返回type類型的組件,這個組件位於GameObject或任何它的子物體上,使用深度優先搜索。
GetComponentsInChildren  返回全部type類型的組件,這些組件位於GameObject或任何它的子物體上。
GetComponents            返回GameObject上全部type類型的組件。
CompareTag               這個遊戲物體標籤爲tag?
SendMessageUpwards       在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先上調用名爲methodName方法。
SendMessage              在這個遊戲物體的每一個MonoBehaviour上調用methodName方法。
BroadcastMessage         在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
繼承的類函數
operator bool      這個物體存在嗎?
Instantiate        克隆original物體並返回這個克隆。
Destroy            移除一個遊戲物體,組件或資源。
DestroyImmediate   當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType  返回全部類型爲type的激活物體。
FindObjectOfType   返回第一個類型爲type的激活物體。
operator ==        比較兩個物體是否相同。
operator !=        比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
Projector
類,繼承自Behaviour。
腳本界面就是一個Projector組件。
這個Projector可用於場景工程中的任何材料——就像一個真實的世界。這類的屬性值就是Projector的檢查值。
它能夠用來執行斑點或投射陰影。你也能夠投射紋理動畫或渲染紋理在電影場景的另外一個部分。全部物體投影的視圖在其觀點和提供的材料中。
沒有快捷方式在遊戲對象或者組件來訪問Projector,因此你必須使用GetComponent來作:
function Start() {
// 獲取projector
Var proj.Projector=GetComponent(Projector);
//使用這個
Proj.nearClipPlane=0.5;
}
參見:projector.component;
變量
◆var aspectRatio:float
描述:投影的長寬比。
這個是投影的寬度除以高度。比爲1.0使這個投影爲正方形:比爲2.0使得寬爲高的2倍。
function Start() {
var proj : Projector = GetComponent (Projector);
proj.aspectRatio = 2.0;
}
 參見:projector component.
◆var farClipPlane:float
描述:遠裁剪面的距離。
投影器將不會影響任何運離這個距離的物體。
function Start() {
var proj : Projector = GetComponent (Projector);
proj.farClipPlane = 20.0;
}
參見:projector component
◆var fieldofView:float
描述:投影的視野,以度爲單位。
這是垂直視野:水平FOV取決於aspectRatio。當投射器是正交時fieldOfView被忽略
(參考orthographic)
function Start() {
var proj : Projector = GetComponent (Projector);
proj.fieldOfView = 80.0;
}
 參見:project component
◆var ignoreLayers:int
描述:那個物體層將這個投射器忽略。
參見layer mask
缺省爲零,沒有層被忽略,在ignoreLayers中設置的每一個位將使這個層不會被投射器影
響。
function Start() {
var proj : Projector = GetComponent (Projector);
//使投射器忽略默認的(0)層
proj.ignoreLayers = (1<<0);
}
參見:projector component,Layers.
◆var material:material
描述:這個材質將被投射到每一個物體上
 
 若是沒有設置材質,投射器不會作任何事情,Standard Assets中的Blob.Shadow文件夾包含一個投射器材質的例子
 參見:projector component,Material類。
◆var nearClipPlane:float
描述:近裁剪面的距離。
投影器將不會影響任何比這個距離近的物體。
function Start() {
var proj : Projector = GetComponent (Projector);
proj.nearClipPlane = 0.5;
}
 參見:projector component;
◆var orthographic:bool
描述:投射是正交的(true)仍是透視的(false)?
當正交爲true時,投影被orghographicSize定義。
當正交爲false時,投射被fieldOfView定義
function Start() {
var proj : Projector = GetComponent (Projector);
proj.orthographic = true;
}
參見:projector component
◆var orthographicSize:float
描述:在正交模式下投射的一半尺寸。
這個爲投影體垂直大小的一半。水平投射的大小取決於aspectRatio,投射器不是正交時,
orthographicSize被忽略(參考orthographic)
function Start() {
var proj : Projector = GetComponent (Projector);
proj.orthographic = true;
proj.orthographicSize = 2.0;
}
參見:projector component
繼承的成員
繼承的變量
enabled              啓用Behaviours被更新,禁用Behaviours不被更新。
transform             附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody             附加到這個GameObject的Rigidbody(若是沒有爲null)。
camera               附加到這個GameObject的Camera(若是沒有爲null)。
light                 附加到這個GameObject的Light(若是沒有爲null)。
animation            附加到這個GameObject的Animation(若是沒有爲null)。
constantForce         附加到這個GameObject的ConstantForce(若是沒有爲null)。
renderer             附加到這個GameObject的Renderer(若是沒有爲null)。
guiText              附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
Skybox
類,繼承自Behaviour
Skybox component的腳本接口
天空盒只有material屬性
參見:skybox component
變量
◆var material:Material
描述:該天空盒使用的材質。
參見:skybox component
繼承的成員
繼承的變量
Enabled 啓用Behaviours被更新,禁用Behaviours不被更新。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponet返回type類型的組件,若是遊戲物體上附加一個,若是沒有返
                      回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
collider
類,繼承自Component
全部碰撞器的基類
參見:BoxCollider,SphereCollider,CapsuleCollider,MeshCollider,PhysicCollider,Rigidbody.
若是你打算常常移動一個碰撞器,建議再附加一個運動學剛體。
變量
◆var attachedRigidbody:Rigidbody
描述:該碰撞器所附加的剛體。
若是碰撞器附加到非剛體上返回null。
碰撞器被自動連接到剛體,這個剛體附加在與碰撞器相同的遊戲物體或者父遊戲物體上。
//升起附加在碰撞器上的剛體
Collider.attachedRigidbody.AddForce(1,0,1);
◆var bounds:Bounds
描述:碰撞器在世界空間中的包圍盒
◆var isTrigger:bool
描述:該碰撞器是一個觸發器?
觸發器不會與剛體碰撞,當剛體進入或離開這個觸發器時,觸發器將發送OnTriggerEnter
OnTriggerExit和OnTriggerStay.
 //將附加的碰撞器轉化爲一個觸發器
 Collider.isTrigger=true;
◆var material:PhysicMaterial
描述:該碰撞器使用的材質。
若是材質被碰撞器共享,它將複製材質並將它賦給碰撞器。
//讓碰撞器你冰同樣
Collider.material.dynamicFriction=0;
collider.material.staticFricton=0;
◆var sharedMaterial:PhysicMaterial
描述:該碰撞器的共享物理材質。
修改這個材質將改變全部使用這個材質的碰撞器的表面屬性。大多數狀況下,你只要修改Collider.material。
Var material:PhysicMaterial;
Collider.shareMaterial=material;
函數
◆function ClosestPointOnBounds(position:Vector3):Vector3
描述:到碰撞器包圍上最近的點。
這能夠用來計算受到爆炸傷害時傷害點數。
var hitPoints=100.0;
function ApplyHitPoint(explosionPos:Vector3,radius:float){
 //從爆炸位置到剛體表面的距離
 var closetPoint=collider.ClosePointOnBounds(explosionPos);
 var distance=Vector3f.Distance(closestPoint,explosionPos);
 //傷害點數隨着到傷害點的距離而下降
 Var hitPoints=1.0-Math.Clamp0|(distance/radius);
 //這是咱們要用的最終傷害點數。最大爲10
 hitPoints=10;
}
◆function Raycast(ray:Ray,outhitInfo:RaycastHIt,distance:float):bool
參數
ray   射線的開始點和方向。
hitInfo  若是沒有近回真,hitInfo將包含更多關於碰撞器被碰到什麼地方的信息(參考:
RaycastHit).
Distance 射線的長度
返回:布爾值-當射線碰到任何碰撞器時爲真,不然爲假。
描述:投射一個Ray,它忽略全部碰撞器除了這個。
同上使用ray.origin和ray.direction而不是origin和disrection.
var ray=Camera.main.ScreenPointToRay(Input.mousePostion);
var hit:RaycastHit;
if(collider.Raycast(ray,hit,100){
 Debug.drawLine(ray.origin,hit.point);
}
消息傳遞
◆function OnCollisionEnter(collisionInfo:Collision):void
描述:當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時OnCollisionEnter被調用。
相對於OnTriggerEnter,OnCollisionEnter傳遞Collision類而不是Collider.Collision類包含接觸點,碰撞器速度等細節。若是在函數中不使用CollisionInfo,省略collisionInfo參數以免沒必要要的計算。注意若是碰撞器附加了一個非動力學剛體,也只發送碰撞事件。
◆Function OnCollisionEnter(collision:Collision){
//調試繪製全部的接觸點和法線
for(var contact:ContacePoint in collision.contacts){
  Debug.DrawRay(contact.point,contact.normal,color.white);
 }
 //若是碰撞物體有較大的衝擊就播放聲音
 If(collision.relativeVelocity.magnitude.2)
  Audio.Play();
 }
 //一枚手榴彈
 //在擊中一個表面時初始化一個爆炸預設
 //而後銷燬它
 var exploionPrefab:Transform;
 function OnCollisionEnter(collision:Collision){
  //旋轉這個物體使y軸面向沿着表面法線的方向
  var contact=collision.contact[0];
  var rot=Quaternion.FromToRotation(Vector3.up,contact.normal);
  var pos=contact.point;
  Instantiate(exploionPrefab,pos,rot);
  Destroy(gameObject);
 }
◆function OnCollisionExit(collisionInfo:Collision):void
描述:當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit被調用。
至關於OnTriggerExit,OnCollisionExit傳遞Collision類而不是Collider.Collision類包含接觸
點,碰撞速度等細節。若是在函數中不使用collisionInfo,省略collisionInfo參數以免沒必要要的計算,注意若是碰撞器附加了一個非動力學剛體,也只發關碰撞事件。
function OnCollisionExit(collisionInfo:Collision){
 print(「No longer in contact with」+collisionInfo.transform.name);
}
◆function OnCollisionStay(collisionInfo:Collision):void
描述:對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體,OnCollisionStay將在每一幀中被調用。
至關於OnTriggerStay,OnCollisionStay傳遞Collision類而不是Collider.Collision類包含接
觸點,碰撞速度等細節。若是在函數中不使用collisionInfo,省略collisionInfo參數以免
沒必要要的計算。注意若是碰撞器附加了一個非動力學剛體,也只發送碰撞事件。
 function OnCollisionStay(collisionInfo:Collision){
  //調試繪製全部的接觸點和法線
  for(var contact:ContactPoint in collision.contacts){
Debug.DrawRay(contact.point,contact.normal,color.white);
  }
}
◆function OnTriggerEnter(other:Collider):void
描述:當這個Collider other進入trigger時OnTriggerEnter被調用。
這個消息被髮送到這個觸發器碰撞器和接觸到觸發器的剛體(或者是碰撞器若是沒有剛體)。注意若是碰撞器附加了一個

剛體,也只發送觸發器事件。
//銷燬全部進入該觸發器的物體
 function OnTriggerEnter(other:Collider){
  Destroy(other.gameObject);
 }
◆function OnTriggerExit(other:Collider):void
描述:當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
 這個消息被髮送到觸發器和拉觸到這個觸發器的碰撞器。注意若是碰撞器附加了一個
剛體,也只發送觸發器事件。
 銷燬全部離開該觸發器的物體
 function OnTriggerExit(other:Collider){
  Destroy(other.gameObject);
 }
◆function OnTriggerStay(other:collider):void
描述:對於每一個Collider other,當它觸碰到trigger 時,OnTriggerStay會在每一幀中都被調用。
這個消息被髮送到觸發器和接觸到這個觸發器的碰撞器。注意若是碰撞器附加了一個剛體,也只發送觸發器事件。
//對所進入這個觸發器的剛體使用一個向上的力
function OnTriggerStay(other:Collider){
 if(other.atachedRigidbody){
  other.attachedRigidbody.AddForce(Vector3.up*10);
 }
}
繼承的成員
繼承的變量
transform附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
camera 附加到這個GameObject的Camera(若是沒有爲null)。
light  附加到這個GameObject的Light(若是沒有爲null)。
animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag  這個遊戲的標籤。
name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponet返回type類型的組件,若是遊戲物體上附加一個,若是沒有返
                      回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
 
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。

BosCollider

 類,繼承自Collider
 一個盒狀的簡單碰撞器
 參見:SphereCollider,copsuleCollider,PhysicMaterial,Rigidbody
變量
◆var center:vector3
描述:box的中心,基於物體局部空間。
//重置中心到變換的位置
collider.center=Vector3.zero;
◆var size:Vector3
描述:box的尺寸,基於物體局部空間
 該box的尺寸將隨着變換的縮放面縮放。
 //使這個box碰撞器變長
 collider.size=Vector3(10,1,1);
繼承的成員
繼承的變量
attachedRigidbody 該碰撞器所附加的剛體。
isTrigger該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
bounds 碰撞器在世界空間中包圍盤。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
 繼承的函數
 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter當這個Collider other進入trigger進OnTriggerEnter被調用。
 
OnTriggerExit  當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
 OnTriggerStay  對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會
  在每一幀中都被調用。
 OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用
 OnCollisionStay 對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體OnCollisionStay將在每
  一幀中被調用。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
CapsuleCollider
 類,繼承自Collider
 一個膠囊狀的簡單碰撞器
 Capsules是術狀的並在每端有一個半球。
 參見:BoxCollider,SphereCollder,PhysicMaterial,Rigidbody
變量
◆var center:vector3
描述:膠囊的中心,基於物體的局部空間。
//重置中心到變換的位置
collider.center=Vector3.zero;
◆var direction:int
描述:膠囊的方向
0->膠囊的高度沿着x軸。1->膠囊的高度沿着y軸。2->膠囊的高度沿着z軸。
//使膠囊的高度沿着x軸
collider.direction=0;
◆var height:float
描述:膠囊的高度,基於物體的局部空間
該膠囊的高度將隨着變換的縮放而縮放。注意height爲包含兩端兩個半球的實際高度。
collider.height=5;
◆var radius:float
描述:球的半徑,基於物體的局部空間。
該膠囊的半徑隨着變換的縮放而縮放。
collider.radius=1;
繼承的成員
繼承的變量
attachedRigidbody  該碰撞器所附加的剛體。
isTrigger 該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
bounds 碰撞器在世界空間中包圍盤。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?

 繼承的函數

 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
 
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter當這個Collider other進入trigger進OnTriggerEnter被調用。
 OnTriggerExit  當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
 OnTriggerStay  對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會
  在每一幀中都被調用。
 OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用
 OnCollisionStay 對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體OnCollisionStay將在每
  一幀中被調用。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。

CharactController
 類,繼承自Collider
 CharacterController容許你很容易地作受到碰撞制約的移動,而無需處理剛體。
 CharacterController不會受力, 的影響,而且只有在調用 Move函數時纔會移動,而後這個控制器將實現移動,可是會受到碰撞的制約。
 參見:Character Controller component和Character animation examples
變量
◆var center:Vector3
描述:角色膠囊相對於變換的位置的中心。
 //向上移動膠囊的中心
 var Controller. CharacterController=GetComponent(CharacterController);
controller.center=Vector3(0,1,0);
◆var collisionFlags:CollisionFlags
描述:在最後一次調用CharacterController.Move時,膠囊的哪一個部分與環境發生了碰撞。
function Update(){
 var controller:CharacterController=GetComponent(CharacterController);
 if((controller collisionFlags&collisionFlags.Above)!=0)
  print(「touched the celling」);
}
◆var detectCollisions:bool
描述:其餘剛體或角色控制器應該與這個角色控制器碰撞嗎(默認老是啓用的)?
 這個方法不會影響角色移動時的碰撞檢測。它控制角色和其餘物體之間的碰撞。例如,
一個箱子能夠阻止控制器的運動,可是做爲模擬的一部分這個箱子能夠進入控制器。這能夠用於臨時禁用角色控制器。例如,你也許想裝載角色到汽車上並禁用碰撞直到再次退出汽車。注意這隻影響其餘沒有與碰撞的物體。detectCollisions不是可序列化的。也就說,它不會顯示要檢視面板中而且當在場景中實例化或保存這個控制器時,它將不被保存。
 GetComponent(CharacterController).detectCollisions=false;
◆var height:float
描述:這個膠囊的高度
//設置控制器的高度爲2.0
var controller:CharacterController=GetComponent(CharacterController);
controller.height=2.0;
◆var isGrounded:bool
描述:CharacterController上一次移動的時候是否接觸地面?
function Update(){
 var controller.CharacterController=GetComponent(CharacterController);
 if(controller.isGronded){
  print(「We are grounded」)
 }
}
◆var radius:float
描述:角色膠囊的半徑
//這隻控制器的半徑爲0.3
var controller:CharacterController=GetComponent(CharacterController);
controller.radius=0.3;
◆var slopLimit:float
描述:角色控制器的斜度限制
//設置控制器的斜度限制爲45
var controller:CharacterController=GetComponent(CharacterController);
controller.slopLimit=45.0;
◆var stepOffset:float
描述:角色控制器的步高,以米爲單位。
//這隻控制器的步高爲2.0
var controller:CharacterController=GetComponent(CharacterController);
controller.stepOffset=2.0;
◆var velocity:Vector3
描述:角色的當前速度
這容許你知道角色實際的行走有多快,例如當它碰到牆時這個值爲零向量
function Update(){
  var controller:CharacterController=GetComponent(CharacterController);
  var horizontalVelocity=controller.velocity;
  horizontalVelocity=0;
  //x-z平面上的速率,忽略其餘任何速率
  var horizontalSpeed= horizontalVelocity.y;
  //總體速率
  var overallSpeed=controller.velocity.magnitude;
}
函數
◆function Move(motion:Vector3):CollisionFlags
描述:一個更復雜的移動函數,能夠使用絕對移動增量。
試圖由motion來移動控制器,這個運動只受制於碰撞,它將沿着碰撞器滑動,
collisionFlags爲移動期間所發生的碰撞總和。這個函數不使用任何重力。
//這個腳本基於方向鍵向前
//和兩邊移動角色控制器
//按下空格後它也會跳躍
//確保這個與角色控制器附加在同一個遊戲物體上
var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;
private var moveDirection = Vector3.zero;
function FixedUpdate() {
var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
//咱們在地面上,所以重計算
//直接沿軸方向移動
moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
}
}
// 使用重力
moveDirection.y -= gravity * Time.deltaTime;
// 移動控制器
controller.Move(moveDirection * Time.deltaTime);
}
◆function SimpleMove(speed:Vector3);bool
描述:以speed移動角色
沿着y軸的速度將忽略。速度單位m/s,重力被自動應用。返回角色是否在地面
上。
var speed = 3.0;
var rotateSpeed = 3.0;
function Update (){
 var controller : CharacterController = GetComponent(CharacterController);
 // Rotate around y - axis
 transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);
 // Move forward / backward
 var forward = transform.TransformDirection(Vector3.forward);
 var curSpeed = speed * Input.GetAxis ("Vertical");
 controller.SimpleMove(forward * curSpeed);
}
 @script RequireComponent(CharacterController)
消息傳遞
◆function OnControllerColliderHit(hit:ControllerColliderHit):void
描述:在移動的時候,控制器碰到一個碰撞器時,OnControllerColliderHit被調用。
這能夠用來在角色碰到物體時推開物體。
//這個腳本推開全部碰到的剛體
var pushPower = 2.0;
function OnControllerColliderHit (hit : ControllerColliderHit){
 var body : Rigidbody = hit.collider.attachedRigidbody;
 // 無剛體
 if (body == null || body.isKinematic)
  return;
 // 不推開咱們身後的物體
 if (hit.moveDirection.y < -0.3) 
  return;
 //從移動方向計算推的方向
 // 只推開物體到旁邊而不是上下
 var pushDir = Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z);
 //若是知道角色移動有多快
 //而後你就能夠用它乘以推進速度
 //使用推力
 body.velocity = pushDir * pushPower;
}
繼承的成員
繼承的變量
attachedRigidbody  該碰撞器所附加的剛體。
isTrigger 該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
bounds 碰撞器在世界空間中包圍盤。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
 
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
 繼承的函數
 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter 當這個Collider other進入trigger進OnTriggerEnter被調用。
 OnTriggerExit  當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
 OnTriggerStay  對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會
  在每一幀中都被調用。
 OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用.
OnCollisionStay對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體
OnCollisionStay將在每一幀中被調用。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
MeshCollider
 類,繼承自Collider
 網格碰撞器容許人在網格和幾何體之間進行碰撞檢測。
 參見:BosCollider,CapsuleCollider,PhysicMaterial,Rigidbody

變量
◆var convex:bool
描述:爲這個網格將使用一個凸碰撞器。
凸網格能夠與其餘凸碰撞器和非凸網格碰撞。所以凸網格碰撞器適用於剛體,若是你真的須要比幾何碰撞器更多的詳細的碰撞信息,能夠使用這個。
◆var shareMesh:mesh
描述:用於碰撞檢測的網格物體。
◆var smoothSphereCollision:bool
描述:爲球形碰撞使用插值法線而不是平面多邊形法線。
這可讓球體在平面上的滾動更加更滑。缺點是在從陡峭的角度滾落時,它的行爲很是奇怪,顯得有拉動某個方向的的球體。
繼承的成員
繼承的變量
attachedRigidbody  該碰撞器所附加的剛體。
isTrigger 該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
bounds 碰撞器在世界空間中包圍盤。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
 繼承的函數
 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter  當這個Collider other進入trigger進OnTriggerEnter被調用。
 OnTriggerExit當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
OnTriggerStay對於每一個Collider other,當它觸碰到trigger時,
 會在每一幀中都被調用。
OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用.
OnCollisionStay 對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體
 OnCollisionStay將在每一幀中被調用。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
RaycastCollider
 類,繼承自Collider
 基於碰撞的一個線。
 Raycast碰撞器主要用於模型汽車,氣墊船和船由於它們提供更精確的碰撞檢測。然而,對於輪式交通工具,建議使用WheelCollider。
 一個Raycast碰撞器老是沿着本地y軸向下投射一個射線。Raycast碰撞器在與設置爲具備彈性的物理材質組全時是最有用的。
變量
◆var center:Vector3
描述:膠囊的中心,基於物體的局部空間。
//重置中心到變換的位置
collider.center=Vector3.zero;
◆var length:float
 描述:本地空間的射線的長度,射線將發射
從center沿着變換的負y軸,length將隨着變換的縮放而縮放
collider.length=2;
繼承的成員
繼承的變量
attachedRigidbody  該碰撞器所附加的剛體。
isTrigger 該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
bounds 碰撞器在世界空間中包圍盤。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
 繼承的函數
 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter 當這個Collider other進入trigger進OnTriggerEnter被調用。
 OnTriggerExit  當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
OnTriggerStay  對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會
  在每一幀中都被調用。
 OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用.
OnCollisionStay對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體
OnCollisionStay將在每一幀中被調用。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
SphereCollider
 類繼承自Collider
 一個球形的幾何碰撞器
 參見:BoxCollider,CapsuleCollider,Physic Material,Rigidbody
變量
◆var center:Vector3
描述:球的中心,基於物體的局部空間。
//重置中心到變換的位置
Collider.center=Vector3.zero;
◆var radius:float
描述:球的半徑,基於物體的局部空間。
球體隨着變換的縮放而縮放
collider.radius=10;
繼承的成員
繼承的變量
attachedRigidbody  該碰撞器所附加的剛體。
isTrigger 該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
 繼承的函數
 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter 當這個Collider other進入trigger進OnTriggerEnter被調用。
 OnTriggerExit  當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
 OnTriggerStay  對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會
在每一幀中都被調用。
 OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用.
OnCollisionStay對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體
OnCollisionStay將在每一幀中被調用。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
TerrainCollider
類,繼承自Collider
基於高度圖的碰撞器。
變量
◆var terrainData:TerrainData
描述:存儲高度圖的地形
繼承的成員
繼承的變量
attachedRigidbody  該碰撞器所附加的剛體。
isTrigger 該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
bounds 碰撞器在世界空間中包圍盤。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
 繼承的函數
 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter 當這個Collider other進入trigger進OnTriggerEnter被調用。
 OnTriggerExit  當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
 OnTriggerStay  對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會
  在每一幀中都被調用。
 OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用.
OnCollisionStay對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體
OnCollisionStay將在每一幀中被調用。

繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
WheelCollider
 類,繼承自Collider
 用於車輪的特殊碰撞器。
 車輪的碰撞器用來模擬車輪。它的功能相似與RaycastCollider,可是還有車輪物理和基於輪胎摩擦力模擬的滑動。在大多數狀況下WheelCollider是更精確的也更容易使用的。
 車輪的碰撞檢測是經過從center沿着局部Y軸向下投射一個射線進行的。車輪有一個radius並能夠經過suspensionDistance向下擴展。
 車輪使用motoTorque,brakeTorque和steerAngle屬性控制。
 車輪碰撞器使用不一樣於物理引擎的一個基於滑動的摩擦力模型來計算摩擦力。這容許更加真實的行爲。並且使車輪忽略標準的PhysiMaterial設置。經過改變車輪所碰到的
rorwardFriction和 sidewaysFriction來模擬不一樣的路面材質。參見:GetGroundHit和
WheelFrictionCurve。
變量
◆var brakeTorque:float
描述:制動的力矩。必須爲正
//制動車輪
collider.brakeTorque=1000;
◆var center:vector3
描述:車輪的中心,基於物體的局部空間。
//重置中心到變換的位置
collider.center=Vector.zero;
◆var forwardFriction:WheelFrictionCurve
描述;在輪胎所指向上的摩擦力屬性
◆var isGrounded:bool
描述:表示當前車輪是否與什麼東西發生碰撞(只讀)
◆var mass:float
描述:車輪的質量必須比0大
collider.mass=1;
◆var motorTorque:float
描述:車輪上的動力力矩。正負根據方向而定。
爲了模擬製動,不要使用負的動力力矩,而使用brakeTorque
//向前旋轉的車輪
collider.motorTorque=10;
◆var radius:float
描述:本地空間的車輪的半徑。
半徑將隨着變換的縮放而縮放。
collider.radius=5;
◆var rpm:float
描述:當前車輪軸的旋轉速度,以旋轉/秒(只讀)
◆var sidewaysFriction:WheelfrictionCurve
描述:側向的輪胎摩擦力屬性。
◆var steerAngle:float
描述:轉向的角度,老是繞着本地y軸。
//轉向前
collider.steerAngle=0;
較高的速率使用小的轉向角:一點角度就足夠了。
◆var suspensionDistance:float
描述:在局部空間下,車輪懸掛的最大擴展距離。
懸掛老是沿着本地y軸向下擴展。懸掛過程將隨着變換的縮放而縮放。
collider.susensionDistance:=0.1;
◆var suspensionSpring:JointSring
描述:車輪懸掛的參數。懸掛視圖到達一個目標的位置
經過添加彈簧和陰尼力。
suspensionSpring.spring力視圖到達這個目標的位置。較大的值使得懸掛更快到達目標
位置。
suspensionSpring.damer力阻尼懸掛速度。較大的值使得懸掛更慢到達目標。
 懸掛試圖到達suspensionSpring.targetPositon.它是懸掛沿着suspensionDistance的剩餘長度。零值表示徹底擴展。1表示徹底壓縮,缺省的值爲0,它匹配於常規汽車的懸掛行爲。
函數
◆function GetGroundHit(out hit:WheelHit):bool
描述:獲取輪胎的地面碰撞數據。
若是車輪碰撞器與某些物體發生了碰撞,返回true並填充hit結構。若是車輪沒有碰撞。
返回false並保持hit結構不變。
報告的hit老是最接近的一個,由於輪胎摩擦力模型不會自動響應其餘的physicMaterial。
任何對不一樣地面材質的模擬必須基於這裏所返回的碰撞器材質來手動調整forwordFriction和sidewayFriction完成。
繼承的成員
繼承的變量
attachedRigidbody  該碰撞器所附加的剛體。
isTrigger 該碰撞器是一個觸發器?
material 該碰撞器使用的材質。
sharedMaterial  該碰撞器的共享物體材質。
bounds 碰撞器在世界空間中包圍盤。
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSourec(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
 繼承的函數
 ClosestPointOnBounds 附加碰撞器到包圍盒最近的點。
 Raycast 投射一個Ray,它忽略全部的碰撞器除了這個。
GetComponet  返回type類型的組件,若是遊戲物體上附加一個,若是沒有返回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先
上調
用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
 繼承的消息傳遞
 OnTriggerEnter 當這個Collider other進入trigger進OnTriggerEnter被調用。
 OnTriggerExit  當這個Collider other中止觸碰trigger時OnTriggerExit被調用。
 OnTriggerStay  對於每一個Collider other,當它觸碰到trigger時,OnTriggerStay會
  在每一幀中都被調用。
 OnCollisionEnter 當這個碰撞器/剛體開始觸碰另外一個剛體/碰撞器時
  OnCollisionEnter被調用。
OnCollisionExit 當這個碰撞器/剛體中止觸碰另外一個剛體/碰撞器時OnCollisionExit
被調用.
OnCollisionStay對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體
OnCollisionStay將在每一幀中被調用。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
Joint
類,繼承自Comonent
 Joint是全部關節的基類。
 參見:CharacterJoint,HingJoint,SpringJoint.
變量
◆var anchor:Vector3
描述:關節的移動被限制於繞着這個錨點的位置。
定義在本地空間中的位置。
hingeJoint.anchor=Vector3(2,0,0);
◆var axis:Vector3
描述:物體被限制於繞着這個軸的方向旋轉。
 定義在本地空間中的軸。
 hingeJoint.axis=Vector3.up;
◆var breakForce:float
描述:須要斷開關節的力
力可能來自與其餘物體的碰撞,應用到剛體的力。addTorque或來自其餘關節。
//當一個大於10的力矩被應用時使用關節斷開
hingeJoint.breakForce=10;
//使關節不會被斷開
hingeJoint.breakForce=mathf.Infinity;
參見:OnJointBreak
◆var breakTorque:float
描述:須要斷開關節的力矩
力矩可能來自與其餘物體的碰撞,使用rigidbody.AddTorque或來自其餘關節。
//當一個大於10的力矩被應用時使關節斷開
hingeJoint.breakTorque=10;
//使關節不會被斷開
hingeJoint.breakTorque=mathf.Infinity;
參見:OnJointBreak
◆var connectedBody:Rigidbody
描述:這個關節連接到的另外一個剛體的引用。
若是不設置,這個關節將鏈接物體到世界。
//鏈接關節到世界而不是其餘剛體
hingeJoint.connectedBody=Null;
鏈接關節到其餘物體
var otherBody=Rigidbody;
hingeJoint.connectedBody=otherBody;
消息傳遞
◆function OnJointBreak(breakForce:float):void
描述:當附加到相同遊戲物體上的關節被斷開。當關節斷開時,OnJointBreak將被調用
,應用到關節的斷開力將被傳入,OnJointBreak以後這個關節自動從遊戲物體移除。參見:
Joint.breakForce
繼承的成員
繼承的變量
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio            附加到這個GameObject的AudioSouree(若是沒有爲null)。
guiText          附加到這個GameObject的GUIText(若是沒有爲null)。
networkView      附加到這個GameObject的NetworkView(只讀)(若是沒有爲null)。
guiTexture       附加到這個GameObject的GUITexture(只讀)(若是沒有爲null)。
collider         附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint       附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject       這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag              這個遊戲物體的標籤。
name             對象的名稱。
hideFlags        該物體是否被隱藏。保存在場景中或被用戶修改?
繼承的函數
GetComponent             返回type類型的組件,若是遊戲物體上附加了一個,若是沒有返回null。
GetComponentInChildren   返回type類型的組件,這個組件位於GameObject或任何它的子物體上,使用深度優先搜索。
GetComponentsInChildren  返回全部type類型的組件,這些組件位於GameObject或任何它的子物體上。
GetComponents            返回GameObject上全部type類型的組件。
CompareTag               這個遊戲物體標籤爲tag?
SendMessageUpwards       在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先上調用名爲methodName方法。
SendMessage              在這個遊戲物體的每一個MonoBehaviour上調用methodName方法。
BroadcastMessage         在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
繼承的類函數
operator bool      這個物體存在嗎?
Instantiate        克隆original物體並返回這個克隆。
Destroy            移除一個遊戲物體,組件或資源。
DestroyImmediate   當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType  返回全部類型爲type的激活物體。
FindObjectOfType   返回第一個類型爲type的激活物體。
operator ==        比較兩個物體是否相同。
operator !=        比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
CharacterJoint
類,繼承自Joint
Joints的屬性主要用於碰撞效果。它們是一個擴展的球窩狀joint,容許你限制joint在每一個軸上。
變量
◆var highTwistLimit:SoftJointLimit
描述:角色關節原始軸的上限。
這個限制是相對於兩個剛體開始模擬時的角度。
◆var lowTwistLimit:SoftJointLimit
描述:角色關節原始軸上的下限。
這個限制是相對於兩個剛體開始模擬時的角度。
◆var swing1Limit:SoftJointLimit
描述:在角色關節的原始軸上限制。
限制是對稱的。所以,例如30將在此-30到30之間限制是相對於兩個剛體開始模擬時的角度。
◆var swing2Limit:SoftJointLimit
描述:在角色關節的原始軸上的限制。
限制是對稱的。所以,例如30將在此-30到30之間限制是相對於兩個剛體開始模擬時的角度。
◆var swingAxis:vector3
描述:關節能夠繞着旋轉的第二軸
CharacterJoint.swing1Limit是被容許的繞着這個軸旋轉的限制。
繼承的成員
繼承的變量
Transform附加到這個GameObject的Transform(若是沒有爲null)。
Rigidbody附加到這個GameObject的Rigidbody(若是沒有爲null)。
Camera 附加到這個GameObject的Camera(若是沒有爲null)。
Light  附加到這個GameObject的Light(若是沒有爲null)。
Animation附加到這個GameObject的Animation(若是沒有爲null)。
constantForce附加到這個GameObject的ConstantForce(若是沒有爲null)。
Renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView附加到這個GameObject的NetworkView(若是沒有爲null)。
Collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter  附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
Tag  這個遊戲的標籤。
Name 對象的名稱。
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponet返回type類型的組件,若是遊戲物體上附加一個,若是沒有返
                      回null。
GetComponentInchildren 返回type類型的組件,這個組件位於GameObject或者任何它的子物體上,使用深度優先搜索。
GetComponentsInchildren 返回全部type類型的組件,這些組件位於GameObject或者任何它的子物體上。
GetComponets返回Gameobject全部type類型的組件。
CompareTag 這遊戲物體被標籤爲tag?
SendMessageUpwards  在這遊戲物體的每一個MonoBehaviour和該行爲的組先上調用名爲methodName方法。
SendMessage 在這遊戲物體的每一個MonoBehaviour上調用名爲
methodName方法。
BoradcastMessage  在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
GetInstanceID            返回該物體的實例id。
繼承的類函數
Operator bool 這個物體存在嗎?
Instatiate  克隆original物體並返回這個克隆。
Destroy  移除一個遊戲物體,組件或資源。
DestroyImmediate當即銷燬物體obj。強烈建議使用Destroy代替
FindObjectsOfType返回全部類型爲type的激活物體。
FindObjectOfType返回第一個類型爲type的激活物體。
Operator== 比較兩個物體是否相同。
Operator!= 比較兩個物體是否不相同。
DontDestroyOnLoad  加載新場景時確保物體target不被自動銷燬。
ConfigurableJoint
 類,繼承自Joint
 可配置關節是一種很是靈活的關節,它讓你徹底控制旋轉和線性移動。
 你也能夠用它的構建全部其餘類型的關節,可是它的設置也是很是複雜的。它讓你在每一個旋轉軸線自由度上徹底控制motor.drive和關節限制。
變量
◆var angularXDrive:jointDrive
描述:定義關節的旋轉如何繞着局部x軸做用。僅在Rotation Drive Mode 爲Swing&
twist時使用。
◆var angularXMotion:configurableJointMotion
描述:根據Low和High Angular Xlimit容許沿着X軸的旋轉爲free,徹底locked或者
limited.
◆var angularYLimit:SoftJointLimit
描述:基於原始旋轉的增量定義的旋轉約束邊界。
◆var angularYMotion:ConfigurableJointMotion
描述:根據Low和High AngularZLimit容許沿着Z軸的旋轉爲Free,徹底Locked或者
Limited。
◆var angularYZDrive:JointDrive
描述:定義的旋轉如何繞着局部Y和 Z軸做用。僅在Rotation Drive Mode爲Swing&Twist
時使用。
◆var angularZLimit:SoftJointLimit
描述:基於到原始旋轉的增量定義的旋轉約束邊界。
◆var angularZmotion:ConfigurableJointMotion
描述:根據Low和High Angular Zlimit容許沿着Z軸的族轉爲Free,徹底Locked或者
Limited.
◆var configuredInWorldSpace:bool
描述:若是啓用,全部目標值將在世界空間中計算而不是物體的局空間。
◆var highAngularXLimit:SoftJointLimit
描述:基於到原始旋轉的增量定義的最大旋轉約束邊界。
◆var linearLimit:SoftJointLimit
基於到關節原點的距離肯定的移動約束邊界定義。
◆var lowAngularXlimit:SoftJointLimit
基於到原始旋轉的增量定義的最小旋轉約束邊界。
◆var projectionAngle:float
描述:到Connected Body的距離,在物體折回到一個可接受的位置以前必須超過這個距離。
◆var projectionDistance:float
描述:到Connected Body的距離,在物體折回到一個可接受的位置以前必須超過這個距離。
◆var projectionMode:JointProjectionMode
描述:該屬性用來在物體偏離太多時候將它回到約束位置。
◆var rotationDriveMode:RotationDriveMode
描述:控制物體使用X&YZ或自身的slerp Dirve旋轉
◆var slerpDrive:JointDrive
描述:定義關節的旋轉如何繞着全部的局部軸做用。僅在Rotation Drive Mode爲slerp only 時使用。
◆var targetAngularVelocity:Vector3
描述:這是一個Vector3。它定義了關節應該旋轉的角速度。
◆var targetPosition:Vector3
描述:須要關節移動到的位置。
◆var targetVelocity:Vector3
描述:須要關節移動的速度。
◆var xDrive:JointDrive
描述:定義關節的移動如何沿着局部X軸做用。
◆var xMotion:JointDrive
描述:按照Linear Limit容許沿着X軸的移動爲Free,徹底Locked或者Limited。
◆var yDrive:JointDrive
描述:定義關節的移動如何沿着局部Y軸做用。
◆var yMotion:JointDrive
描述:按照Linear Limit容許沿着Y軸的移動爲Free,徹底Locked或者Limited。
◆var zDrive:JointDrive
描述:定義關節的移動如何沿着局部Z軸做用。
◆var zMotion:JointDrive
描述:按照Linear Limit容許沿着Z軸的移動爲Free,徹底Locked或者Limited。
繼承的成員
繼承的變量
 connectedBody 這個關機連接到的另外一個剛體的引用。
 axis 物體被限制於繞着這個軸的方向旋轉。
 anchor關節的移動被限制於繞着這個錨點的位置。
 breakForce  須要斷開關節的力。
 breakTorque  須要斷開關節的力矩。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnJointBreak 當附加到相同遊戲物體上的關節被斷開時調用。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
FixedJoint
類,繼承自Joint
FixedJoint將兩個剛體組合在一塊兒,使他們在邊界位置粘合。
參見: CharacterJoint, HingeJoint, SpringJoint.
繼承的成員
繼承的變量
ConnectedBody 這個關機連接到的另外一個剛體的引用。
axis 物體被限制於繞着這個軸的方向旋轉。
anchor 關節的移動被限制於繞着這個錨點的位置。
breakForce 須要斷開關節的力。
breakTorque須要斷開關節的力矩。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。

CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnJointBreak 當附加到相同遊戲物體上的關節被斷開時調用。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
HingeJoint
類,繼承自Joint
HingeJoint組合兩個剛體,約束它們的移動就像用一個鉸鏈連接他們同樣。
這個類關節對於門市很是好的,可是也能被用於模型鏈,等等...
HingeJoint有一個動力,這個可以用來使連接繞着關節的軸旋轉。一個彈簧,它經過
繞着鉸鏈關節軸旋轉達到一個目標角度。和一個限制,用來約束關節角度。
變量
◆ var angle: folat
描述:連接相對於靜止位置的當前角度。(只讀)
兩個物體間的靜止角度再開始模擬時老是零。
print(hingeJoint.angle);
◆ var limits: JointLimits
描述:鉸鏈連接的限制。
這個連接將被限制,這樣角度老是在limits.min和limits.max之間,連接的角度是相對
於靜止角度的度數。兩個物體間的靜止角度再開始模擬時老是零。
爲門製做一個鉸鏈限制;
hinge.Joint.limits.min=();
hinge.Joint.limits.minBounce=();
hinge.Joint.limits.max=9();
hinge.Joint.limits.maxBounce=();
修改限制自動地啓用它。
◆ var motor: JointMotor
描述:動力將使用一個最大力來試圖以角度/秒來到達目標速度。
動力試圖以角度/秒達到motor.targetVelocity角速度. 若是motor.force足夠大,動力將
只能達到motor.targetVelocity。若是關節旋轉的比motor.targetVelocity快,動力將斷開,負
motor.targetVelocity將使得動力以相反的方向旋轉。
motor.force是動力可以運用的最大力矩。若是它是零動力將禁用。若是
motor.freeSpin爲假,動力將只在旋轉比motor.targetVelocity快時斷開。若是motor.freeSpin
爲真,動力將不斷開。
//製做一個鉸鏈動力以每秒90度旋轉,和一個較大的力。
hingeJoint.motor.force = 100;
hingeJoint.motor.targetVelocity = 90;
hingeJoint.motor.freeSpin = false;
設置HingeJoint.useMotor爲真,將在修改動力時自動地啓動動力。
◆ var spring: JointSpring
描述:經過添加彈力和阻力,彈簧試圖達到一個目標角度。
spring.spring 力視圖到達這個目標角度,較大的值使得彈簧更快達到目標位置。
spring.damper 阻尼角速度,較大的值使得彈簧更慢到達目標。
彈簧到達spring.targetPosition時相對於靜止的角度,兩個物體間的靜止角度在開始模
擬時老是零。
//是彈簧儘可能到達70度角;
//這多是用來發射彈弓;
hingeJoint.spring.spring = 10;
hingeJoint.spring.damper = 3;
hingeJoint.spring.targetPosition = 70;
修正彈簧自動地啓用它。
◆ var useLimits: bool
描述:啓用關節的限制。
hingeJoint.useLimits = true;
◆ var useMotor: bool
描述:啓動關節的動力。
hingeJoint.useMotor = true;
◆ var useSpring: bool
描述:啓用關節的彈性。
hingeJoint.useMotor = true;
◆ var velocity: float
描述:關節的角速度,度/秒。
print(hingeJoint.velocity);
繼承的成員
繼承的變量
ConnectedBody 這個關機連接到的另外一個剛體的引用。
axis 物體被限制於繞着這個軸的方向旋轉。
anchor 關節的移動被限制於繞着這個錨點的位置。
breakForce 須要斷開關節的力。
breakTorque須要斷開關節的力矩。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnJointBreak 當附加到相同遊戲物體上的關節被斷開時調用。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
SpringJoint
類,繼承自Joint
彈性關節鏈接2個剛體,彈力將自動應用以便保持物體在給定的距離內。
彈性試圖位置他們的開始距離,所以若是你的關節開始的時候是分離得,那麼這個關
節將試圖維持這個距離。minDistance和maxDistance屬性添加這個隱式距離的頂部。
變量
◆ var damper: float
描述:用於阻尼彈簧的阻尼力。
◆ var maxDistance: float
描述:兩個物體之間相對於它們的初試距離的最大距離。
距離將在minDistance和maxDistance之間,該值是相對於場景第一次加載時重心之間的
距離。
◆ var minDistance: float
描述:兩個物體之間相對於它們的初試距離的最小距離。
距離將在minDistance和maxDistance之間,該值是相對於場景第一次加載時重心之間的
距離。
◆ var spring: folat
描述:彈力用於保持兩個物體在一塊兒。
繼承的成員
繼承的變量
ConnectedBody 這個關機連接到的另外一個剛體的引用。
axis 物體被限制於繞着這個軸的方向旋轉。
anchor 關節的移動被限制於繞着這個錨點的位置。
breakForce 須要斷開關節的力。
breakTorque須要斷開關節的力矩。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnJointBreak 當附加到相同遊戲物體上的關節被斷開時調用。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
MeshFilter
類,繼承自Component
一個類用來訪問mesh filter的Mesh.
使用這個做爲一個程序的網格接口。參見:Mesh class.
變量
◆ var mesh: mesh
描述:返回賦給網格過濾器的實例化Mesh。
若是沒有賦予網格過濾器,一個新的網格將被建立並被導入。
若是賦予網格過濾器的網格被共享,它將被自動賦值而且實例化的網格將被返回。
經過使用mesh屬性你能只修改單個物體。其餘使用相同網格的物體不會被修改。
function Update (){
//獲取實例化網格
var mesh: Mesh = GetComponent(MeshFilter).mesh;
//隨即改變頂點
var vertices = mesh. vertices;
for(var p in vertices)
{
p.y ~= Random.Range(-0.3,0.3);
}
mesh.vertices = vertices;
mesh.RecalculateNormals();
}
參見: Mesh class.
◆ var sharedMesh: Mesh
描述:返回網格過濾器的共享網格。
建議只使用這個函數來讀網格數據而不是寫,由於你可能修改導入的資源而且使用這個
網格的全部物體都會被影響。
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
ParticleAnimator
類,繼承自Component
粒子動畫器隨着時間移動你粒子,使用它們將風、力和顏色循環應用到你的粒子系統。
這個類是particle animator組件的腳本接口。
變量
◆ var autodestruct: bool
描述:這個粒子動畫器的GameObject會自動銷燬?
當設置爲true,該GameObject將在全部粒子消失後被銷燬。
◆ var colorAnimation: Color[]
描述:粒子的色彩隨着生命循環。
當前,你不能直接修改這個數組的索引。相反,你須要取間整個數組,修改它,而後將
它賦回粒子動畫器。
//如何經過腳本正確的改變colorAnimation顏色
//附加這個腳本到GameObject這個物體包含完整的粒子系統
function Start ()
{
var modifiedColors: Color[]=particleAnimatorcolorAnimation;
mofifiedColor[2]=Color.yellow;
particleAnimator.colorAnimation=modifiedColors;
}
◆ var damping: float
描述:每幀粒子速度減慢多少
值爲1沒有阻尼,值越小使它們越慢。
◆ var doesAnimateColor: bool
描述:粒子在它們的生命期中循環它們的顏色?
◆ var force: Vector3
描述:應用到粒子的力
◆ var localRotationAxis: Vector3
描述:粒子繞着旋轉的本地空間軸。
◆ var rndForce: Vector3
描述:添加到粒子的隨機力
用這個來讓煙變得更加有活力。
◆ var sizeGrow: float
描述:粒子的尺寸如何隨着生命期增長
◆ var worldRotationAxis: Vector3
描述:粒子繞着旋轉的世界空間軸。
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
ParticleEmitter
類,繼承自Component
粒子發射器的腳本接口
參見:Particle documentation.
變量
◆ var emit: bool
描述:粒子應該被自動發射?
//發射粒子三秒
particleEmitter.emit=true;
yield WaitForSeconds(3);
//而後中止
particleEmitter.emit=false;
◆ var emitterVelocityScale: float
描述:粒子繼承的發射器的速度量。
◆ var localVelocity: Vector3
描述:粒子沿着物體的X,Y,和Z軸的開始速度。
◆ var maxEmission: float
描述:每秒生成的最大粒子的數量
◆ var maxEnergy: float
描述:每一個粒子的最大生命期,以秒計。
◆ var maxSize: float
描述:每一個粒子生成時的最大尺寸。
◆ var minEmission: float
描述:每秒生成的最小粒子的數量
◆ var minEnergy: float
描述:每一個粒子的最小生命期,以秒計。
◆ var minSize: float
描述:每一個粒子生成時的最小尺寸。
◆ var particleCount:int
描述:粒子的當前數量(只讀)。
◆ var particles:Particle[]
描述:返回全部粒子的一個拷貝和指定全部粒子的數組到當前粒子。
注意,修改了粒子數組後,你必須將它賦回particleEmitter才能看到改變。能力以零或
小於零的粒子將在賦給粒子數組的時候被銷燬。所以,當創造一個完整的新粒子數組時,你需
要顯式地設置全部粒子的能量。
//附加這個腳本到一個已有的粒子系統上。
function LateUpdate(){
//提取粒子
var particles=particleEmitter particles
for(var i=(), i=particles length; i**){
//在正弦曲線上上下移動粒子
car yPosition = Mathf.Sin (Time.time) * Time.deltaTime.Particles[i]position *=Vector3 (0,
yPosition, 0)
//使粒子變紅
particles[i]color=Color.red
//按照正弦曲線修改粒子大小
particles[i]size=Mathf.Sin(Time.time)*0.2;
}
//將他們拷量回粒子系統
particleEmitter.particles=particles
}
◆ var rndVelocity: Vector3
描述:一個沿着X,Y,和Z的隨機速度,它被添加到當前速度。
//主要沿着x=z軸擴展隨機速度
particleEmitter.rndVelocity=Vector3(2,0.1,2);
◆ var useWorldSpace: bool
描述:若是啓用,當發射器移動的時候粒子不會移動。若是爲假,當你移動發射器時,
粒子將跟隨它移動。
particleEmitter.useWorldSpace=true;
◆ var worldVelocity: Vector3
描述:粒子在世界空間的開始速度,沿着X,Y,和Z.
函數
◆ function ClearParticles(): void
描述:從粒子系統中移除全部粒子。
particleEmitter.ClearParticles();
◆ function Emit(): void
描述:發射大量粒子
根據minEmission和maxEmission屬性使發射器發射隨機數量的粒子,
//在min和max直接發射隨機數量的粒子
particleEmitter.Emit();
◆ function Emit(count: int): void
描述:當即發射count數量的粒子
//發射10個粒子
particleEmitter.Emit(10);
◆ function Emit(pos: Vector3, velocity: Vector3, size: float, energy: float, color: color): void
描述:以給定的參數發射一個粒子。
//在原點處發射一個粒子
//粒子的大小是0.2而且它將存活2秒
particleEmitter.Emit(Vector3.zero, Vector3 up, 0.2,2 Color yellow);
Renderer
類,繼承來自Component
因此渲染器的通常功能
一個渲染器使物體顯示在屏幕上。對於任何遊戲物體或組件,它的渲染器可經過一個
renderer屬性來訪問。
renderer.enabled=false;//使這個物體不可見!
使用這個類來訪問任何物體的渲染器,網格或粒子系統。渲染器能夠被禁用使物體不
可見(參見enabled),而且能夠經過它們訪問並修改材質(參考material)。
參見:用於meshes,particles,lines和trails的渲染組件。
變量
◆ var bounds: Bounds
描述:渲染器的包圍邊界(只讀)
這個是在世界空間中徹底包圍物體的包圍盒。
使用bounds是方便的,能夠粗略地近似物體的位置和長寬高,例如,
renderer.bounds.center一般是比transform.position更精確地"物體的中心",尤爲是當物體
是對稱的時候。
參考Mesh.bounds屬性,這個屬性返回局部座標中網格的邊框.
//打印包圍盒x軸最左邊的點
print(renderer.bounds.min.x);
//打印包圍盒x軸最右邊的點
print(renderer.bounds.max.x);
//場景視圖中繪製一個網格球體
//徹底包圍這個球體
function OnDrawGizmosSelected(){
//一個徹底包圍這個包裹盒的球體
var center=renderer.bounds.center;
var radius=renderer.bounds.extents.magnitude;
//繪製它
Gizmos.color=Color.white;
Gizmos.DrawWireSphere(center,radius);
}
參見:Bounds類,Mesh.bounds屬性.
◆ var castShadows: bool
描述:這個物體投射陰影?
//使物體不投射陰影
renderer.castShadows=false;
參見:receiveShadows, Light.shadows.
◆ var enabled: bool
描述:若是啓用使渲染的3D物體可見。
//使這個物體不可見
renderer.en, abled=false;
//使這個物體可見
renderer.enabled=true;
//每秒切換一次物體的可見性
function Update(){
//當前秒是奇數仍是偶數
var seconds: int=Time.time;
var oddeven=(seconds%2)==0;
//據此啓用着色器
renderer.enabled=oddeven;
}
◆ var lightmapIndex: int
描述:應用到這個渲染器的光照圖的索引。
這個索引表示在LightmapSettings類中的光照貼圖.值-I表示沒有光照貼圖被賦值,這
個是默認的。這個索引不能大於254。
一個場景能夠有多個光照貼圖儲存在這裏,Renderer組件能夠使用這些光照貼圖中的一
個,這就使得它可以在多個物體上使用相同的材質,而這個物體能夠使用不一樣的光照貼圖或
同一個光照貼圖的不一樣部分。
參見:LightmapSettings類,lightmapTilingOffset屬性,ShaderLad properties.
◆ var lightmapTilingOffset: Vector4
描述:用於光照圖的平鋪和偏移。
一個場景能夠有多個光照貼圖存儲在這裏,Renderer組件能夠使用這些光照貼圖中的一
個。這就使得它可以在多個物體上使用相同的材質,而每一個物體能夠使用不一樣的光照貼圖或
同一個光照貼圖的不一樣部分。
向量的x和y表示光照圖縮放,z和w表示光照圖偏移.
參見:LightmapSettings類,lightmapIndex屬性,ShaderLab properties.
◆ var material: Material
描述:這個物體的材質。
修改material將只爲這個物體改變材質。
若是材質被任何其餘渲染器使用,這將克隆這個共享材質並從如今開始使用它。
//設置主顏色爲紅色
renderer.material.color=Color.red;
//每changeInterval秒從定義在檢視面板中的
//紋理數組中改變這個渲染器的材質
var materials: Material[];
var changeInterval=0.33;
function Update(){
if(materials.length==0)//若是沒有材質返回
return;
//計算材質的索引
var index: int=Time.time/changeInterval;
//對於材質數取模,這樣動畫能夠重複
index=index%materials.length;
//賦值它到渲染器
prenderer.sharedMaterial=material[index];
}
◆ var materials: Material[]
描述:這個物體的全部材質。
這是一個被渲染其實有的全部材質的數組。Unity支持一個物體使用多個材質;在這種
狀況下materials包含全部的材質。若是超過一個材質sharedMaterial和material屬性返回
第一個使用的材質。
修改任何在materials的材質將只改變那個物體的外觀.
print("I'm using"+renderer.materials.Length+"material(s)");
◆ var receiveShadows: bool
描述:這個物體接收陰影?
//使物體不接受陰影
renderer.receiveShadows=false;
參見:castShadows
◆ var sharedMaterial: Material
描述:這個物體的共享材質。
修改sharedMaterial將改變全部使用這個材質物體的外觀,而且改變的材質色繪製並
且改變的材質設置也被保存在工程中.
不建議修改由sharedMaterial返回的材質。若是你想修改一個渲染器的材質,使用
material。
參見:material屬性.
◆ var sharedMaterial: Material[]
描述:這個物體的全部共享材質。
這是一個渲染其使用的全部材質的數組。Unity支持一個物體使用多個材質;在這種
狀況下sharedMaterials包含全部的材質。若是有超過一個材質sharedMaterial和material屬
性返回第一個使用的材質。
修改任何sharedMaterial將改變全部使用這個材質物體的外觀,而且改變的材質設置
也被保存在工程中.
不建議修改由sharedMaterials返回的材質。若是你想修改一個渲染器的材質,使用
material。
print("I'm using"+renderer.sharedMaterials.Length+"material(s)");
參見:material.sharedMaterial屬性.
消息傳遞
◆ function OnBecameInvisible(): void
描述:OnBecameVisible函數在這個物體對任何相機變得不可見時被調用.
這個消息被髮送到全部附加在渲染器上的腳本。OnBecameVisible和OnBecameInvisible
能夠用於只須要在物體可見時才進行的計算。
//當它不可見時禁用這個行爲
function OnBecameVisible(){
enabled=false;
}
注意:當在編輯器中運行時,場景視圖相機也會致使這個函數被調用。
參見:OnBecameVisible.
◆ function OnBecamevisible(): void
描述:OnBecameVisible函數在這個物體對任何相機變得不可見時被調用.
這個消息被髮送到全部附加在渲染器上的腳本。OnBecameVisible和OnBecameInvisible
能夠用於只須要在物體可見時才進行的計算。
//當它不可見時禁用這個行爲
function OnBecameVisible(){
enabled=true;
}
注意:當在編輯器中運行時,場景視圖相機也會致使這個函數被調用。
參見:OnBecameInvisible.
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
LineRenderer
類,繼承自Renderer
LineRender用於在3D空間中繪製浮動的線。
這個類是line renderer組件的腳本接口.
變量
◆ var userWorldSpace: bool
描述:若是啓用,這個線定義在世界空間中。
函數
◆ function SetColors(start: Color, end: Color): void
描述:設置線開始和結束位置的顏色。
◆ function SetPostition(index: int, position: Vector3): void
描述:設置線上點的位置。
參見:SetVertexCount函數.
◆ function SetVertexCount(count: int): void
描述:設置線段數
參見:SetPosition函數.
◆ function SetWidth(start: float, end: float): void
描述:設置開始和結束位置的線寬。
繼承的成員
繼承的變量
enabled 若是啓用使渲染的3D物體可見。
castShadows 這個物體投射陰影?
receiveShadows 這個物體接收陰影?
material 這個物體的材質。
sharedMaterial 這個物體的共享材質。
sharedMaterials 這個物體的全部共享材質。
materials 這個物體的全部材質。
bounds 渲染器的包圍邊界(只讀)。
lightmapIndex 應用這個渲染器的光照圖的索引。
lightmapTilingOffset 用於光照圖的平鋪和偏移。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有
爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有
爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物
體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnBecameVisible OnBecameVisible函數在這個物體對任何相機變得可見時被調
用.
OnBecameInvisible OnBecameInvisible函數在這個物體對任何相機變得可見時被調
用.
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
MeshRenderer
類,繼承自Renderer
渲染自MeshFilter或TextMesh插入的網格。
繼承的成員
繼承的變量
enabled 若是啓用使渲染的3D物體可見。
castShadows 這個物體投射陰影?
receiveShadows 這個物體接收陰影?
material 這個物體的材質。
sharedMaterial 這個物體的共享材質。
sharedMaterials 這個物體的全部共享材質。
materials 這個物體的全部材質。
bounds 渲染器的包圍邊界(只讀)。
lightmapIndex 應用這個渲染器的光照圖的索引。
lightmapTilingOffset 用於光照圖的平鋪和偏移。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有
爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有
爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物
體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnBecameVisible OnBecameVisible函數在這個物體對任何相機變得可見時被調
用.
OnBecameInvisible OnBecameInvisible函數在這個物體對任何相機變得可見時被調
用.
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
ParticleRenderer
類,繼承自Renderer
在屏幕上渲染粒子。
這個類是particle renderer組件的腳本接口.
變量
◆ var camera VelocityScale: float
描述:粒子被拉伸多少取決於camera的速度。
若是相機具備較大的速度,使用這個使粒子變得較大。
◆ var lengthScale: float
描述:粒子在它的運動方向上拉伸多少。
使用這個使粒子老是比較長。
◆ var maxParticleSize: float
描述:最大的粒子尺寸
粒子會給填充率帶來嚴重負擔。使用這個設置來確保靠近觀察者時,它們不會佔用過
多的性能。
◆ var particleRenderMode: ParticleRenderMode
描述:粒子如何被繪製
◆ var uvAnimationCycles: float
描述:設置UV動畫循環
◆ var uvAnimationXTile: int
描述:設置水平平鋪數。
◆ var uvAnimationYTile: int
描述:設置垂直平鋪數。
◆ var velocityScale: float
描述:粒子被拉伸多少取決於"它們移動的多快"。
使用這個使粒子隨着它們的速度變長。
繼承的成員
繼承的變量
enabled 若是啓用使渲染的3D物體可見。
castShadows 這個物體投射陰影?
receiveShadows 這個物體接收陰影?
material 這個物體的材質。
sharedMaterial 這個物體的共享材質。
sharedMaterials 這個物體的全部共享材質。
materials 這個物體的全部材質。
bounds 渲染器的包圍邊界(只讀)。
lightmapIndex 應用這個渲染器的光照圖的索引。
lightmapTilingOffset 用於光照圖的平鋪和偏移。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有
爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有
爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物
體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?

繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnBecameVisible OnBecameVisible函數在這個物體對任何相機變得可見時被調
用.
OnBecameInvisible OnBecameInvisible函數在這個物體對任何相機變得可見時被調
用.
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
SkinnedMeshRenderer
類,繼承自Renderer
蒙皮網格過濾器
變量
◆ var bones: Transform[]
描述:用於蒙皮網格的骨骼。
function Start(){
gameObject.AddComponent(Animation);
gameObject.AddComponent(MeshFilter);
gameObject.AddComponent(MeshRenderer);
gameObject.AddComponent(SkinnedMeshFilter);
//構建基本網格
var mesh: Mesh=new Mesh();
mesh.vertices=[Vector3(-1,0,0), Vector3(1,0,0), Vector3(-1,5,0), Vector3(1,5,0)];
mesh.uv=[Vector2(0,0), Vector2(1,0), Vector2(0,0), Vector2(0,1), Vector2(1,1),];
mesh.triangles=[0,1,2,1,3,2];
mesh.RecalculateNormals();
//賦值網格到mesh filter和renderer
GetComponent(MeshFilter).mesh=mesh;
renderer.material=new Material(Shader.Find(" Diffuse"));
//賦值骨骼權值到網格
//使用兩個骨骼,一個用於上部的頂點,一個用於下部的頂點
var weights=new BoneWeight[4];
weights[0].boneIndex0=0;
weights[0].weight0=1;
weights[1].boneIndex0=0;
weights[1].weight0=1;
weights[2].boneIndex0=1;
weights[2].weight0=1;
weights[3].boneIndex0=1;
weights[3].weight0=1;
mesh.boneWeights=weights;
//建立骨骼變換並綁定姿式
//一個骨骼在頂部一個在底部
var bones = new Transform[2];
var bindPoses = new Matrix4x4[2];
bones[0] = new GameObject("Lower").transform;
bones[0].parent = transform;
//設置相對於父的位置
bones[0].localRotation = Quaternion.identity;
bones[0].localPosition = Vector3.zero;
//綁定姿式是骨骼的逆變換矩陣
//在這種狀況下咱們也要使這個矩陣是相對與根的
//這樣咱們就可以隨意移動根物體了
bindPoses[0] = bones[0].worldToLocalMatrix * transform.localToWorldMatrix;
bones[1] = new GameObject("Upper").transform;
bones[1].parent = transform;
//設置相對於父的位置
bones[1].localRotation = Quaternion.identity;
bones[1].localPosition = Vector3(0,5,0);
//綁定姿式是骨骼的逆變換矩陣
//在這種狀況下咱們也要使這個矩陣是相對與根的
//這樣咱們就可以隨意移動根物體了
bindPoses[1] = bones[1].worldToLocalMatrix * transform.localToWorldMatrix;
//賦值骨骼並綁定姿式
GetComponent(SkinnedMeshFilter).bones = bones;
GetComponent(SkinnedMeshFilter).bindPoses = bindPoses;
GetComponent(SkinnedMeshFilter).mesh = mesh;
//賦值一個簡單的揮動動畫到底部的骨骼
var curve = new AnimationCurve();
curve.keys = [new Keyframe(0,0,0,0), new Keyframe(1,3,0,0), new Keyframe(2,0.0,0,0)],
//使用曲線建立剪輯e
var clip = new AniamtionClip();
clip.SetCurve("Lower", Transform, "m_LocalPosition.z", curve);
//添加並播放剪輯
animation.AddClip(clip, "test");
aniamtion.Play("test"),
}
@ script RequireComponent(Animation)
◆ var quality: SkinQuality
描述:影響單個頂點的最大骨骼數量
renderer.quality = SkinQuality.Bone2;
◆ var sharedMesh: Mesh
描述:用於蒙皮的網格
◆ var skinNormals: bool
描述:若是啓用,幾何體法線將隨着骨骼動畫更新。
參見:Skinned Mesh Renderer component.
◆ var updateWhenOffscreen: bool
描述:若是啓用,蒙皮網格將在離屏的時候更新。若是禁用,也將禁用動畫更新。
參見:Skinned Mesh Renderer component.
繼承的成員
繼承的變量
enabled 若是啓用使渲染的3D物體可見。
castShadows 這個物體投射陰影?
receiveShadows 這個物體接收陰影?
material 這個物體的材質。
sharedMaterial 這個物體的共享材質。
sharedMaterials 這個物體的全部共享材質。
materials 這個物體的全部材質。
bounds 渲染器的包圍邊界(只讀)。
lightmapIndex 應用這個渲染器的光照圖的索引。
lightmapTilingOffset 用於光照圖的平鋪和偏移。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有
爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有
爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物
體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
描述:trail在出生點處的寬度。
參見:endWidth變量.
◆ var time: float
描述:尾跡多長時間會消失。
繼承的成員
繼承的變量
enabled 若是啓用使渲染的3D物體可見。
castShadows 這個物體投射陰影?
receiveShadows 這個物體接收陰影?
material 這個物體的材質。
sharedMaterial 這個物體的共享材質。
sharedMaterials 這個物體的全部共享材質。
materials 這個物體的全部材質。
bounds 渲染器的包圍邊界(只讀)。
lightmapIndex 應用這個渲染器的光照圖的索引。
lightmapTilingOffset 用於光照圖的平鋪和偏移。
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有
爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有
爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物
體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnBecameVisible OnBecameVisible函數在這個物體對任何相機變得可見時被調
用.
OnBecameInvisible OnBecameInvisible函數在這個物體對任何相機變得可見時被調
用.
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
Rigidbody
類,繼承自Component
經過物理模擬控制一個物體的位置。
Rigidbody組件控制對象的位置 - 它使物體在重力影響下下落,並可計算物體如何響
應碰撞。
當操做剛體參數的時候,你應該在FixedUpdate函數中使用它,物理模擬以離散的時間
步執行。FixedUpdate函數在每一步以前被當即調用。
須要注意的事是什麼時候使用剛體:
1. 若是你的模擬看起來像慢動做而且不真實:
這是縮放的問題。若是你的遊戲世界很是大,因此的東西將顯示的很是慢,確保全部
你的模型有審視世界的大小。例如,一個汽車應該有4米長,一個角色2米高。物體以相
同的加速度下落,不論它大仍是小,重或是輕。若是你的遊戲時間有較大的縮放,物體將
仍是以相同的加速度下落。可是由於物體都比較大,因此物體的下落顯得比較慢。
變量
◆ var angularDrag: float
描述:物體的角阻力。
角阻力能夠用來減緩物體的旋轉。阻力越大,旋轉減緩的越快。
rigidbody.angularDrag=10;
◆ var angularVelocity: Vector3
描述:剛體的角速度向量
在大多數狀況下,你不該該直接修改它,覺得這會致使不真實的結果。
//根據旋轉的速度改變材質
var fastWheelMaterial: Material;
var slowWheelMaterial: Material;
function Update(){
if(rigidbody.angularVelocity.magnitude<5){
renderer.sharedMaterial=slowWheelMaterial;
}
else
{
renderer.sharedMaterial=fastWheelMaterial;
}
}
◆ var centerOfMass: Vector3
描述:相對於變換,原點的重心。
若是你不從腳邊中設置重心,它將從全部附加到剛體的碰撞器上自動計算,當模擬汽車
時,設置重心是很是有用的,能夠使它更加穩定。具備較低重心的汽車不太可能傾翻。
rigidbody.centerOfMass=Vector3(0,-2,0);
◆ var detectCollisions: bool
描述:碰撞檢測應該啓用? (默認老是啓用的)
禁用碰撞檢測是有用的,若是有一我的偶,它被設置爲運動學而且你想避免剛體上大量
的碰撞檢測計算,detectCollisions是非序列化的,也就是說,它不會顯示在檢視面板中而且
當在場景中實例化或保存這個剛體時,它將不被保存。
///讓動畫控制這個剛體並忽略碰撞
rigidbody.isKinematic=true;
rigidbody.detectCollision=false;
///讓剛體使用空,檢測碰撞
rigidbody.isKinematic=false;
rigidbody.detectCollision=true;
◆ var drag: float
描述:物體的阻力
阻力可用來減緩物體的速度。阻力越大,旋轉減緩的越快。
function OpenParachute(){
rigidbody.drag=20;
}
function Update(){
if(Input.GetButton("Space"))
{
OpenParachute();
}
}
◆ var freezeRotation: bool
描述:控制物理是個改變物體的旋轉。
若是freezeRotation被啓用,旋轉不會被物體模擬修改。這對於建立第一人稱射擊時有
用的,由於玩家須要使用鼠標徹底控制旋轉。
//凍結旋轉
rigidbody.freezeRotation=true;
◆ var intertiaTensor: Vector3
描述:相對於重心的質量對角慣性張量。
慣性張量是被intertiaTensorRotation旋轉的。若是你不從腳本中設置慣性張量,它將從
因此附加到剛體的碰撞器上自動計算。
//長磚的慣性張量
rigidbody.intertiaTensor=Vector3(5,1,1);
◆ var intertiaTensorRotation: Quaternion
描述:慣性張量旋轉。
若是你不從腳本中設置慣性張量旋轉,它將從全部附加到剛體的碰撞器上自動計算。
//重置慣性張量爲變換的座標系統
rigidbody.intertiaTensorRotation=Quaternion,identity;
◆ var interpolation: RigidbodyInterpolation
描述:插值容許你以固定的幀率平滑物理運行效果。
默認,插值是關閉的。普通的剛體插值用於玩家角色。物理以離散的時間步運行,而
顯卡以可變的幀率渲染。這可能致使物體的抖動,由於物理和顯卡不徹底同步。這個效果
是細微的可是一般會在玩家角色上看到,尤爲是若是相機跟隨主角色。建議爲主角色打開
插值,可是禁用其餘物體上的插值。
//是剛體插值
rigidbody.interpolation=RigidbodyInterpolation.Interpolate;
◆ var isKinematic: bool
描述:控制物理是夠影響這個剛體。
若是isKinematic啓用,力,碰撞和關節將不會再影響這個剛體。剛體經過改變
transform.postion由動畫或腳本的徹底控制。動力學剛體也會經過碰撞或關機影響其餘剛體
的運動。例如,能夠使用關節連接一個普通的剛體到動力學剛體,如今這個剛體受到動力學
剛體運動的約束。動力學剛體也被用於製做角色,這個角色一般是由動畫驅動的,可是在
某些事件中能夠經過設置isKinematic爲false來說它快速轉化爲一我的偶。
//不讓剛體受到物理的影響!
rigidbody.isKinematic=true;
◆ var mass: float
描述:剛體的質量
你應該保持質量接近0.1而且不要超過10。大的質量會使物理模擬不穩定。
當碰撞時較大質量的物體推進較小質量的物體。考慮一個大卡車,裝上一個小汽車。
一個常見的錯誤時重的物體比輕的物體下落的快。這是不對的,速度依賴於重力和阻
力。
rigidbody.mass=0.5;
◆ var maxAngularVelocity: float
描述:剛體的最大角速度向量(默認7)範圍{0,infinity}
剛體的角速度最大爲maxAngularVelocity以免高速旋轉物體的數值不穩定性。由於
這也許會阻止企圖快速旋轉的物體,例如車輪,你能夠使用逐剛體重載該值。
rigidbody.maxAngularVelocity=10;
◆ var position: Vector3
描述:剛體的位置
這個與設置transfor.position相同,然而position只在物理的最後一步被應用到變換。
若是你想連續移動一個剛體或運動學剛體,使用MovePosition和MoveRotation。
function Start(){
rigidbody.position=Vectorr3.zero;
}
◆ var rotation: Quaternion
描述:剛體的旋轉
這個與設置transform.rotation相同,然而rotation只在物理的最後被應用到變換。若是
你想連續移動一個剛體或運動學剛體,使用MovePosition和MoveRotation。
function Start(){
rigidbody.rotation=Quaternion.identity;
}
◆ var sleepAngularVelocity: float
描述:角速度,低於該值的物體將開始休眠。(默認0.14)範圍{0, infinity}
參考Rigidbody Sleeping獲取更多信息。
◆ var sleepVelocity: float
描述:線行速度,低於該值的物體將開始休眠。(默認0.14)範圍{0, infinity}
參考Rigidbody Sleeping獲取更多信息。
Rigidbody.sleepingVelocity=0.1;
◆ var solverIterationCount: int
描述:容許你覆蓋每一個剛體的求解迭代數。
solverIterationCount決定關節和接觸點如何精確地計算。若是出現連接的物體震盪和行
爲怪異,爲solver Iteration Count設置一個較高的值將改善他們的穩定性。
rigidbody.solverIterationCount=10;
◆ var useConeFriction: bool
描述:用於該鋼鐵的立錐摩擦力
這確保全部接觸包含的行爲將使用錐摩擦力。這對於性能有負面影響。默認這個是關
閉的,一個更快和更好的被稱爲金字塔摩擦的近似方法被使用。在大多數狀況下建議保留
這個值爲關閉。
◆ var useGravity: bool
描述:控制重力是否影響這個剛體
若是設置爲假剛體的行爲會像是在外層空間。
在全部進入這個碰撞器的全部剛體上禁用重力
function OnTriggerEnter(other: Collider)
{
if(other.attachedRigidbody)
{
other.attachedRigidbody.useGravity=false;
}
}
//啓用時將這個碰撞器改變爲一個觸發器
collider.isTrigger=true;
◆ var velocity: Vector3
描述:剛體的速度向量
在大多數狀況下,你不該該直接修改速度,由於這會致使不真實的結果。不要再每一個
物體步設置物體的速度,這將致使不真實的物理模擬。一個典型的例子是,當你在FPS中
使用跳的時候,改變速度,由於你想當即改變速度。
function FixedUpdate(){
if(Input.GetButtonDown("Jump")){
rigidbody.velocity.y=10;}
}
◆ var worldCenterOfMass: Vector3
描述:世界空間中剛體的質量重心(只讀)。
函數
◆ function AddExplosionForce (explosionForce : float, explosionPosition : Vector3,
explosionRadius : float, upwardsModifier : float = 0.0F, mode : ForceMode = 
ForceMode.Force): void
描述:應用一個力到剛體來模擬爆炸效果。爆炸力將隨着到剛體的距離線形衰減。
這個功能也對人偶有很好的做用。若是radius爲0,將使用所有的力不論position距
離剛體多遠.upwardModifier就像從物體下方使用這個力. 這個是很是有用的,覺得爆炸
將向上拋這個物體而不是將它們推向一邊,這個看起來很是的酷。值2將應用一個力在低
於物體2米處,然而不會改變實際的爆炸位置. explosionPositon是爆炸力被應用的位置.
explosionRadius是爆炸的半徑,超過explosionRadius距離的剛體將不會受到影響.
var radius=5.0;
var power=10.0;
function Start(){
//應用一個爆炸力到全部附加的剛體上
var explosionPos=transform.position;
var colliders: Collider[]=Physics.OverlapSphere(explosionPos, radius);
for (var hit in colliders){
if(!hit)
continue;
if(hit.rigidbody){
hit.rigidbody.AddExplosionForce(power.explosionPos, radius, 3.0);
}
}
}
◆ function AddForce(force: Vector3, mode: ForceMode=ForceMode.Force): void
 
描述:爲剛體添加一個力。做爲結果剛體將開始移動。
//在全局座標空間中添加一個向上的力
function FixedUpdate(){
rigidbody.AddForce(Vector3.up*10);
}
◆ function AddForce(x: float, y: float, z: float, mode: ForceMode=ForceMode.Force): void
描述:爲剛體添加一個力,做爲結果剛體將開始移動。
//全局座標空間中添加一個向上的力
function FixedUpdate(){
rigidbody.AddForce(0,10,0);
}
若是你想在多針幀中使用力,你應該在FixedUpdate中而不是Update使用使用它。
◆ function AddForceAtPosition(force: Vector3, position: Vector3, mode: ForceMode=
ForceMode.Force): void
描述:在位置position處使用force。這個將應用力矩和力到這個物體上。
對於真的的效果position應該近似地在剛體表面的範圍內. 這個最經常使用於爆炸。當使用
爆炸的時候最好應用力到多幀而不是一幀中。主要當position遠離剛體的中心時,使用的力
矩陣將很是不真實。
function ApplyForce(body: Rigidbody){
direction=body.transform.position-transform.position;
body.AddForceAtPosition(direction.normalized, transform.position);
}
◆ function AddRelativeForce(force: Vector3, mode: ForceMode=ForceMode.Force): void
描述:相對於它的座標系統添加一個力到剛體。
做爲結果剛體將開始移動。
//沿着自身z軸向前移動剛體
function FixedUpadate(){
rigidbody.AddRelativeForce(Vector3.forward*10);
}
◆ function AddRelativeForce(x: float, y: float, z: float, mode: ForceMode=
ForceMode.Force): void
描述:相對於它的座標系統添加一個力到剛體。
做爲結果剛體將開始移動。
//沿着自身z軸向前移動剛體
function FixedUpadate(){
rigidbody.AddRelativeForce(0,0,10);
}
若是你想在多幀中使用力,你應該在FixedUpdate中而不是Update使用使用它。
◆ function AddRelativeTorque(torque: Vector3, mode: ForceMode=ForceMode.Force): 
void
描述:相對於剛體自身的座標系統,添加一個力矩到剛體。
剛體將繞着torque軸旋轉。
//繞着全局y軸旋轉剛體
function FixedUpadate(){
rigidbody.AddRelativeForce(Vector3.up*10);}
◆ function AddRelativeTorque(x: float, y: float, z: float, mode: ForceMode=
ForceMode.Force): void
描述:相對於剛體自身的座標系統,添加一個力矩到剛體。
剛體將繞着torque軸旋轉。
//繞着自身y軸旋轉剛體
function FixedUpadate(){
rigidbody.AddRelativeForce(0,10,0);}
若是你想在多幀中使用力,你應該在FixedUpdate中而不是Update使用使用它。
◆ function AddTorque((torque: Vector3, mode: ForceMode=ForceMode.Force): void
描述:爲剛體添加一個力矩。
剛體將繞着torque軸旋轉。
//繞着全局y軸旋轉剛體
function FixedUpadate(){
rigidbody.AddTorque(Vector3.up*10);
}
若是你想在多幀中使用力,你應該在FixedUpdate中而不是Update使用使用它。
◆ function AddTorque(x: float, y: float, z: float, mode: ForceMode=ForceMode.Force): 
void
描述:爲剛體添加一個力矩。
剛體將繞着torque軸旋轉。
/繞着全局y軸旋轉到剛體
function FixedUpadate(){
rigidbody.AddTorque(0,10,0);
}
◆ function ClosestPointOnBounds(position: Vector3): Vector3
描述:到碰撞器包圍盒上最近點。
這能夠用來計算受到爆炸傷害時的傷害點數。或計算做用到剛體表面上一個點的爆炸
力。
var hitPoints=10.0;
function ApplyHitPoints(explostionPos: Vector3, radius: float){
//從爆炸位置到剛體表面的距離
var ClosestPoint=rigidbody.ClosestPointOnBounds(explosionPos);
var distance=Vector3f.Distance(closestPoint, explosionPos);
//傷害點數隨着到傷害的距離而下降
var damage=1.0-Mathf.Cllamp01(distance/radius);
//這是咱們要用的最終傷害點數。 10 at maximum
damage*=10;
//應用傷害
hitPoints=damage;
}
◆ function GetPointVelocity(worldPoint: Vector3): Vector3
描述:剛體在世界空間中worldPoint點處的速度.
GetPointVelocity在計算速度的時候將考慮剛體的angularVelocity。
//打印車輪的速度
point=transform.InverseTransformPoint(Vector3(0,-2,0));
var velocity=rigidbody.GetPointVelocity(point);
print(velocity.magnitude);
◆ function GetRelativeVelocity(relativePoint: Vector3): Vector3
描述:相對於剛體在relativePoint處的速度。
GetRelativePointVelocity在計算速度的時候將考慮剛體的angularVelocity。
//打印車輪的速度
var relativeVelocity=rigidbody.GetRelativePointVelocity(Vector3(0,-2,0));
print(relativeVelocity.magnitude);
◆ function IsSleeping(): bool
描述:剛體處於休眠?
參考Rigidbody Sleeping獲取更多信息。
if(rigidbody.IsSleeping())
print("Sleeping");
◆ function MovePosition(position: Vector3): void
描述:移動剛體到position.
對於運動學剛體,它基於剛體的運動應用摩擦力。這個讓你模擬剛體位於移動平臺之
上的狀況。若是你想其餘的剛體與運動學剛體交互,你須要在FixedUpdate函數中移動它。
var speed=Vector3(3,0,0);
function FixedUpdate()
{
rigidbody.MovePosition(rigidbody.position+speed*Time.deltaTime);
}
◆ function MoveRotation(rot: Quaternion): void
描述:旋轉剛體到rotation.
對於運動學剛體,它基於剛體的運動應用摩擦力。這個讓你模擬剛體位於移動/旋轉平
臺之上的狀況。若是你想其餘的剛體與運動學剛體交互,你須要在FixedUpdate函數中移
動它。
var eulerAngleVelocity=Vector3(0,100,0);
function FixedUpdate()
{
var deltaRotation=Quaternion.Euler(eulerAngleVelocity*Time.deltaTime);
rigidbody.MoveRotation(rigidbody.rotation*deltaRotation);
}
◆ function SetDensity(density: float): void
描述:基於附加的剛體和固定的密度設置質量。
這個能夠用來設置質量爲隨着碰撞器的尺寸而縮放。
rigidbody.SetDensity(1.5);
◆ function Sleep(): void
描述:強制剛體休眠至少一幀
一個常見的使用是從Awake中調用它以便使剛體在啓用的時候休眠。參考Rigidbody
Sleeping獲取更多信息。
rigidbody.Sleeping()
◆ function WakeUp(): void
描述:強制剛體甦醒
rigidbody.WakeUp()
參考Rigidbody Sleeping獲取更多信息。
消息傳遞
◆ function OnCollisionEnter(collisionInfo: Collision): void
描述:當這個碰撞器/剛體開始碰撞另外一個剛體/碰撞器時OnCollisionEnter被調用。
相對於OnTriggerEnter,OnCollisionEnter傳遞Collision類而不是Collider.Collision類包
含接觸點,碰撞速度等細細。若是在函數中不使用collisionInfo,省略collisionInfo參數以避
免沒必要要的計算。主要若是碰撞器附加了一個非動力剛體,也只發送碰撞事件。
function OnCollisionEnter(collision:Collision){
//調試繪製因此的接觸點和法線
for(var contact:ContactPoint in collision.contacts){
Debug.DrawRay(contact.point, contact.normal, Color.white);
}
//若是碰撞物體有較大的衝勁就播放聲音
if(collision.relativeVelocity.magnitude>2)
audio.Play();
}
//一枚手榴彈
//-在擊中一個表面時初始化一個爆炸預設
//-而後銷燬它
var explosionPrefab: Transform;
function OnCollisionEnter(collision: Collision){
//旋轉這個物體使y軸面向沿着表面法線的方向
var contact-collision.contacts[0];
var rot=Quaternion.FormToRotation(Vector3.up, contact.mormal);
var pos=contact.point;
Instantiate(explosionPrefab, pos, rot);
//銷燬這個發射物
Destroy(gameObject);
}
◆ function OnCollisionExit(collisionInfo: Collision): void
描述:當這個碰撞器/剛體中止碰撞另外一個剛體/碰撞器時OnCollisionExit被調用。
相對於OnTriggerExit,OnCollisionExit傳遞Collision類而不是Collider.Collision類包含
接觸點,碰撞速度等細細。若是在函數中不使用collisionInfo,省略collisionInfo參數以免
沒必要要的計算。主要若是碰撞器附加了一個非動力剛體,也只發送碰撞事件。
function OnCollisionExit(collision:Collision){
print("No longer in contact with "+collisionInfo.transform.name);
}
◆ function OnCollisionStay(collisionInfo: Collision): void
描述:對於每一個與剛體/碰撞器相觸碰的碰撞器/剛體,OnCollisionStay將在每一幀中被調
用。
相對於OnTriggerStay,OnCollisionStay傳遞Collision類而不是Collider.Collision類包含
接觸點,碰撞速度等細細。若是在函數中不使用collisionInfo,省略collisionInfo參數以免
沒必要要的計算。主要若是碰撞器附加了一個非動力剛體,也只發送碰撞事件。
function OnCollisionStay(collision:Collision){
function OnCollisionEnter(collision:Collision){
//調試繪製因此的接觸點和法線
for(var contact:ContactPoint in collision.contacts){
Debug.DrawRay(contact.point, contact.normal, Color.white);
}
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
 
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
TextMesh
類,繼承自Component
text mesh component的腳本接口
參見:text mesh component.
變量
◆ var font: Font
描述:使用的Font.
參見:text mesh component.
//設置附加的文本網格的文本
var newFont: Font;
GetComponent(TextMesh).font=newFont;
◆ var font: string
描述:顯示的文本.
參見:text mesh component.
//設置附加的文本網格的文本
GetComponent(TextMesh).text="Hello World";
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
Transform
類,繼承自Behaviour,可計數
物體的位置,旋轉和縮放。
場景中的每一個物體都有一個變換。這個用來存儲並操做物體的位置,旋轉和縮放,每
個變換能夠有一個父,它容許你層次地應用位置,旋轉和縮放。這個是能夠在層次面板中
看到的層次,它們也支持計數器,這樣你能夠循環因此使用的子:
//變量的全部子像是移動10個單位!
for(var child: Transform in transform){
child.position+=Vector3.up*10.0;
}
參見:The component reference, Physics類.
變量
◆ var childCount: int
描述:變化的子的數量。
//打印子物體的數量
print(transform.childCount);
◆ var eulerAngles: Vector3
描述:旋轉做爲歐拉角度。
僅僅使用這個變量來讀取和設置絕對值角度。不要遞增它們,由於當該角度超過360
度時它將失敗。使用Transform.Rotate代替.
//打印繞着全局x軸的旋轉角度
print(transform.eulerAngles.x);
//打印繞着全局y軸的旋轉角度
print(transform.eulerAngles.y);
//打印繞着全局z軸的旋轉角度
print(transform.eulerAngles.z);
//使用eulerAngles賦值絕對旋轉
var yRotation=5.0;
function Update()
{
yRotation+=Input.GetAxis("Horizontal");
transform.eulerAngles=Vector3(10,yRoation,0);
}
不要分別設置eulerAngles軸的(例如eulerAngles.x=10)覺得這將致使偏移和不指望的
旋轉。當設置它們爲新值的時候,同事所有設置它們,如上所示。Unity將轉化儲存在
Transfor.rotation中的角度。
◆ var forward: Vector3
描述:在世界空間中變換的藍色軸。
//設置剛體的速度爲
//沿着變換的藍色軸
rigidbody.velocity=transform.forward*10;
//計算target變換和這個物體之間的角度
var angleBetween=0.0;
var target: Transform;
function Update()
{
var targetDir=target.position-transform.position
angleBetween=Vector3.Angle(transform.forward, targetDir);
}
◆ var localEulerAngles: Vector3
描述:相對於父變換旋轉的歐拉角度。
僅僅使用這個變量來讀取和設置絕對值角度。不要遞增它們,由於當該角度超過360
度時它將失敗。使用Transform.Rotate代替.
//打印繞着父x軸的旋轉
print(transform.localEulerAngles.x);
//打印繞着父y軸的旋轉
print(transform.localEulerAngles.y);
//打印繞着父z軸的旋轉
print(transform.localEulerAngles.z);
Unity將自動轉化存儲在Transform.localRotation中的角度。
◆ var localPosition: Vector3
描述:該變換的位置相對於父變換。若是變換沒有父,它與Transform.position相同。
//移動物體到與父物體相同的位置
Transform.localPosition=Vector3(0,0,0);
//獲取相對於父位置的y組件
//並打印它到控制檯
print(transform.localPosition.y);
注意,當計算世界位置時父變換的世界旋轉和縮放將被應用到本地位置。這就是說
Transform.position的1單位老是1單位。Transform.localPosition的1單位將受到全部父縮放
的影響。
◆ var localRotation: Quaternion
描述:該變換相對於父變換旋轉的旋轉。
Unity內部以四元組方式存儲旋轉。使用Transform.Rotate旋轉物體. 使用
Transform.localEulerAngles來修改旋轉的歐拉角。
//設置旋轉與父相同
Transform.localRotation=Quaternion.identity;
◆ var localScale: Vector3
描述:該變換相對於父的縮放。
Transform.localScale.x+=0.1;// 物體加寬0.1
◆ var localToWorldMatrix: Matrix4x4
描述:從本地空間到世界空間的變換矩陣(只讀)。
若是你對使用矩陣進行座標變換不熟悉那麼使用Transform.TransformPoint代替.
◆ var lossyScale: Vector3
描述:對象的全局縮放。
請注意,若是有一個父變換,該變化具備縮放而且它的子被隨意縮放,那麼該縮放是有
偏差的。所以縮放不能正確地表示在一個3組件向量中,而是一個3x3矩陣。這樣的表示
是很是麻煩的,並且lossyScale是一個方便的屬性,它儘可能匹配實際世界縮放。若是你的
物體部沒有誤差,這個值將是徹底正確的。若是包含誤差,差異也不回太大。
print(transform.lossyScale);
◆ var parent: Transform
描述:變換的父
改變父將修改相對父的位置,縮放和旋轉可是世界空間的位置,旋轉和縮放時相同的,
//經過使相機成爲該物體的子
//使它跟隨這個物體.
//獲取相機的變換
var cameraTransform=Camera main.transform;
//使它成爲當前物體的子
cameraTransform.parent=transform;
//放置在當前物體以後
cameraTransform.localPosition=Vector3.forward*5;
//使它指向這個物體
cameraTransform.LookAt(transform);
//從變換的父上斷開
transform.parent=mull;
◆ var position: Vector3
描述:在世界空間中變換的位置.
//移動物體到(0,0,0)
transform.position=Vector3(0,0,0);
//打印位置的x組件到控制檯
print(transform.position.x);
◆ var right: Vector3
描述:在世界空間中變換的紅色軸.
//設置剛體的速度爲
//沿着變換的綠色軸
rigidbody.velocity=transform.right*10;
◆ var root: Transform
描述:返回層次最頂端的變換。
(這個永遠不會爲Null,若是這個Transform沒有父它返回它自身.)
//兩個碰撞的物體是否有不一樣的層次?
function OnCollisionEnter(collision){
if(collision.other.transform.root!=transform.root){
print("The colliding objects are not in the same hierachy");
}
}
◆ var rotation: Quaternion
描述:在世界空間中做爲Quaternion存儲的旋轉.
Unity內部以四元組方式存儲旋轉。使用Transform.Rotation旋轉物體,使用
Transform.eulerAngles來修改旋轉的歐拉角
//重置世界旋轉
Transform.Rotation=Quaternion.identity
//平滑地向一個target旋轉傾斜
var smooth=2.0;
var tiltAngle=30.0;
function Update(){
var tiltAroundZ=Input.GetAxis("Horizontal")*tiltAngles;
var tiltAroundX=Input.GetAxis("Vertical")*tiltAngles;
var target=Quaternion.Euler(tiltAroundX,0,tiltAroundZ);
//向target旋轉衰減
Transform.Rotation=Quaternion.Slerp(Transform.Rotation,target,Time.deltaTime*smooth);;
}
◆ var up: Vector3
描述:在世界空間中變換的綠色軸。
//設置剛體的速度爲
//沿着變化的綠色軸
rigidbody.velocity=transform.up*10;
◆ var worldToLocalMatrix: Matrix4x4
描述:從世界空間到本地空間的變化矩陣(只讀)
若是你對使用矩陣進行座標變換不熟悉那麼使用Transform.InverseTransformPoint代替.
函數
◆ function DetachChildren(): void
描述:解除因此的子的父子關係。
若是你想銷燬層次的根而不銷燬它的子,能夠使用這個。
transform.DetachChildren();
Destroy(gameObject);
參見:Transfrom.parent來分開/改變單個變換的父.
◆ function find(name: string): Transform
描述:根據name查找子並返回它.
若是沒有子具備名稱name返回null.若是name包含V字符它將像一個路徑名同樣穿越
層次.
//旋轉手指
function Update(){
aFinger=transform.find("LeftShoulder/Arm/Hand/Finger");aFinger.Rotate(Time.delta.Time*20,0,0);
}
◆ function InverseTransfromDirection(direction: Vector3): Vector3
描述:從世界空間到本地空間變換direction。相對於Transform.TransfromDirection.
這個操做不受變換的影響。
//變換世界朝向到本地空間;
relative=transform.InverseTransfromDirection(Vector3.forward);
◆ function InverseTransfromDirection(x: float, y: float, z: float): Vector3
描述:從世界空間變換方向x,y,z到本地空間。相對於Transform.TransfromDirection.
這個操做不受變換的影響。
//變換世界朝向到本地空間;
relative=transform.InverseTransfromDirection(0,0,1);
◆ function InverseTransfromPoint(position: Vector3): Vector3
描述:從世界空間到本地空間變換position。相對於Transform.TransformPoint.
注意返回位置會受到縮放的影響。若是你在處理方向,使用
Transform.InverseTransfromDirection.
//計算相對於相機的變換位置
camera=Camera.main.transform;
cameraRelative=camera.InverseTransfromPoint(transform.position);
if(cameraRelative.z>0){
print("The object is in front of the camera");
}
else{
print("he object is behind of the camera");
}
◆ function InverseTransfromPoint(x: float, y: float, z: float): Vector3
描述:從世界空間變換位置到x,y,z到本地空間. 相對於Transform.TransformPoint.
注意返回位置會受到縮放的影響。若是你在處理方向,使用
Transform.InverseTransfromDirection.
//相對於這個變換計算世界原點.
relativePoint=transform.InverseTransfromPoint(0,0,0,);
if(RelativePoint.z>0){
print("The world origin is in front of the object");
}
else{
print("he world origin is behind of the object");
}
◆ function IsChildOf(parent: Transform): bool
描述:這個變換時parent的一個子?
返回一個布爾值,表面改變換是否爲給定變換的一個子。若是是爲真,不然爲假。
 
function OnEnterTrigger(col: Collider){
//在碰撞器和器子碰撞器之間忽略碰撞
//例如,當你有一個帶有多個觸發碰撞器的複雜角色時
if(col.transform.IsChildOf(transform))
return;
print("Don something here")
}
◆ function LookAt(target: Transform, worldUp: Vector3=Vector3.up): void
描述:旋轉變換之前向向量指向/target/的當前位置。
而後旋轉變換的向上向量爲worldUp向量. 若是你留空worldUp參數,該函數將使用
世界y軸。worldUp是惟一一個建議向量,若是前向量與worldUp垂直,旋轉的向上向量
只與worldUp向量相同。
//這個完成的腳本能夠附加到一個相機上使它
//連續地指向另外一個物體.
//target做爲一個屬性顯示在檢視面板中
//拖動其餘物體到它上面使相機看向它
var target: Transform;
//每幀旋轉相機以便使它一直看向目標
function Update(){
transform.LookAt(target);
}
◆ function LookAt(worldPosition: Vector3, worldUp: Vector3=Vector3.up): void
描述:旋轉該變換以便前向向量指向worldPosition。
而後旋轉變換的向上向量爲worldUp向量. 若是你留空worldUp參數,該函數將使用
世界y軸。worldUp是惟一一個建議向量,若是前向量與worldUp垂直,旋轉的向上向量
只與worldUp向量相同。
//指向位於世界座標原點的物體
transform.LookAt(Vector3.zero);
◆ function Rotate(eulerAngles: Vector3, relativeTo: Space=Space.Self): void
描述:繞着x軸旋轉eulerAngles.x度,繞着y軸旋轉eulerAngles.y度並繞着z軸旋轉eulerAngles.z度.
若是relativeTo留空或者設置爲Space.Self該旋轉將繞着變換的本地軸。(當在場景視圖
中選擇該物體時,顯示物體的x,y和z軸)若是relativeTo是Space.World旋轉繞着世界的
x,y,z軸.
function Update(){
//繞着物體的X軸以1度/秒的速度旋轉物體.
transform.Rotate(Vector3.right*Time.deltaTime);
//...同時現對於世界座標
//的Y軸以相同的速度旋轉,
transform.Rotate(Vector3.up*Time.deltaTime, Space.World);
}
◆ function Rotate(xAngle : float, yAngles : float, zAngles : float, relativeTo: Space=
Space.Self): void
描述:繞着x軸旋轉xAngle度,繞着y軸旋轉yAngles度並繞着z軸旋轉zAngles度.
若是relativeTo留空或者設置爲Space.Self該旋轉將繞着變換的本地軸。(當在場景視圖
中選擇該物體時,顯示物體的x,y和z軸)若是relativeTo是Space.World旋轉繞着世界的
x,y,z軸.
function Update(){
//繞着物體的X軸以1度/秒的速度旋轉物體.
transform.Rotate(Time.deltaTime,0,0);
//...同時現對於世界座標
//的Y軸以相同的速度旋轉,
transform.Rotate(0.deltaTime, 0, Space.World);
}
◆ function Rotate(axis : Vector3, angles : float, relativeTo: Space=Space.Self): void
描述:繞着axis軸旋轉angle度.
若是relativeTo留空或者設置爲Space.Self該axis參數將相對於變換的本地軸。(當在
場景視圖中選擇該物體時,顯示物體的x,y和z軸)若是relativeTo是Space.World該axis相
對於世界的x,y,z軸.
function Update(){
//繞着物體的X軸以1度/秒的速度旋轉物體.
transform.Rotate(Vector3.right, Time.deltaTime);
//...同時現對於世界座標
//的Y軸以相同的速度旋轉,
transform.Rotate(Vector3.up, Time.deltaTime, Space.World);
}
◆ function RotateAround(point: Vector3, axis : Vector3, angle: float): void
描述:繞着axis旋轉改變換,並經過世界左邊的point,旋轉angle度.
這個將同時修改變換的位置和旋轉。
function Update(){
//繞着世界原點以20度/秒旋轉物體.
transform.RotateAround(Vector3.zero, Vector3.up. 20*Time.deltaTime);
}
◆ function TransformDirection(direction: Vector3): Vector3
描述:從本地空間到世界空間變換direction。
這操做不會受到縮放或變換位置的影響。返回的向量與direction有相同的長度.
//計算相對於相機的軸
camera=Camera.main.transform;
cameraRelativeRight=camera.TransformDirection(Vector3.right);
//相對於相機的x軸應用一個力
rigidbody.AddForce(cameraRelativeRight*10);
◆ function TransformDirection(x: float, y: float, z: float): Vector3
描述:從本地空間變換方向x,y,z到世界空間。
這操做不會受到縮放或變換位置的影響。返回的向量與direction有相同的長度.
//計算相對於相機的軸
camera=Camera.main.transform;
cameraRelativeRight=camera.TransformDirection(1,0,0);
//
相對於相機的x軸應用一個力
rigidbody.AddForce(cameraRelativeRight*10);
◆ function TransformPoint(position: Vector3): Vector3
描述:從本地空間到世界空間變換position。
注意返回位置會受到縮放的影響。若是你在處理方向,使用
Transform.TransformDirection.
//你須要在檢視面板中賦值一個物體到這個變量
var someObject: GameObject;
//在當前物體的右側實例化一個物體
thePosition=transform TransformPoint(Vector3.right*2);
Instantiate(someObject, thePosition);
◆ function TransformPoint(x: float, y: float, z: float): Vector3
描述:從本地空間變換位置x,y,z到世界空間.
注意返回位置會受到縮放的影響。若是你在處理方向,使用
Transform.TransformDirection.
//你須要在檢視面板中賦值一個物體到這個變量
var someObject: GameObject;
//在當前物體的右側實例化一個物體
thePosition=transform TransformPoint(2,0,0);
Instantiate(someObject, thePosition);
◆ function Translate(translation: Vector3, relativeTo: Space=Space.Self): void
描述:在該方向上移動變換transform距離.
若是relativeTo留空或者設置爲Space.Self該運動將相對於變換的本地軸.(當在場景視
圖中選擇該物體時,顯示物體的x,y和z軸)若是relativeTo是Space.World運動將相對於世
界的座標系統.
function Update(){
//沿着物體的z軸向前以1單位/秒的速度移動物體
transform.Translate(Vector3.up*Time.deltaTime, Space.World);
}
◆ function Translate(x: float, y: float, z: float, relativeTo: Space=Space.Self): void
描述:沿着x軸移動x,沿着y軸移動y,沿着z軸移動.
若是relativeTo留空或者設置爲Space.Self該運動將相對於變換的本地軸.(當在場景視
圖中選擇該物體時,顯示物體的x,y和z軸)若是relativeTo是Space.World運動將相對於世
界的座標系統.
function Update(){
//沿着物體的z軸向前以1單位/秒的速度移動物體
transform.Translate(0,0,Time.deltaTime);
//世界空間中向上以1單位/秒的速度移動物體
transform.Translate(0,Time.deltaTime,0,Space.World);
}
◆ function Translate(translation: Vector3, relativeTo: Transform): void
描述:在該方向上移動變換translation距離.
運動相對於/relativeTo/的本地座標系統. 若是relativeTo是null運動將相對於世界的坐
標系統.
function Update(){
//相對於相機以1單位/秒的速度向右移動物體.
transform.Translate(Vector3.right*Time.deltaTime, Camera.main.transform);
}
◆ function Translate(x: float, y: float, z: float, relativeTo: transform): void
描述:沿着x軸移動x,沿着y軸移動y,沿着z軸移動.
運動相對於/relativeTo/的本地座標系統. 若是relativeTo是null運動將相對於世界的坐
標系統.  function Update(){

//相對於相機以1單位/秒的速度向右移動物體.
transform.Translate(Time.deltaTime, 0,0, Camera.main.transform);
}
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(若是沒有爲null)。
rigidbody 附加到這個GameObject的Rigidbody(若是沒有爲null)。
camrea 附加到這個GameObject的Camera(若是沒有爲null)。
light 附加到這個GameObject的Light(若是沒有爲null)。
animation 附加到這個GameObject的Animation(若是沒有爲null)。
constantForce 附加到這個GameObject的ConstantForce若是沒有爲null)。
renderer 附加到這個GameObject的Renderer(若是沒有爲null)。
audio 附加到這個GameObject的AudioSource(若是沒有爲null)。
guiText 附加到這個GameObject的GUIText(若是沒有爲null)。
networkView 附加到這個GameObject的NetworkView(只讀)。(若是沒有爲null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。(若是沒有爲null)。
collider 附加到這個GameObject的Collider(若是沒有爲null)。
hingeJoint 附加到這個GameObject的HingeJoint(若是沒有爲null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(若是沒有爲null)。
gameObject 這個組件所附加的遊戲物體。一個組件老是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,若是遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回因此type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上因此type類型的組件。
CompareTag 這個遊戲物體被標籤爲tag?
SendMessageUpwards 在這個遊戲物體的每一個MonoBehaviour和該行爲的祖先
上調用名爲methodName方法。
SendMessage 在這個遊戲物體上的每一個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每一個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
Flare
類,繼承自Object
一個閃光資源。在組件參考中獲取更多關於閃光的信息.
這個類沒有屬性。他須要在檢視面板中設置。你能夠應用閃光並在運行時將它賦給一
個光源。
//在檢視面板中公開一個閃光的引用
var newFlare: Flare;
//賦值閃光
light.flare-newFlare;
參見:Flare assets,LensFlare類.
繼承的成員
繼承的變量
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
Font
類,繼承自Object
用於字體資源的腳本接口,
能夠使用這個類爲GUI文本或文本網格動態切換字體。
參見:GUIText和TextMesh.
變量
◆ var material: Material
描述:這個材質用於字體的顯示。
函數
◆ function HasCharacter(c: char): bool
描述:這個字體是否有特定字符?
繼承的成員
繼承的變量
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
GameObject
類,繼承自Object
Unity場景中全部實體的基類。
參見:Component
變量
◆ var active: bool
描述:遊戲物體是激活的?激活/不激活該遊戲物體,
//不激活該遊戲物體. 
gameObject.active=false;
◆ var animation: Animation
描述:附加到這個遊戲物體的???(只讀)(若是沒有爲null)
var other: GameObject;
other.animation.Play();
◆ var audio: AudioSource
描述:附加到這個遊戲物體的???(只讀)(若是沒有爲null)
var other: GameObject;
other.audio.Play();
◆ var camera: Camera
描述:附加到這個遊戲物體的相機(只讀)(若是沒有爲null)
var other: GameObject;
other.camera.fieldOfView=45;
◆ var collider: Collider
描述:附加到這個遊戲物體的碰撞器(只讀)(若是沒有爲null)
var other: GameObject;
other.collider.material.dynamicFriction=1;
◆ var constantForce: ConstantForce
描述:附加到這個遊戲物體的恆定力(只讀)(若是沒有爲null)
var other: GameObject;
other.constantForce.relativeForce=Vector3(0,0,1);
◆ var guiText: GUIText
描述:附加到這個遊戲物體的GUIText(只讀)(若是沒有爲null)
var other: GameObject;
other.guiText.text="HelloWorld";
◆ var guiTexture: GUITexture
描述:附加到這個遊戲物體的GUIText(只讀)(若是沒有爲null)
◆ var hingeJoint: HingeJoint
描述:附加到這個遊戲物體的HingeJoint(只讀)(若是沒有爲null)
var other: GameObject;
other.hingeJoint Spring.targetPosition=70;
◆ var layer: int
描述:遊戲物體所在的層,一個層在[0...32]之間.
Layer能夠用來選擇性的渲染或忽略投射, .
//設置遊戲物體到忽略投射物體的層上
gameObject.layer=2;
◆ var light: Light
描述:附加到這個遊戲物體的光影(只讀)(若是沒有爲null)
var other: GameObject;
other.light.range=10;
◆ var networkView: NetworkView
描述:附加到這個遊戲物體的網絡視(只讀)(若是沒有爲null)
var other: GameObject;
other.networkView.RPC("MyFunction",RPCMode.All,"someValue");
◆ var particleEmitter: ParticleEmitter
描述:附加到這個遊戲物體的粒子發射器(只讀)(若是沒有爲null)
var other: GameObject;
other.particleEmitter.emite=true;
◆ var renderer: Renderer
描述:附加到這個遊戲物體的渲染器(只讀)(若是沒有爲null)
var other: GameObject;
other.renderer.material.color=Color.green;
◆ var rigidbody: Rigidbody
描述:附加到這個遊戲物體的剛體(只讀)(若是沒有爲null)
var other: GameObject;
other.rigidbody.AddForce(1,1,1);
◆ var tag: string
描述:這個遊戲物體的標籤。
標籤能夠用來標識一個遊戲物體。標籤在使用前必須在標籤管理器中定義。
gameObject.tag="Player";
◆ var transform: Transform
描述:附加到這物體的變換. (若是沒有爲null)
var other: GameObject;
other.transform.Translate(1,1,1);
構造函數
◆ static function GameObject(name:string): GameObject
描述:建立一個新的遊戲物體,命名爲name.
Transform老是被添加到該遊戲物體.
//建立一個名爲"Player"的遊戲物體
//並給他添加剛體和立方體碰撞器.
player=new GameObject("Player");
player.AddComponent("Rigidbody");
player.AddComponent("BoxCollider");
◆ static function GameObject(): GameObject
描述:建立一個新的遊戲物體.
Transform老是被添加到該遊戲物體.
//建立一個沒有名稱的遊戲物體
//並給他添加剛體和立方體碰撞器.
player=new GameObject();
player.AddComponent("Rigidbody");
player.AddComponent("BoxCollider");
◆ static function GameObject(name: string, params components: Type[]): GameObject
描述:建立一個遊戲物體並附加特定的組件.
函數
◆ function AddComponent(className: string): Component
描述:添加一個名爲className的組件類型到該遊戲物體.
使用這個函數來改變物體的行爲。你也能夠傳遞腳本的類名來添加腳本到遊戲物體。
有些組件也須要另外一些組件存在於同一個遊戲物體上。這個函數會自動添加須要的組
件,例如若是你添加一個HingeJoint也會自動添加一個Rigidbody.
//添加名爲FoobarScript的腳本到遊戲物體
gameObject.AddComponent("FoobarScript");
//添加球形碰撞器到遊戲物體
gameObject.AddComponent("FoobarCollider");
◆ function AddComponent(componentType: Type): Component
描述:添加一個名爲componentType類型的類到該遊戲物體.
gameObject.AddComponent("FoobarScript");
注意,沒有RemoveComponent(),來移除組件,使用Object.Destroy.
◆ function BroadcastMessage(methodName: string, parameter: object=mull, option:
SendMessageOption=SendMessageOptions.RequireReceiver): void
描述:在這個遊戲物體或其任何子上的每一個MonoBehaviour上調用methodName方法。
經過使用零參數,接收方法能夠選擇忽略parameter。若是options被設置爲
SendMessageOptions.RequireReceiver,那麼若是這個消息沒有被任何組件接收時將打印一個
錯誤消息。
///使用值5調用函數ApplyDamage
gameObject.BroadcastMessage("ApplyDamage",5);
//全部附加到該遊戲物體和其子物體上腳本中的
//ApplyDamage函數都將調用
function ApplyDamage(damage){
print(damage)
}
◆ function CompareTag(tag: string): bool
描述:這個遊戲物體被標籤爲tag?
//當即死亡觸發器
//銷燬任何進入到觸發器的碰撞器,這些碰撞器被標記爲Player.
function OnTriggerEnter(other: Collider){
if(other.gameObject.CompareTag("Player"))
{
Destroy(other.gameObject);
}
}
◆ function GetComponent(type: Type): bool
描述:若是遊戲物體有type類型的組件就返回它,不然返回null. 你能夠使用這個函數
訪問內置的組件或腳本.
GetComponent是防衛其餘組件的主要方法。對於Javascript腳本的類型老是腳本顯示
在工程視圖中的名稱。例如:
function Start()
{
var curTransform: Transform;
curTransform=gameObject.GetComponent(Transform);
//這等同於
curTransform=gameObject.transform;
}
function Update() {
//爲訪問附加在同一遊戲物體上
//其餘腳本內的公用變量和函數
//(ScriptName爲Javascript文件名)
var other: ScriptName=gameObject.GetComponent(ScriptName);
//調用該腳本中的DoSomething函數
other DoSomething();
//設置其餘腳本實例中的另外一個變量
other.someVariable=5;
}
◆ function GetComponent(type: string): Component
描述:返回名爲type的組件,若是遊戲物體上附加了一個就返回它,若是沒有返回null.
出於性能的緣由最好用Type電影GetComponent而不是一個字符串。然而有時你可能
沒法獲得類型,例如當試圖從Javascript中訪問c#時。在那種狀況下你能夠簡單的經過名
稱而不是類型訪問這個組件。例如:
function Update()
{
//爲訪問附加在同一遊戲物體上
//其餘腳本內的公用變量和函數.
//(ScriptName爲Javascript文件名)
var other=gameObject.GetComponent("ScriptName");
//調用該腳本中的DoSomething函數
other.DoSomething().
//設置其餘腳本實例中的另外一個變量
other.someVariable=5;
}
◆ function GetComponentInChildren(type: Type): Component
描述:返回type類型的組件,這個組件位於這個遊戲物體或任何它的子物體上,使用
深度優先搜索。
只有激活的組件被返回。
var script: ScriptName=gameObject.GetComponentInChildren(ScriptName);
script.DoSomething();
◆ function GetComponents(type: Type): Component[]
描述:返回該遊戲物體上全部type類型的組件。
//在這個遊戲物體和全部它的子物體上
//的HingeJoints上禁用彈簧
var hingeJoints=gameObject.GetComponents(HingeJoint);
for(var joint: HingeJoint in hingeJoints){
joint.useSpring=false;
}
◆ function GetComponentsInChildren(type: Type, includeInactive: bool=false):
Component[]
描述:返回全部type類型的組件,這些組件位於該遊戲物體或任何它的子物體上。
只有激活的組件被返回。
//在這個遊戲物體和全部它的子物體上
//的全部HingeJoints上禁用彈簧
var hingeJoints=gameObject.GetComponentsInChildren(HingeJoint);
for(var joint: HingeJoint in hingeJoints){
joint.useSpring=false;
}
◆ function SampleAnimation(animation: AnimationClip, time: float): void
描述:在一個特定的時間採樣動畫,用於任何動畫目的。
出於性能考慮建議使用Animation接口,這將在給定的time採用animation,任何被動
化的組件屬性都將被這個採樣值替換,多數時候你會使用Animation.Play. SampleAnimation
用於當你須要以無序方式或給予一些特殊的輸入在幀之間跳躍時使用。參見:Aniamtion
//經過採樣每一幀或動畫剪輯
varclip.AniamtionClip
function Update()
{
gameObject.sampleAnimation(clip, clip.length-Time.time);
}
◆ function SendMessage(methodName: string, value: object=null, options: 
SendMessageOption=SendMessageOption.RequireReceiver): void
描述:在這個遊戲物體上的每一個MonoBehaviour上調用methodName方法。
經過使用零參數,接收方法能夠選擇忽略參數。若是options被設置爲
SendMessageOptions.RequireReceiver,那麼若是這個消息沒有被任何組件接收時將打印一個
錯誤消息。
//使用值5調用函數ApplyDamage
gameObject.SendMessage("ApplyDamage",5);
//因此附加到該遊戲物體上的腳本中的
//ApllyDamage函數都將調用
function.ApplyDamage(damage){
pring(damage);
}
◆ function SendMessageUpwards(methodName: string, value: object=null, options: 
SendMessageOption=SendMessageOption.RequireReceiver): void
描述:在這個遊戲物體上的每一個MonoBehaviour和該行爲的祖先上調用名爲methodName
方法。
經過使用零參數,接收方法能夠選擇忽略參數。若是options被設置爲
SendMessageOptions.RequireReceiver,那麼若是這個消息沒有被任何組件接收時將打印一個
錯誤消息。
//使用值5調用函數ApplyDamage
gameObject.SendMessageUpwards("ApplyDamage",5);
//因此附加到該遊戲物體上的腳本中的
//ApllyDamage函數都將調用
function.ApplyDamage(damage){
pring(damage);
}
◆ function SetActiveRecursion(rotate: bool): void
描述:設置這個物體和因此子游戲物體的機會狀態。
gameObject.SetActiveRecursion(true);
類方法
◆ static function CreatePrimitive(type: PrimitiveType): GameObject
 
描述:用幾何的網格渲染器和適當的碰撞器建立一個遊戲物體。
///在場景中建立一個平面,球體和立方體
function Start()
{
GameObject.CreatePrimitive(PrimitiveType.Plane);
var cube=GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.position=Vector3(0,0.5,0);
var sphere=GameObject.CreatePrimitive(PrimitiveType.Sphere);
Sphere.transform.position=Vector3(0,1.5,0);
var capsule=GameObject.CreatePrimitive(PrimitiveType.Capsule);
capsule.transform.position=Vector3(2,1,0);
var cylinder=GameObject.CreatePrimitive(PrimitiveType.Cylinder);
cylinder.transform.position=Vector3(-2,1,0);
◆ static function Find(name: string): GameObject
描述:依據name查找物體並返回它.
若是沒有物體具備名稱name返回null. 若是name包含'/'字符它將像一個路徑名同樣穿
越層次,這個函數只返回激活的遊戲物體。
出於性能考慮建議不要在每幀中都是有該函數,而是在開始時調用並在成員變量中緩存結果
或者用GameObject.FindWithTag.
//這返回場景中名爲Hand的遊戲物體.
hand=GameObject.Find("Hand");
//這將返回名爲Hand的遊戲物體.
//在層次試圖中Hand也許沒有父!
hand=GameObject.Find("/Hand");
//這將返回名爲Hand的遊戲物體.
//它是Arm>Monster的子.
//在層次試圖中Monster也許沒有父!
hand=GameObject.Find("/Monster/Arm/Hand");
//這將返回名爲Hand的遊戲物體.
//它是Arm>Monster的子.
//Monster有父.
hand=GameObject.Find("/Monster/Arm/Hand");
這個函數最經常使用與在加載時自動連接引用到其餘物體,例如,在MonoBehaviour.Awake
或MonoBehaviour.Start內部. 處於性能考慮你不該該在每幀中調用這個函數,例如
MonoBehaviour.Update內. 一個通用的模式是在MonoBehaviour.Start內將一個遊戲物體賦給
一個變量. 並在MonoBehaviour.Update中使用這個變量.
//在Start中找到Hand並在每幀中選擇它
private var hand: GameObject;
function Start(){
hand=GameObject.Find("/Monster/Arm/Hand");
}
function Update(){
hand.transform.Rotate(0,100*Time.deltaTime,0);
}
◆ static function FindGameObjectsWithTag(tag: string): GameObject[]
描述:返回標記爲tag的激活物體列表,若是沒有發現返回null.
標籤在使用前必須在標籤管理中定義。
//在全部標記爲"Respawn"的物體位置處
//實例化respawnPrefab
 
var respawnPrefab: GameObject;
var respawns=GameObject.FindGameObjectsWithTag("Respawn");
for(var respawn in respawns)
Instantiate(respawnPrefab, respawn.position, respawn.rotation);
//打印最接近的敵人的名稱
print(FindClosestEnemy().name);
//找到最近的敵人的名稱
function FindClosestEnemy(): GameObject {
//找到因此標記爲Enemy的遊戲物體
var gos: GameObject[]
gos=GameObject.FindGameObjectsWithTag("Enemy");
var closest: GameObject;
var distance=Mathf.Infinity;
var position=transform.position;
//遍歷它們找到最近的一個
for(var go: GameObject in gos){
var diff=(go.transform.position-position);
var curDistance=diff.sqrMagnitude;
if(curDistance<distance){
closest=go;
distance=curDistance;
}
}
return closest;
}
◆ static function FindGWithTag(tag: string): GameObject
描述:返回標記爲tag的一個激活遊戲物體,若是沒有發現返回null.
標籤在使用前必須在標籤管理中定義。
//在標記爲"Respawn"的物體位置處
//實例化一個respawnPrefab
var respawnPrefab: GameObject;
var respawns=GameObject.FindWithTag("Respawn");
Instantiate(respawnPrefab, respawn.position, respawn.rotation);
繼承的成員
繼承的變量
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
這與使用帶有"_MainTex"名稱的GetTextureOffset或SetTextureOffset相同。
//基於時間滾動主紋理
var scrollSpeed=0.5;
function Update(){
var offset=Time.time*scrollspeed;
renderer.material.mainTextureOffset=Vector2(offset,0);
}
參見:SetTextureOffset.GetTextureOffset.
◆ var mainTextureScale: Vector2
描述:主材質的紋理縮放。
這與使用帶有"_MainTex"名稱的GetTextureScale或SetTextureScale相同。
function Update(){
var scalex=Mathf.Cus(Timetime)*0.5+1;
var scaleY=Mathf.Sin(Timetime)*0.5+1;
renderer.material.mainTextureScale=Vector2(scaleX,scaleY);
}
參見:SetTextureScale.GetTextureScale.
◆ var passCount: int
描述:在這個材質中有多少個pass(只讀).
這個最經常使用在使用GL類之間繪製的代碼中(只限於Unity Pro). 例如,Image Effects使用
材質來實現屏幕後期處理. 對材質中的每個pass(參考SetPass)它們激活並繪製一個全屏
四邊形。
這裏是一個全屏圖形效果的例子,它反轉顏色。添加這個腳本到相機並在播放模式中
查看。
private var mat: Material;
function Start()
{
mat=new Material(
"Shader\"Hidden/Invert\"{"+
"SubShader{"+
"Pass{"+
"ZTestAlways Cull Off ZWrite Off"+
"SetTexture[_RenderTex]{combine one-texture}"+
"}"+
"{"+
"}"+
);
}
function OnRenderImage(source: RenderTexture, dest: RenderTexture){
RenderTexture.active=dest;
source.SetGlobalShaderProperty("_RenderTex");
GL.PushMatrix();
GL.LoadOrtho();
//對於材質中的每一個pass(這裏只有一個)
for(var i=0; i<mat.passCount; ++i){
//激活pass
mat.SetPass(i);
//繪製一個四邊形
GL.Begin(GLQUADS);
GL.TEXCoord2(0,0); GL.Vertex3(0,0,0.1);
GL.TEXCoord2(1,0); GL.Vertex3(1,0,0.1);
GL.TEXCoord2(1,1); GL.Vertex3(1,1,0.1);
GL.TEXCoord2(0,1); GL.Vertex3(0,1,0.1);
GL.End();
}
GL.PopMatrix();
}
參見:SetPass函數,GL類,ShaderLab documentation.
◆ var renderQueue: int
描述:這個材質的渲染隊列(只讀)
默認地材質使用shader的render queue,你能夠使用這個變量重載該渲染隊列。注意一
旦渲染隊列在該材質上被設置,它將保持這個值,集市之後shader被改變爲不一樣的一個值。
渲染隊列值須要時正的才能正常工做。
參見:Shader.renderQueue, RenderQueue tag.
◆ var shader: Shader
描述:該材質使用的着色器。
//按下空格鍵時,
//在Diffuse和Transparent/Diffuse着色器之間切換
private var shader1=Shader.Find("Diffuse");
private var shader2=Shader.Find("Transparent/Diffuse");
function Update() {
if(Input.GetButtonDown("Jump")){
If(renderer.material.shader--shader1)
rendere.material.shader=shader2;
else
renderer.material.shader=shader1;
}
}
參見:Shader.Find方法,Material, ShaderLab documentation.
構造函數
◆ static function Material(contents: string): Material
描述:從一個源shader字符串建立一個材質。
若是你有一個實現自定義特效的腳本,你須要使用着色器和材質實現全部的圖像設置。
在你的腳本內使用這個函數建立一個自定義的着色器和材質。在建立材質後,使用SetColor,
SetTexture, SetFloat, SetVector, SetMatrix來設置着色器屬性值。
//建立一個附加混合材質並用它來渲染
var color=Color.white;
function Start()
{
var shader Text=
"shader\"Alpha Additive\"{"+
Properties{_Color(\"Main Color\", Color)=(1,1,1,0)}"+
"SubShader {"+
"Tags {\"Queue\"=\"Transparent\"}"+
"Pass {"+
"Blend One One ZWrite Off ColorMask RGB"+
"Material {Diffuse[_Color]Ambient[_Color]}"+
"Lighting On"+
"SetTexture[_Dummy]{combine primary double, primary}"+
"}"+
"}"+
"}";
renderer.material=new Material(shaderText);
renderer.material.color=color;
}
參見:ShaderLab documentation.
函數
◆ function CopyPropertiesFormMaterial(mat: Material): void
描述:從其餘材質拷貝屬性到這個材質。
◆ function GetColor(propertyName: string): Color
描述:獲取一個命名的顏色值。
數多shader使用超過一個顏色,使用GetColor來獲取propertyName顏色。
Unity內置着色器使用的普通顏色名稱;
"_Color"爲材質的主顏色。這也可以經過color屬性訪問。
"_SpecColor"爲材質的反射顏色(在specular/glossy/vertexlit着色器中使用)。
"_Emission"爲材質的散射顏色(用在reflective着色器中使用)。
print(renderder.material.GetColor("_SpecColor));
參見:color屬性,SetColor.
◆ function GetFloat(propertyName: string): float
描述:獲取一個命名的浮點值。
參見:SetFloat, Materials, ShaderLab documentation.
◆ function GetMatrix(propertyName: string): Matrix4x4
描述:從該shader中獲取命名矩陣的值。
這個最經常使用於自定義的shader,其中須要額外的矩陣參數,矩陣參數不須要在材質檢
視面板中公開,可是可以在腳本中經過SetMatrix和GetMatrix來設置和查詢。
參見:SetMatrix, Materials, ShaderLab documentation.
◆ function GetTag(taf: string, searchFallbacks: bool, defaultValue: string=""): string
描述:獲取材質的shader標籤值。
若是材質的shader沒有定義標籤,defaultValue被返回。
若是searchFallbacks爲true那麼這個函數將在全部的子shader和全部後備中查找標籤。
若是searchFallbacks爲false只在當前查詢的子shader中查找這個標籤。
使用不搜索後備的GetTag能夠檢視如今使用的是哪一個子shader:添加一個自定義具備
不一樣值的標籤到每一個子shader,而後再運行時查詢這個值。例如,Unity Pro的水使用這個
函數來檢測shader什麼時候退化爲沒有反射,而後關閉反射相機。
◆ function GetTexture(propertyNmae: string): Texture
描述:獲取一個命名紋理。
數多shader使用超過一個紋理。使用GetTexture來獲取propertyName紋理。
Unity內置着色器使用的普通紋理名稱;
"_MainTex"爲主散射紋理. 這也可以經過mainTexture屬性訪問。
"_BumpMap"爲法線貼圖。
"_LightMap"爲光照貼圖。
 
"_Cube"爲發射立方體貼圖。
function Start(){
var tex=renderer.material.GetTexture("_BumpMap");
if(tex)
print("My bumpmap is "+ tex.name);
else
print("I have no bumpmap!");
}
參見:mainTexture屬性,SetTexture.

◆ function GetTextureOffset(propertyName: string): Vector2
描述:獲取紋理propertyName的位置偏移。
Unity內置着色器使用的普通紋理名稱;
"_MainTex"爲主散射紋理. 這也可以經過mainTextureOffset屬性訪問。
"_BumpMap"爲法線貼圖。
"_LightMap"爲光照貼圖。
"_Cube"爲發射立方體貼圖。
參見:mainTextureOffset屬性,SetTextureOffset.
◆ function GetTextureScale(propertyName: string): Vector2
描述:獲取紋理propertyName的位置縮放。
Unity內置着色器使用的普通紋理名稱;
"_MainTex"爲主散射紋紋理. 這也可以經過mainTextureOffset屬性訪問。
"_BumpMap"爲法線貼圖。
"_LightMap"爲光照貼圖。
"_Cube"爲發射立方體貼圖。
參見:mainTextureScale屬性,SetTextureScale.
◆ function GetVector(propertyName: string): Vector4
描述:獲取一個命名向量的值。
在Unity shader中四組件向量和顏色是相同的。GetVector does exactly the same as
GetColor just the input data type is different(xyzw in the vector becomes rgba in the color).
See Also: GetColor, SetVector.
◆ function HasProperty(propertyName: string): bool
描述:檢查材質的shader是否有給定名稱的屬性。
參見:mainTextureScale屬性,SetTextureScale.
◆ function Lerp(Start: Material, end: Material, t: float): void
描述:在兩個材質間插值屬性。
使一個材質的全部顏色和浮點值從start到end基於t來插值。
當t爲0,全部的值爲start。
當t爲1,全部的值爲end。
一般你想要插值的兩個材質是相同的(使用相同的着色器和紋理)除了顏色和浮點值。
而後你使用Lerp來混合它們。
//混合兩個材質
var material1: Material;
var material2: Material;
var duration=2.0;
function Start()
{
//首先使用第一個材質
renderer.material=material[];
}
function Update()
{
//隨着時間來回變化材質
var lerp=Mathf.PingPong(Time.time, duration)/duration;
renderer.material.Lerp(material1, materail2, lerp);
}
參見:Material.
◆ function SetColor(propertyName: string, color: Color): void
描述:設置一個命名的顏色值。
數多shader使用超過一個顏色。使用SetColor來獲取propertyName顏色.
Unity內置着色器使用的普通顏色名稱;
"_Color"爲材質的主顏色. 這也可以經過color屬性訪問.
"_SpecColor"爲材質的反射顏色(在specular/glossy/vertexlit着色器中使用). 
"_Emission"爲材質的散射顏色(用在vertexlit着色器中). 
"_ReflectColor"爲材質的反射顏色(用在reflective着色器中). 
function Start(){
//設置Glossy着色器這樣能夠使用反射顏色
renderer.material.shader=Shader.Find("Glossy");
//設置紅色的高光
renderer.material.SetColor("_SpecColor", Color.red);
}
參見:color屬性,GetColor.
◆ function SetFloat(propertyName: string, value: float): void
描述:設置一個命名的浮點值。
function Start(){
//在這個材質上使用Glossy着色器
renderer.material.shader=Shader.Find("Glossy");
}
function Start(){
//動畫Shininess值
var shininess=Mathf.PingPong(Time.time, 1.0);
renderer.material.SetFloat("_Shininess, shininess);
}
參見:GetFloat, Materials, ShderLab documentation.
◆ function SetMatrix(propertyName: string, matrix: Matrix4x4): void
描述:爲一個shader設置一個命名矩陣。
這個最經常使用於自定義的shader,其中須要額外的矩陣參數,矩陣參數不須要在材質檢
視面板中公開,可是可以在腳本中經過SetMatrix和GetMatrix來設置和查詢。
var rotateSpeed=30;
var texture: Texture;
function Start(){
//用於一個着色器建立一個新的材質
//這個着色器旋轉紋理
var m=new Material
 (
"Shader\"Rotation Texture\"{"+
"Properties{_Main Tex(\"Base",2D)=\"white"{}}"+
"SubShader{"+
"Pass{"+
"Material{Diffuse(1,1,0)Ambient(1,1,1,0)}"+
"Lighting On"+
"SetTexture[_MainTex]{"+
"matrix[_Rotation]"+
"combing texture*primary double.texture"+
"{"+
"}"+
"{"+
"}"
);
m.mainTexture=texture;
renderer.material=m;
}
function Update()
}
//爲這個着色器構建一個旋轉矩陣並設置它
var rot=Quaternion, Euler(0,0,Time.time*rotateSpeed);
var m=Matrix4x4.TRS(Vector3.zero,rot.Vector3(1,1,1));
renderer.material.SetMatrix(*_Rotation", m);
}
參見:GetMatrix,Materials,ShaderLab documentation.
◆ function SetPass(pass: int): bool
描述:爲渲染激活給定的pass.
傳遞從零開始最大到passCount(但不包含)的索引。
這個最經常使用在使用GL類直接繪製的代碼中(只能Unity Pro)。例如,Image Effects使用
材質來實現屏幕後期處理,對材質中的每個pass它們激活並繪製一個全屏四邊形。
若是SetPass返回假,你不該該渲染任何東西。
這裏是一個全屏圖像效果的例子,它反轉顏色,添加這個腳本到相機並在播放模式中
查看。
private var mat: Material;
function Start()
{
mat=new Material(
"Shader\"Hidden/Invert\"{"+
"SubShader{"+
"Pass{"+
"ZTest Always Cull Off ZWrite Off"+
"SetTexture[_RenderTex]{combine one-texture}"+
"}"+
"}"+
"}"
);
}
function OnRenderImage(source: RenderTexrure, dest: RenderTexture){
RenderTexture.active=dest;
source.SetGlobalShaderProperty("_RenderTex");
GL.PushMatrix();
GL.LoadOrtho();
//激活第一個pass(這裏咱們知道它只有僅有的pass)
mat.SetPass(0);
//繪製一個四邊形
GL..Begin(GL.QUADS);
GL..TexCoord2(0,0);GL..Vertex3(0,0,0.1);
 
GL..TexCoord2(1,0);GL..Vertex3(1,0,0.1);
GL..TexCoord2(1,1);GL..Vertex3(1,1,0.1);
GL..TexCoord2(0,1);GL..Vertex3(0,1,0.1);
GL..End();

GL.PopMatrix();
}
參見:passCount屬性,GL類,ShaderLab documentation.
◆ function SetTexture(propertyName: string, texture: Texture): void
描述:設置一個命名紋理.
數多shader使用超過一個紋理。使用SetTexture來改變propertyName紋理。
Unity內置着色器使用的普通紋理名稱:
"_MainTex"爲主射散紋理,這也可以經過mainTexture屬性訪問.
"_BumapMap"爲法線貼圖.
"_LightMap"爲光照貼圖.
"_Cub"爲放射立方體貼圖.
//基於實際滾動主紋理
var scrollSpeed=0.5;
function Update(){
var offset=Time.time*scrollSpeed;
rendereer.material.SetTextureOffset("_MatrixTex", Vector2(offset,0));
}
參見:mainTextureOffset屬性,GetTextureOffset.
◆ function SetTextureScale(propertyName: string, scale: Vector2): void
描述:設置紋理propertyName的位置縮放.
Unity內置着色器使用的普通紋理名稱:
"_MainTex"爲主射散紋理,這也可以經過mainTexture屬性訪問.
"_BumapMap"爲法線貼圖.
"_LightMap"爲光照貼圖.
"_Cub"爲放射立方體貼圖.
參見:mainTextureScale屬性,GetTextureScale.
function Update()
{
//以一個流行的放式動畫主紋理縮放!
var scaleX=Mathf.Cos(Time.time)*0.5+1;
var scaleY=Mathf.Sin(Time.time)*0.5+1;
rendereer.material.SetTextureScale("_MainTex", Vector2(ScaleX,ScaleY));
}
◆ function SetVector(propertyName: string, Vector: Vector4): void
描述:設置一個命名的向量值.
在Unity shader中四組件向量和顏色是相同的。SetVector與SetColor徹底相同,僅僅
是輸入數據類型不一樣(向量的xyzw變爲顏色的rgba).
參見:SetColor, GetVector.
繼承的成員
繼承的變量
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 當即銷燬物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬。
Mesh
類,繼承自Object
一個類容許你從腳本中建立或修改網格。
網格包含頂點和多個三角形數組。參考Procedural example project獲取石油網格接口的
例子。
三角數組只是頂點索引數組;三個索引爲一個三角形。
對於每一個頂點能夠有一個法線,兩個紋理座標,顏色和切線。這些都是可選的並能夠
去掉。全部的頂點信息被存儲相同尺寸的不一樣數組中,所以若是的網格有10個頂點,你
應該有大小爲10的數組用於法線和其餘屬性。
可能有三件事,你可能想要使用可調整的網格。
1. 從頭開始構建網格:應該老是按照以下的順序:1)賦值vertices2)賦值triangles
function start(){
var mesh=new Mesh();
GetComponent(MeshFilter).mesh=mesh;
mesh.vertices=newVertices;
nesh.uv=newUV;
mesh.triangles=newTriangles;
}
2. 沒幀修改頂點屬性:1)獲取頂點,2)修改它們,3)將它們賦值回網格.
function Update(){
var mesh: mesh=GetComponent(MeshFilter).mesh;
var vertices=newVertices;
var normals=mesh.normals;
for(var i=0,i<vertices.length,i++)
{
vertices[i]+=mormals{i}*Mathf.Sin(Time.time);
}
mesh.vertices=vertices;
}
3. 連續地改變網格三角形和頂點:1)調用Clear開始刷心,2)賦值頂點和其餘屬性,3)賦
值三角形索引.
在賦值新的頂點或三角形時調用Clear是重要的。Unity老是檢查提供的三角形索引,
它們是否沒有超出頂點邊界。電影Clear而後賦值頂點而後三角形,確保沒你沒有超出數據邊
界。
function Update(){
var mesh: mesh=GetComponent(MeshFilter).mesh;
mesh.Clear();
mesh.vertices=newVertices;
nesh.uv=newUV;
mesh.triangles=newTriangles;
}
變量
◆ var bindposes: Matrix4x4[]
描述:綁定的姿式。每一個索引的綁定姿式使用具備相同的索引的骨骼。
當骨骼在綁定姿式中時,綁定姿式是骨骼變換矩陣的逆。
function Start(){
gameObject.AddComponent(Animation);
gameObject.AddComponent(SkinnedMeshRenderer);
var renderer: SkinnedMeshRenderer=GetComponent(SkinnedMeshRenderer);
//構建基本網格
var mesh: Mesh-new Mesh();
mesh.vertices=[Vector3(-1,0,0), Vector3(1,0,0), Vector3(-1,5,0), Vector3(1,5,0)];
mesh.uv=[Vector2(0,0), Vector2(1,0), Vector2(0,1), Vector2(1,1)];
mesh.triangles=[0,1,2,1,3,2];
mesh.RecalculateNormals();
//賦網格到網格過濾器和渲染器
renderer.material=new Material(Shader.Find("Diffuse"));
//賦骨骼權值到網格
//使用兩個骨骼. 一個用於上部的頂點,一個用於下部的頂點
var weights=new BoneWeight[4];
weights[0].boneIndex0=0;
weights[0].weight0=1;
weights[1].boneIndex0=0;
weights[1].weight0=1;
weights[2].boneIndex0=1;
weights[2].weight0=1;
weights[3].boneIndex0=1;
weights[3].weight0=1;
mesh.boneWeights=weights;
//建立骨骼變換並綁定姿式
//一個骨骼在頂部一個在底部
var bones=new Transform[2];
var bindPoses=new Matrx4x4[2];
bones[0]=new GameObject("Lower").transform;
bones[0]parent=transform;
//設置相對於父的位置
bones[0].localRotation=Quaternion.identity;
bones[0].localPosition=Vector3.zero;
//綁定姿式是骨骼的逆變換矩陣
//在這種狀況下咱們也要使這個矩陣市相對與根的
//這樣咱們就可以隨意移動根物體了
bindPose[0]=bones[0].worldToLocalMatrix*transform.localToWorldMatrix;
bones[1]=new GameObject("Upper").transform;
bones[1]parent=transform;
//設置相對於父的位置
bones[1].localRotation=Quaternion.identity;
bones[1].localPosition=Vector3.(0,5,0);
//綁定姿式是骨骼的逆變換矩陣
//在這種狀況下咱們也要使這個矩陣市相對與根的
//這樣咱們就可以隨意移動根物體了
bindPose[1]=bones[1].worldToLocalMatrix*transform.localToWorldMatrix;
.mesh.bindposes=bindPoses;
.//賦值骨骼並綁定姿式
.renderer.bones=bones;
.renderer.sharedMesh=mesh;
//賦值一個簡單的揮動動畫到底部的骨骼
var curve=new AnimationCurve();
curve.keys=[new Keyframe(0,0,0,0:,new Keyframe(1,3,0,0),new Keyframe(2,0.0,0,0,)];
//使用曲線建立剪輯
var clip=new AnimationClip();
clip.SetCurve("Lower", Transform,"m_LocalPosition.z", curve);
//添加並播放剪輯
animation.AddClip(clip, "test");
animation.Play("test"); }
◆ var boneWeights: BondWeight[]
描述:每一個頂點的骨骼權重
數組的大小與vertexCount相同或爲空。
每一個頂點能夠被至多4個不一樣骨骼影響。4個骨骼的權值加和應該爲1,
function Start(){
gameObject.AddComponent(Animation);
gameObject.AddComponent(SkinnedMeshRenderer);
var renderer: SkinnedMeshRenderer=GetComponent(SkinnedMeshRenderer);
//構建基本網格
var mesh: Mesh-new Mesh();
mesh.vertices=[Vector3(-1,0,0), Vector3(1,0,0), Vector3(-1,5,0), Vector3(1,5,0)];
mesh.uv=[Vector2(0,0), Vector2(1,0), Vector2(0,1), Vector2(1,1)];
mesh.triangles=[0,1,2,1,3,2];
mesh.RecalculateNormals();
//賦網格到網格過濾器和渲染器
renderer.material=new Material(Shader.Find("Diffuse"));
//賦骨骼權值到網格
//使用兩個骨骼. 一個用於上部的頂點,一個用於下部的頂點
var weights=new BoneWeight[4];
weights[0].boneIndex0=0;
weights[0].weight0=1;
weights[1].boneIndex0=0;
weights[1].weight0=1;
weights[2].boneIndex0=1;
weights[2].weight0=1;
weights[3].boneIndex0=1;
weights[3].weight0=1;
mesh.boneWeights=weights;
//建立骨骼變換並綁定姿式
//一個骨骼在頂部一個在底部
var bones=new Transform[2];
var bindPoses=new Matrx4x4[2];
bones[0]=new GameObject("Lower").transform;
bones[0]parent=transform;
//設置相對於父的位置
bones[0].localRotation=Quaternion.identity;
bones[0].localPosition=Vector3.zero;
//綁定姿式是骨骼的逆變換矩陣
//在這種狀況下咱們也要使這個矩陣市相對與根的
//這樣咱們就可以隨意移動根物體了
bindPose[0]=bones[0].worldToLocalMatrix*transform.localToWorldMatrix;
bones[1]=new GameObject("Upper").transform;
bones[1]parent=transform;
//設置相對於父的位置
bones[1].localRotation=Quaternion.identity;
bones[1].localPosition=Vector3.(0,5,0);
//綁定姿式是骨骼的逆變換矩陣
//在這種狀況下咱們也要使這個矩陣市相對與根的
//這樣咱們就可以隨意移動根物體了
bindPose[1]=bones[1].worldToLocalMatrix*transform.localToWorldMatrix;
mesh.bindposes=bindPoses;
//賦值骨骼並綁定姿式
renderer.bones=bones;
renderer.sharedMesh=mesh;
//賦值一個簡單的揮動動畫到底部的骨骼
var curve=new AnimationCurve();
curve.keys=[new Keyframe(0,0,0,0:,new Keyframe(1,3,0,0),new Keyframe(2,0.0,0,0,)];
//使用曲線建立剪輯
var clip=new AnimationClip();
clip.SetCurve("Lower", Transform,"m_LocalPosition.z", curve);
//添加並播放剪輯
animation.AddClip(clip, "test");
animation.Play("test");
}
◆ var bounds: Bounds
描述:網格的包圍體。
這個是在網格的局部座標空間中軸對齊的包圍盒(不會受到變換的影響)參考世界空
間中的Renderer.Bounds屬性。
//產生一個屏幕UV座標,這個與網格尺寸無關
//經過縮放包圍盒尺寸的頂點
function Start(){
var mesh: Mesh=GetComponent(MeshFilter).mesh;
var.vertices=mesh vertices;
var.uv=new Vector2[vertices.length];
var.bounds=mesh.bounds;
 
for (var i=0,i<uvs.length;i++){
uvs[i]=Vector2(vertices[i].x/bounds.size.x,vertices[i].z/bounds.size.x);
}
mesh.uv=uvs;
}
參見:Bounds類,Renderer.Bounds屬性.
◆ var Colors: Color[]
描述:返回網格的頂點顏色。
若是沒有頂點顏色可用,一個空的數組將被返回。
//設置y=0的頂點位紅色,y=1的訂單爲綠色.
//(注意大多數設置着色器不顯示頂點顏色,你能夠
//使用例如,一個粒子渲染器來查看頂點顏色)
function Start(){
var mesh: Mesh=GetComponent(MeshFilter).mesh;
var.vertices=mesh vertices;
var.color=new Color[Vertices.Length];
for (var i=0,i<vertices.length;i++){
colors[i]=Color.Lerp(Colored, Color.green, vertices[i].y);
}
mesh.colors=colors;
}
◆ var normals: Vectors[]
描述:網格的法線。
若是網格布包含發行,一個空的數組將被返回。
//以speed每幀旋轉法線
var speed=100.0;
function Update(){
var mesh: Mesh=GetComponent(MeshFilter).mesh;
var.normals=mesh.normals;
var rotation=Quaternion.AngleAxis(Time.deltaTime*speeed, Vector3.up);
for (var i=0,i<normals.length;i++){
normals[i]=rotation*normals[i];
}
mesh.normals=normals;
}
◆ var subMeshCount: int
描述:子網格數。每一個材質有一個不一樣的三角形列表。
◆ var tangents: Vector4[]
描述:網格的切線。
切線主要用於bumpmap shader中。切線是一個單位長度向量,a沿着網格表面指向水平
(U)紋理方向。Unity中的切線是由Vector4表示的,x.y.z組件定義向量,若是須要w用來翻
轉副法線。
Unity經過計算向量和切線之間的叉乘來計算表面的向量(副法線),並乘以
tangnent.w.所以w應該是1或-1。
若是你想在網格上使用凹凸貼圖着色器,你須要本身計算切線。賦值normals或使用
RecalculateNormals以後計算切線。
◆ var tirangles: int[]
描述:一個數組包含網格中全部的三角形。
 
這個數組時包含頂點數組索引的三角形列表。三角形數組的大小老是3的倍數。頂點
能夠經過簡單地索引同一頂點來共享。若是網格包含多個子網格(材質),三角形列表將包
含全部子網格的全部三角形。建議賦值頂點數組以後賦值一個三角形數組,以免越界錯
誤。
//構建一個網格,這個網格包含一個帶有uv的三角形.
function start(){
gameObject.AddComponent("MeshFilter);
gameObject.AddComponent("MeshRenderer);
var.mesh: Mesh=GetComponent(MeshFilter).mesh;
mesh.Clear();
mesh.vertices=[Vector3(0,0,0), Vector3(0,1,0), Vector3(1,1,0)];
mesh.uv=[Vector2(0,0), Vector2(0,1), Vector2(1,1)];
mesh.triangles=[0,1,2];
}
◆ var uv: Vector2[]
描述:網格的基本紋理座標。
//產生一個平面uv座標
function start(){
var mesh: Mesh=GetComponent(MeshFilter).mesh;
var vertices=mesh.vertices;
var uvs=new Vector2[vertices.lenghth];
fpr(var i=0;i<uvs.Length,i++){
uvs[i]=Vector2(vertices[i].x, vertices[i].z);
}
mesh.uv=uvs;
}
◆ var uv2: Vector2[]
描述:網格的第二個紋理座標集,若是提供。
//爲第二個uv集產生一個平面uv座標
function start(){
var mesh: Mesh=GetComponent(MeshFilter).mesh;
var vertices=mesh.vertices;
var uvs=new Vector2[vertices.lenghth];
fpr(var i=0;i<uvs.Length,i++){
uvs[i]=Vector2(vertices[i].x, vertices[i].z);
}
mesh.uv2=uvs;
}
◆ var vertexCount: int
描述:網格頂點數(只讀)
function start(){
var mesh=GetComponent(MeshFilter).sharedMesh;
print(mesh.vertexCount);
}
◆ var vertices: Vector3[]int
描述:返回一個頂點位置的拷貝或賦值一個新的頂點位置數組。
網格的頂點數可,以經過賦值一個不一樣數量的頂點數組來改變。注意,若是你調整了
頂點數組,那麼全部其餘頂點屬性(法線,顏色,切線,UV)將被自動地調整大小。設置
頂點時,若是沒有頂點被賦值到這個網格那麼RecalculateBounds將自動被調用。
function start(){
var mesh=GetComponent(MeshFilter).sharedMesh;
var vertics=mesh vertices;
 
fpr(var i=0;i<vertices.Length,i++)
{
vertices[i]+=Vector3.up*Time.deltaTime;
}
mesh.vertices=vertices;
mesh.RecalculateBounds();
}
構造函數
◆ static function Mesh(): Mesh
描述:建立一個空的網格
//建立一個新的網格並將它賦給網格過濾器
function Start(){
var mesh=new Mesh();
GetComponent(MeshFilter).mesh=mesh;
}
函數
◆ function Clear(): void
描述:清除全部的頂點數據和全部的三角形索引。
你應該在重建triangles數組之間調用這個函數。
◆ function GetTriangles(submesh: int): int[]
描述:返回子網格的三角形列表。
一個子網格僅僅是一個獨立的三角形列表。當網格渲染器使用多個材質時,你應該確保
有儘量多的子網格做爲材質。
◆ function Optimize(): void
描述:優化網格以便顯示。
這個操做將花費一點時間可是會使幾何體顯示的更快。例如,它從三角形中產生三角形
帶。若是你從頭建立一個網格而且想在運行的時候取得更好的運行時性能而不是較高的加
載時間,你應該使用它。它三角帶化你的模型爲每一個頂點緩存位置優化三角形,對於導
載時間,你應該使用它。它三角帶化你的模型併爲每一個頂點緩存位置優化三角形。對於導
入的模型你不該該調用這個,由於導入流水線已經爲你作了。
function Start(){
var mesh: Mesh=GetComponent(MeshFilter).mesh;
mesh.Optimize();
}
◆ function RecalculateBounds(): void
描述:從頂點從新計算網格的包圍提。
修改頂點以後你應該調用這個函數以確保包圍體式正確的。賦值三角形將自動計算
這個包圍體。
function Start(){
var mesh: Mesh=GetComponent(MeshFilter).mesh=mesh;
mesh.RecalculateBounds();
}
◆ function RecalculateNormals(): void
描述:從三角形和頂點從新計算網格的法線。
在調整頂點以後一般須要更新法線以便反映這個改變。法線是從全部共享的頂點來計
算的。導入的網格有時並不共享全部頂點。例如在UV法線接縫處的點將被分割成兩個點。因
而RecalculateNormals函數在uv接縫處將建立不平滑的法線,RecalculateNormals不會自動
產生切線,所以bumpmap着色器在調用RecalculateNormals以後不會工做。然而你能夠提
取你本身的切線。
function Start(){
var mesh: Mesh=GetComponent(MeshFilter).mesh;
mesh.RecalculateNormals();
}
◆ function SetTriangles(triangles: int[], submesh: int): void
描述:爲子網格設置多邊形列表
一個子網格僅僅是一個獨立的三角形列表。當網格渲染器使用多個材質時,你應該確保
有儘量多的子網格做爲材質。建議賦值頂點數組以後賦值一個三角形數組,以免越界
錯誤。
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
PhysicsMaterial
類,繼承自Object
載體材質描述:如何處理物體碰撞(摩擦,彈性)
參見:Collider
變量
◆ var bounceCombine: PhysicsMaterialCombine
描述:決定彈力是如何組合的。
傳統上彈性屬性依賴於兩種相互接觸的材質的組合。然而在遊戲中這是不切實的。能夠
使用組合模式來調整兩個材質的彈性如何被組合。
collider.material.bounceCombine=FrictionCombineMode.Average;
◆ var bouncyness: float 
描述:表面的彈力如何?0值沒有彈力。1值沒有能力損失的反彈。
collider.bouncyness=1;
◆ var dynamicFriction: float 
描述:移動時候使用的摩擦力。這個值在0到1之間。
0值就像冰,1像橡膠。
collider.dynamicFriction=1;
◆ var dynamicFriction2: float 
描述:若是有向摩擦力被啓用,dynamicFriction2將沿着FrictionDirection2使用。
collider.physicMaterial.dynamicFriction2=0;
◆ var frictionCombine: PhysicMaterialCombine 
描述:決定摩擦力是如何組合的。
傳統上摩擦力屬性依賴於兩種相互接觸的材質的組合。然而在遊戲中這是不切實的。
你能夠使用組合模式來調整兩個材質的摩擦力如何被組合。
collider.material.frictionCombine=physicMaterialCombine.Average;
◆ var frictionDirection2: Vector3
描述:有向性方向。若是這個矢量是非零,有向摩擦力被啓用。
dynamicFriction2和staticFriction2將沿着frictionDirection2被應用。有向性方向相對於
碰撞器的局部座標系統。
//使碰撞向前滑動而不是側滑
collider.physicMaterial.frictionDirection2=Vector3.forward;
collider.physicMaterial.dynamicFriction2=0;
collider.physicMaterial.dynamicFriction=1;
◆ var staticFriction: float
描述:當一個物體靜止在一個表面上時使用的摩擦力。一般是0到1之間的值。
0值就像冰,1像橡膠。
collider.staticFriction=1;
◆ var staticFriction2: float
描述:若是有向摩擦力被啓用,staticFriction2將沿着frictionDirection2使用。
collider.physicMaterial.staticFriction2=0;
構造函數
◆ static function PhysicMaterial(): PhysicMaterial
描述:建立一個新的材質
一般只使用collider.material和直接修改附加的材質更加簡單。
//建立一個新的材質並附加它
function Start(){
var material=new PhysicMaterial();
material.dynamicfriction=1;
collider.material=material;
}
◆ static function PhysicMaterial(name: string): PhysicMaterial
描述:建立一個新的材質,命名爲name.
//建立一個新的材質並附加它
function Start(){
var material=new PhysicMaterial("New Material");
material.dynamicfriction=1
collider.material=material;
}
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬
ScriptableObject
類,繼承自Object
若是你想建立一個不須要附加到遊戲物體的對象,能夠從這個類繼承、
這對於那些只存儲數據資源是組有用的。
消息傳遞
◆ function OnDisable(): void
描述:當可編輯物體超出範圍時調用這個函數
當物體被銷燬的時候這個函數也會被調用並能夠用於任何清理的代碼。當腳本在編譯
結束後被加載時,OnDisable將被調用,而後腳本加載完成後OnDisable將被調用。
function OnDisable()
{
print(:script was removed");
}
OnDisable不能做爲一個coroutine.
◆ function OnEnable(): void
描述:物體被加載時調用該函數
function OnEnable()
{
print(:script was enabled");
}
OnEnable不能做爲一個coroutine.
類方法
◆ static function CreateInstance(className: string): ScriptableObject
描述:使用className建立一個可編程物體的實例.
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬
GUISkin
類,繼承自ScriptableObject
變量
◆ var box: GUIStyle
描述:用於GUI.Box控件的缺省風格
◆ var button: GUIStyle
描述:用於GUI.Button控件的缺省風格
◆ var GUIStyle[i]:
描述:
◆ var font: Font
描述:用於全部風格的缺省字體。
◆ var horizontalScrollbar: GUIStyle
描述:
◆ var horizontalScrollbarLeftButton: GUIStyle
描述:
◆ var horizontalScrollbarRightButton: GUIStyle
描述:
◆ var horizontalScrollbarThumb: GUIStyle
描述:
◆ var horizontalSlider: GUIStyle
描述:用於GUI.HorizontalSlider控件背景部分的缺省風格.
用於決定滑塊可拖動區域尺寸的填充屬性。
◆ var horizontalSliderThumb: GUIStyle
描述:用於GUI.HorizontalSlider控件中可拖動滑塊的缺省風格.
用於決定滑塊尺寸的填充屬性。
◆ var label: GUIStyle
描述:用於GUI.Label控件的缺省風格.
◆ var scrollView: GUIStyle
描述:
◆ var settings: GUISettings
描述:使用這個皮膚的空間如何表現得通用設置。
◆ var textArea: GUIStyle
描述:用於GUI.TextArea控件的缺省風格。
◆ var textField: GUIStyle
描述:用於GUI.textField控件的缺省風格。
◆ var toggle: GUIStyle
描述:用於GUI.toggle控件的缺省風格。
◆ var verticalScrollbar: GUIStyle
描述:
◆ var verticalScrollbarDownButton: GUIStyle
描述:
◆ var verticalScrollbarThumb: GUIStyle
描述:
◆ var verticalScrollbarUpbutton: GUIStyle
描述:
◆ var verticalSlider: GUIStyle
描述:用於GUI.VerticalSlider控件背景部分的缺省風格.
用於決定滑塊可拖動區域尺寸的填充屬性。
◆ var verticalSliderThumb: GUIStyle
描述:用於GUI.VerticalSlider控件中可拖動滑塊的缺省風格.
用於決定滑塊尺寸的填充屬性。
◆ var window: GUIStyle
描述:用於GUI.Windows控件的缺省風格。
函數
◆ function FindStyle(styleName: string): GUIStyle
描述:獲取一個命名GUIStyle.
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的消息傳遞
OnEnable 物體被加載時調用該函數
OnDisable 可用編程物體超出範圍時調用這個函數
繼承的類函數
CreateInstance 使用className建立一個可編程物體的實例。
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
Shader
類,繼承自Object
用於因此渲染的着色器腳本
大多數高級的渲染都是經過Material類控制的. Shader類類最經常使用於檢查一個着色器時
否可以運行在用戶的硬件上(isSupported屬性)並根據名稱找到着色器(Find方法).
參見:Material類,Materials,ShaderLab documentation.
變量
◆ var isSupported: bool
描述:這個着色器可以運行在端用戶的顯卡上?(只讀)
若是這個着色器重的設置和任何fallback函數被支持,返回真。在實現特定的效果時,
最常使用這個。例如,Unity Pro中的image effects,若是這個着色器不被支持那麼Unity將
自動禁用它們。
//若是材質的着色器不被支持,禁用渲染器
if(!renderer material.shader.isSupported)
renderer.enabled=false;
參見:Material類,ShaderLab documentation.
◆ var maximumLOD: int
描述:該shader的LOD等級
參見:Shader Level of Detail, Shder globalMaximumLOD.
◆ var renderQueue: int
描述:這個shader的渲染隊列(只讀)
參見:Material.renderQueue, RenderQueue tag.
類變量
◆ static var globalMaximumLOD: int
描述:全部shader的LOD等級.
參見:Shader Level of Detail, Shader.MaximumLOD.
類方法
◆ static function Find(name: string): Shader
描述:找到名爲name的着色器。
Shader.Find可以用來切換到另外一個着色器,而不須要保持一個到該着色的引用。name
爲材質着色器下拉框中的名稱。一般的名稱是:"Diffuse", "Bumped Diffuse", "VertexLit",
"Transparent/Diffuse"等等。
在構建時,只包含那些使用中的shader或位置在"Resources"文件夾中shader。
//從腳本中改變shader
function Start()
{
//切換到透明散射着色器
renderer.material.shader=Shader.Find("Transparent/Diffuse");
}
//從代碼建立一個材質
function Start()
//使用透明散射着色器建立一個材質
var material=new Material(Shader.Find("Transparent//Diffuse");
material.color=Color.green;
//賦值這個材質到渲染器
renderer.material=material;
}
參見:Material類。
◆ static function PropertyToID(name: string): int
描述:爲一個着色器屬性名獲取惟一標識。
着色器屬性表示被MaterialPropertyBlock函數使用。
在Unity中着色器屬性的每一個名稱都(例如,_MainTex或_Color)被賦予一個惟一的整型
數,在整個遊戲中都不變。
參見:MaterialPropertyBlock.
◆ static function SetGlobalColor(propertyName: string, color: Color): void
描述:爲因此着色器設置全局顏色屬性。
若是一個着色器須要而材質沒有定義它們將使用全局屬性(例如,若是着色器不在
Properties模塊中公開它們).
一般在你有一組定義的着色器並使用相同的"全局"顏色(例如,太陽的顏色)。而後
你能夠從腳本中設置全局屬性,並不須要在全部的材質中設置相同的顏色。
參見:SetGlobalFloat,SetGlobalVector,SetGlobalTexture;Material類,ShaderLab
documentation.
◆ static function SetGlobalFloat(propertyName: string, value: float): void
描述:爲全部着色器設置全局浮點數屬性。
若是一個着色器須要而材質沒有定義它們將使用全局屬性(例如,若是着色器不在
Properties模塊中公開它們).
一般在你有一組定義的着色器並使用相同的"全局"浮點z數(例如,自定義霧類型的
密度)。而後你能夠從腳本中設置全局屬性,並不須要在全部的材質中設置相同的浮點數。
參見:SetGlobalColor,SetGlobalTexture;Material類,ShaderLab documentation.
◆ static function SetGlobalMatrix(propertyName: string, mat: Matrix4x4): void
描述:爲全部着色器設置全局矩陣屬性。
若是一個着色器須要而材質沒有定義它們將使用全局屬性(例如,若是着色器不在
Properties模塊中公開它們).
參見:SetGlobalColor,SetGlobalFloat;Material類,ShaderLab documentation.
◆ static function SetGlobalTexture(propertyName: string, tex: Texture): void
描述:爲全部的着色器設置全局紋理屬性。
若是一個着色器須要而材質沒有定義它們將使用全局屬性(例如,若是着色器不在
Properties模塊中公開它們).
一般在你有一組定義的着色器並使用相同的"全局"紋理(例如,自定義散射光照立方
貼圖)。而後你能夠從腳本中設置全局屬性,並不須要在全部的材質中設置相同的紋理。
參見:SetGlobalColor,SetGlobalFloat;Material類,ShaderLab documentation.
◆ static function SetGlobalVector(propertyName: string, vec: Vector4): void
描述:爲全部着色器設置全局向量屬性。
若是一個着色器須要而材質沒有定義它們將使用全局屬性(例如,若是着色器不在
Properties模塊中公開它們).
一般在你有一組定義的着色器並使用相同的"全局"向量(例如,風的方向)。而後你
能夠從腳本中設置全局屬性,並不須要在全部的材質中設置相同的向量。
參見:SetGlobalFloat,SetGlobalColor,SetGlobalTexture;Material類,ShaderLab
documentation.
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
TerrainData
類,繼承自Object
TerrainData類存儲高度圖,細節網格位置,樹實例,和地形紋理alph圖,
Terrain組件連接地形數據並渲染它。
變量
◆ var heightmapHeight: int
描述:採樣的地形高度(只讀)
◆ var heightmapWidth: int
描述:採樣的地形寬度(只讀)
◆ var size: Vector3
描述:地形在世界單位下的總大小
函數
◆ function GetHeights(xBase: int, yBase: int, width: int, height: int): float[,]
描述:獲取高度圖採樣的一個數組。
◆ function GetInterpolatedNormal(x: float, y: float): Vector3
描述:在一個給定的位置獲取插值法線。
/x/和y座標被做爲0...1之間正規化的座標被指定。
◆ function SetHeights(xBase: int, yBase: int, height: float): float[,]): void
描述:設置高度圖採樣的一個數組。
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
TextAsset
類,繼承自Object
文本文件資源。
你能夠在你的工程中使用原始的.txt文件做爲資源,並經過這個類獲取它們的內容。
變量
描述:文本資源的原始字節
//經過添加.txt擴展名到文件來加載一個.jpg或.png文件
//並拖動它到imageTextAsset
var image TextAsset: TextAsset
function Start(){
var tex=new Texture2D(4,4);
tex.LoadImage(imageTextAsset.bytes);
renderer.material.mainTexture=tex;
}
◆ var text: string
描述:.txt文件的文本內容做爲一個字符串。
var asset: TextAsset;
function Start()
{
print(asset.text);
}
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
Texture
類,繼承自Object
用於處理紋理的基類,包含的功能被Texture2D和RenderTexture類共用。
變量
◆ var anisoLevel: int
描述:紋理的各向異性過濾等級
反走樣過濾使紋理從一個較小的視角看時具備較好的效果,可是會帶來顯卡性能上的開
值。一般你能夠將它用與地面,地板或路面紋理以使它看起來更好。參見:texture assets.
renderer.material.mainTexture.anisoLevel=2;
◆ var filterMode: FilterMode
描述:紋理的過濾模式
renderer.material.mainTexture.filterMode=FilterMode.trilinear;
參見:FilterMode, texture assets.
◆ var height: int
描述:紋理的像素高度(只讀)
//打印紋理尺寸到控制檯
var texture: Texture;
function Start(){
print("Size is"+texture.width+"by"+texture.height);
}
◆ var mipMapBias: float
描述:紋理的mipMap偏移。
一個正的偏移使紋理顯得很是模糊,而一個負的偏移使紋理變得更加清晰。注意使用
大的負值會下降性能,所以不建議使用小於0.5的偏移。在大多數狀況先,紋理的銳化可
以經過使用反走樣過濾來實現。
參見:texture.anisoLevel, texture assets.
renderer.material.mainTexture.mipMaoBias=0.5;
◆ var width: int
描述:紋理的像素寬度(只讀)
//打印紋理尺寸到控制檯
var texture: Texture;
function Start(){
print("Size is"+texture.width+"by"+texture.height);
}
◆ var wrapMode: TextureWrapMode
描述:紋理的包裹模式(Repeat或Clamp)
使用TextureWrapMode.Clamp在邊界上設置紋理剪裁以免包裹的不真實,或者用
TextureWrapMode.Repeat平鋪紋理。參見:TextureWrapMode, texture assets.
renderer.material.mainTexture.WrapMode=TextureWrapMode.Clamp;
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
Cubemap
類,繼承自Texture
處理立方貼圖的類,用這個來建立或修改已有的cube map assets.
變量
◆ var format: TextureFormat
描述:紋理中像素數據的格式(只讀)
使用這個肯定紋理的格式。
構造函數
◆ static function Cubemap(size: int. format: TextureFormat, mipmap: bool): Cubemap
描述:建立新的空立方貼圖紋理;
在每一個面,紋理將是size大小的而且有或沒有mipmap.
一般你會想在建立它以後設置紋理的顏色,使用SetPixel和Apply函數.
function Start(){
//建立一個新的紋理並將它複製給渲染器材質
var texture=new Cubemap(128, TextureFormat.ARGB32, false)
renderer.material.mainTexture=Texture;
}
參見:SetPixel,Apply函數. 
函數
◆ function Apply(updateMipmaps: bool=true): void
描述:應用全部面前的SetPixel改變.
若是updateMipMaps爲true.mip等級也被從新計算.這是很是耗時的操做,所以你要在
Apply調用之間改變儘量多的像素。參見:SetPixel函數.
◆ function GetPixel(face: CubemapFace, x: int, y: int): Color
描述:返回座標(face, X, Y)處的像素顏色.
若是像素座標超出邊界(大於寬/高或小於0),它將基於紋理的包裹模式來限制或重複。
該函數只工做再ARGB32,RGB24和Alpha8紋理格式上。對於其餘格式,他老是返
回不透的白色。
◆ function GetPixels(face: CubemapFace, miplevel: int): Color[]
描述:返回立方貼圖一個面的像素顏色.
這個函數返回立方貼圖面上整個mip等級的像素顏色數組。
返回的數組被設置在2D數組中,這裏,像素被從左到右,從上到下放置(行序)數
組的大小是所使用的mip等級的寬乘高。默認的mip等級是零(基本紋理)在這種狀況下
大小僅爲紋理的大小。通常地,mip等級尺寸是mipSize=max(1,width>>miplevel)高度相似。
該函數只工做在ARGB32,RGB24和Alpha8紋理格式上。對於其餘格式,GetPixels被
忽略.
使用GetPixels比重複調用GetPixel更快,尤爲是對於大紋理,此外GetPixels能夠訪
問單獨的mipmap等級.
參見:SetPixels,mipmapCount.
◆ function SetPixel(face: CubemapFace, x: int, y: int, color: Color): void
描述:在座標(face,x,y)處設置像素顏色。
調用Apply來實際上載改變後的像素到顯卡, 上載是很是耗時的操做,所以你要在
Apply調用之間改變儘量多的像素。
該函數只工做再ARGB32,RGB24和Alpha8紋理格式上。對於其餘格式SetPixels被
忽略. 參見:Apply函數.
◆ function SetPixels(color: Color[], face: CubemapFace, mipmapFace, miplevel: int): void
描述:設置立方貼圖一個面的像素顏色。
這個函數取回並改變整個立方貼圖面的像素顏色數組。調用Apply來實際上載改變後
的像素到顯卡.
colors數組被放置在2D數組中,這裏,像素被從左到右,從上到下放置(行序)數組
的大小必須至少是所使用的mip等級的寬乘高。默認的mip等級是零(基本紋理)在這種
狀況下大小僅爲紋理的大小。通常地,mip等級尺寸是mipSize=max(1,width>>miplevel)高
度相似。
該函數只工做在ARGB32,RGB24和Alpha8紋理格式上。對於其餘格式,GetPixels被
忽略.
參見:GetPixel, Apply, mipmapCount.
繼承的成員
繼承的變量
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
MovieTexture
類,繼承自Texture
Movie Textures是能夠播放電影的紋理
它們能夠用於過場動畫電影序列,或者渲染電影到場景中。
變量
◆ var audioClip: AudioClip
描述:返回屬於MovieTexture的AudioClip.
注意這是一個特定的AudioClip它老是與電影同步播放音頻。在編輯器重若是你將電影
的audioClip附加到一個源上,它將在電影播放的時候自動開始播放,不然你必須收動開
始它,剪輯只能被附加到一個AudioSource。
◆ var isPlaying: bool
描述:返回電影是否在播放
◆ var isReadyToPlay: bool
描述:若是電影是從網站上下載的,這個返回是夠已經下載了足夠的數據以便可以不一樣
版的播放它。
對於不是來自web的流的電影,這個值是返回真。
function Start(){
www=new WWW(url);
guiTexture.texture=www.movie;
}
function Update(){
if(!guiTexture.texture.isPlaying&&guiTexture.texture.isReadyToPlay)
guiTexture.texture.Play();
}
◆ var loop: bool
描述:這個爲真時電影循環。
函數
◆ function Pause(): void
描述:暫停播放電影。
function Start(){
renderer.material.mainTexture.Pause();
}
◆ function Play(): void
描述:開始播放電影。
注意運行的MovieTexture將使用大量的CPU資源,而且它將持續運行直到它被手、
動中止或加載一個新的關卡。參見:stop
function Start(){
renderer.material.mainTexture.Play();
}
繼承的成員
繼承的變量
width 紋理的像素寬度(只讀)
height 紋理像素高度(只讀)
filterMode 紋理的過濾模式
anisoLevel 紋理的各向異性過濾等級
wrapMode 紋理的包裹模式(Repeat或Clamp)
mipMapBias 紋理的mipMap便宜。
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
描述:渲染紋理的尺寸限制爲2的冪次?
當建立圖像後刷處理效果時,你應該老是設置這個爲false由於這容許四面
ReaderTexture大小問任意屏幕大小。
當爲普通的材質和shader使用RenderTexture時,你應該老是設置這個爲true由於這允
許像普通紋理同樣使用一個RenderTexture.
◆ var useMipMap: bool
描述:生成mipmap等級?
當設置爲true,渲染到這個紋理將建立並生成mipmap等級面膜人的渲染紋理沒有
mipmap.
這個這斃用於2的冪次方尺寸的渲染紋理(參考isPowerOfTwo).
◆ var width: int
描述:渲染紋理的像素寬度。
注意不像Texture.height屬性,這個是可讀寫的,設置一個值來改變大小
構造函數
◆ static function ReaderTexture(width: int, height: int, depth: int): ReaderTexture
描述:建立一個新的RenderTexture對象。
渲染紋理使用width x height尺寸建立,深度緩存爲depth位(深度能夠是0,16或24)
渲染紋理或設置爲非2的冪次紋理並使用默認的color format
注意建立一個RenderTexture不會當即建立硬件表示。實際的渲染紋理是第一次使用
是建立或當Create被手動調用時建立。所以在建立渲染紋理以後,你能夠設置額外的變量,如
isPowerOfTwo, format, isCubemap等等。
參見:isPowerOfTwo變量, format變量.
函數
◆ function Create(): bool
描述:實際建立RenderTexture。
RenderTexture構造函數實際上並無建立硬件紋理:默認的紋理第一次建立時被設置
爲active,調用Create來建立它。若是紋理已經被建立Create不作任何事。
參見:Release,isCreated函數.
◆ function IsCreate(): bool
描述:渲染紋理產生了?
RenderTexture構造函數實際上並無建立硬件紋理:默認的紋理第一次建立時被設置
爲active,若是用於渲染的的硬件資源被建立了,IsCreate返回ture.
參見:Create,Release函數.
◆ function Release(): void
描述:釋放RenderTexture。
這個函數釋放由這個渲染紋理使用的硬件資源,紋理自己並不被銷燬,並在使用的時候
被自動再次建立。
參見:Create,IsCreate函數.
◆ function SetBorderColor(color: Color): void
描述:爲這個渲染紋理設置爲邊框顏色。
若是顯卡支持"剪裁到邊界",那麼任何超出0...1UV範圍的紋理採樣將返回邊界顏色。
◆ function SetGlobalShaderProperty(propertyName: string): void
描述:賦值這個RenderTexture爲一個名爲propertyName的全局shader屬性。
類變量
◆ static var active: RenderTexture
描述:激活的渲染紋理。
全部的渲染將進入激活的RenderTexture若是活動的RenderTexture未null全部的東西都
被渲染到主窗口.
當你一個RenderTexture變爲激活,若是它尚未被建立,硬件渲染內容將被自動建立。
類方法
◆ static function GetTemporary(width: int, height: int, depthBuffer: int, format:
RenderTextureFormat=RenderTextureFormat.ARGB32): RenderTexture
描述:分配一個臨時的渲染紋理。
這個函數被優化,用於當你需呀一個快速RenderTexture來作一些臨時計算時,一旦完
成使用ReleaseTemporary釋放它,這樣,若是須要,另外一個調用可以開始重用它。
◆ static function ReleaseTemporary(temp: RenderTexture): void
描述:釋放一個由GetTemporary分配的臨時紋理。
若是可能,以後調用GetTemporary將重用前面建立的RenderTexture,若是沒有請來臨
時RenderTexture,幾幀後它將被銷燬。
繼承的成員
繼承的變量
width 紋理的像素寬度(只讀)
height 紋理像素高度(只讀)
filterMode 紋理的過濾模式
anisoLevel 紋理的各向異性過濾等級
wrapMode 紋理的包裹模式(Repeat或Clamp)
mipMapBias 紋理的mipMap便宜。
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
Texture2D
類,繼承自Texture
用於處理紋理的類。使用這個來建立臨時的紋理或, 修改已經存在的texture assets
變量
◆ var format: TextureFormat
描述:紋理中像素數據的格式(只讀)
使用這個肯定紋理的格式。
◆ var mipmapCount: int
描述:在這個紋理中有多少Mipmap等級(只讀)
返回值也包含基本等級,所以他老是1或更大。
若是你使用GetPixels或SetPixels來取回或修改不一樣的mip等級時,須要使用
mipmapCount. 例如,你能夠改變一個紋理以便每一個mip等級以不一樣的顏色修改. 而後再遊
戲中你能夠看到那個mip等級被實際使用了。
參見:GetPixels函數,SetPixels函數。
構造函數
◆ static function Texture2D(width: int, height: int): Texture2D
描述:建立新的空紋理;
紋理爲width乘height大小,TextureFormat爲ARGB32帶有mipmap.
一般你會想到在建立它以後設置紋理的顏色,使用SetPixel,SetPixels和Apply函數。
function Start(){
//建立一個新的紋理並將它賦給渲染器材質
var texture=new Texture2D(128,128);
renderer.material.mainTexture=texture;
}
參見:SetPixel,SetPixels,Apply函數.
◆ static function Texture2D(width: int, height: int, format: TextureFormat, mipmap: bool): 
Texture2D
描述:建立新的空紋理;
紋理爲width乘height大小,具備給定的format有或沒有miamap.
一般你會想到在建立它以後設置紋理的顏色,使用SetPixel,SetPixels和Apply函數。
建立不容許有壓縮紋理格式的貼圖。
function Start(){
//建立一個新的紋理並將它賦給渲染器材質
var texture=new Texture2D(128,128, TextureFofrmat.AGRB32, false);
renderer.material.mainTexture=texture;
}
參見:SetPixel,SetPixels,Apply函數.
函數
◆ function Apply(updateMipmaps: bool=true): void
描述:實際地應用前面的SetPixel和SetPixels改變.
若是updateMipmaps爲true,mipmap等級也被從新計算,使用基本等級做爲源.一般
你會想在全部的狀況下使用true,除非你已經使用SetPixels修改了mip等級。
這是很是耗時的操做,所以你要在Apply調用之間改變儘量多的像素。
function Start(){
//建立一個新的紋理並賦值它到渲染器材質
var texture=new Texture2D(128,128);
renderer.material.mainTexture=texture;
//用Sierpinski分形模式填充!
for(y=0; y<texture.height; ++y) {
for(x=0; x<texture.width; ++x) {
var color=(x&y)? Color.white: Color.gray;
texture.SetPixel(x, y, color);
}
}
//應用全部的SetPixel調用
texture.Apply();
}
參見:SetPixel,SetPixels函數.
◆ function Compress(highQuality: bool): void
描述:壓縮紋理問DXT格式。
使用這個來壓縮在運行時生成的紋理。壓縮後的紋理使用較少的顯存並能夠更快地被
渲染。
壓縮以後,若是原始紋理沒有alpha通道紋理將是DXT1格式,若是它有alpha通道紋理
將是DXT5格式.
傳遞true到highQuality將在壓縮過程當中抖動源紋理,這能夠幫助提升壓縮質量可是會
有一些慢。
若是顯卡不支持壓縮或者紋理已是壓縮格式,那麼Compress將不作任何事情。
參見:SetPixels函數.
◆ function EncodeToPNG(): byte[]
描述:編碼這個紋理爲PNG格式。
返回的字節數組是PNG"文件"。你能夠將它們寫在鍵盤上以便獲取PNG文件,並通
過網格發送它們。
該函數只工做在ARGB32和RGB24紋理格式上。對於ARGB32紋理編碼的PNG數
據將包含alpha通道。對於RGB24紋理不包含alpha通道。PNG數據將不包含伽馬矯正或顏
色配置信息。
//存儲截屏爲PNG文件。
import System.1();
//當即截屏
function Start(){
UploadPNG();
}
function UploadPNG(){
//只在渲染完成後讀取屏幕緩存
yield WaitForEndOfFrame();
//建立一個屏幕大小的紋理,RGB24格式
var width=Screen.width;
var height=Screen.height;
var tex=new Texture2D(width, height, TextureFormat.RGB24, false);
//讀取屏幕內容到紋理
tex ReadPixels(Rect(0, 0, width, height), 0, 0);
tex.Apply();
//編碼紋理爲PNG文件
var bytes=tex.EncodeToPNG();
Destroy(tex);
//處於測試目的,也在工程文件夾中寫一個文件
//File.WriteAllBytes(Application.dataPath+"/../SavedScreen.png", bytes);
//建立一個Web表單
var form=new WWWForm();
form.AddField("frameCount", Time.frameCount.ToString());
form.AddBinaryData("fileUpload",bytes);
//上傳到一個CGI腳本
var w=WWW("http://localhost/cgi-bin/env.cgi?post",form);
yield w;
if(w.error!=null)
{
print(w.error);
}
else{
print("Finished Uploading Screenshot");
}
}
參見:ReadPixels, WaitForEndOfFrame, LoadImage.
◆ function GetPixel(x: int, y: int): Color
描述:返回座標(x, y)處的像素顏色。
若是像素座標超出邊界(大於寬/高或小於0),它將給予紋理的包裹模式來限制或重複。
若是你正在從紋理中讀一個大的像素塊,使用GetPixels可能會更快,它將返回整個像
素顏色塊。
該函數只工做在ARGB32, RGB24和Alpha8紋理格式上。對於其餘格式,他老是返
回不透的白色。
//設置變換的y座標爲跟着高度圖
var heightmap: Texture2D;
var size=Vector3(100, 10, 100);
function Update()
{
var x: int=transform.position.x/size.x*heightmap.width;
var z: int=transform.position.z/size.z*heightmap.height;
transform.position.y=heightmap.GetPixel(x,z).grayscale*size.y;
}
參見:GetPixels, SetPixel, GetPixelBilinear.
◆ function GetPixelBilinear(u: float, v: float): Color
描述:返回正規化座標(u, y)處的過濾像素顏色。
座標u和v從0.0到1.0,就像網格上的UV座標。若是座標超出邊界(大於1小於0).
它基於紋理的包裹模式來限制或重複。
返回被雙線性過濾的像素顏色。
該函數只工做在ARGB32, RGB24和Alpha8紋理格式上。對於其餘格式,他老是返
回不透的白色。
參見:GetPixel.
◆ function GetPixels(miplevle: int): Color[]
描述:獲取一塊像素顏色。
這個函數返回紋理整個mip等級的像素顏色數組。
返回的數組被放置在2D數組中,這裏,像素被從左到右,從上到下放置(行序)數
組的大小是所使用的mip等級的寬乘高。默認的mip等級是零(基本紋理)在這種狀況下
大小僅爲紋理的大小。通常地,mip等級尺寸是mipWidth-max(1,width>>miplecvel)高度類
似。
該函數只工做在ARGB32, RGB24和Alpha8紋理格式上。對於其餘格式GetPixels被忽
略。
使用GetPixels比重複調用GetPixel更快,尤爲是對於大紋理. 此外,GetPixels能夠訪
問單獨的mipmap等級.
參見:GetPixels, mipmapCount.
◆ function GetPixels(x: int, y: int, blockWidth: int, blockHeight: int, miplevel: int): Color[]
描述:獲取一塊像素顏色。
這個函數是上面GetPixels函數的擴展;它不會返回整個mip等級而只是返回開始於x,y
點blockWidth乘blockHeight的區域。該塊必須適合使用的mip等級。返回的數組是
blockWidth*blockHeight尺寸。
◆ function LoadImage(data: byte[]): bool
描述:從一個字節數組中加載一個圖片。
這個函數從原始的字節數組中加載一個JPG和PNG圖片。
//經過添加.txt擴展名刀文件來加載一個.jpg或.png文件
//並拖動它到imageTextAsset
var imageTextAsset: TextAsset;
function Start()
{
var tex=new Texture2D(4,4);
tex.LoadImage(imageTextAsset.bytes);
renderer.material.mainTexture=tex;
}
參見:EncodeToPNG函數.
◆ function PackTextures(textures: Textures2D[]. padding: int, maximumAtlasSize: int=
2048): Rect[]
參數
textures 紋理數組被打包到集合彙總。
padding 打包紋理的像素間距。
maximumAtlasSize 調整紋理的最大尺寸。
返回Rect[]-一個矩形數組,數組包含每一個輸入紋理的UV座標集合,若是打包失敗
爲mull。
描述:打包多個textures到一個紋理集中。
這個函數將使用紋理集替換當前紋理。尺寸,格式和紋理是否有Mipmap能夠在打包後
改變。
生成的紋理集儘量的大以便適合全部輸入的紋理,可是在沒有維度上不超過
maximumAtlasSize. 若是輸入的紋理不能適合紋理集合的大小,它們將被縮小。
若是全部導入的紋理是DXT1壓縮格式的,紋理集也有DXT1格式. 若是全部輸入紋理
被以DXT1或DXT5格式壓縮,那麼集合將是DXT5格式。若是任何輸入的紋理是沒有壓
縮的,那麼集合將是ARGB32來壓縮格式。
若是輸入的紋理沒有mipmap,那麼集合也將不會有mipmap。
◆ function ReadPixels(source: Rect, destX: int, destY: int, recalculateMipMaps: bool=
true: void
描述:讀取屏幕像素到保存的紋理數據中。
這將從當前激活的ReaderTexture或試圖(由/source/指定)拷貝一個矩形像素區域到由
destX和destY定義的位置上. 兩個座標都是用像素空間-(0,0)爲左下角。
若是recalculateMipMaps被設置爲真,紋理的Mip貼圖也將被更新。若是
recalculateMipMaps被設置爲假,你必須調用Apply重計算它們.
該函數只工做在ARGB32和RGB24紋理格式上。
參見:EncodeToPNG.
◆ function Resize(width: int, height: int, format: TextureFormat, hasMipMap: bool): bool
描述:調整紋理大小。
改變紋理的尺寸爲width乘height,格式爲textureFormat並有選擇地建立Mip貼圖.調
整大小後,紋理像素將是未定義的。這個函數很是相似與紋理構造器,除了它工做在已存
在的紋理物體上。
調用Aplly來實際上載改變後的像素到顯卡。
不容許調整壓縮紋理格式的大小。
◆ function Resize(width: int, height: int): bool
描述:調整紋理大小。
改變紋理的大小爲width乘height。調整大小後,紋理像素將是未定義的。這個函數
很是相似與紋理構造器,除了它工做在已存在的紋理物體上。
調用Aplly來實際上載改變後的像素到顯卡。
不容許調整壓縮紋理格式的大小。
◆ function SetPixel(x: int, y: int, color: Color): void
描述:在座標(x,y)處設置像素顏色。
調用Aplly來實際上載改變後的像素到顯卡。上載是很是耗時的操做,所以你要在
Apply調用之間改變儘量多的像素。
若是你須要在運行時頻繁重計算一個紋理,生產一個像素顏色數組並用SetPixels一次設
置它們,這種方法要快一些。
該函數只工做在ARGN32, RGB24和Alpha8紋理格式上。對於其餘格式SetPixel被
忽略。
function Start(){
//建立一個新的紋理並賦值它到渲染器材質
var texture=new Texture2D(128,128);
renderer.material.mainTexture=texture;
//用Sierpinski分形模式填充!
for(y=0; y<texture.height; ++y) {
for(x=0; x<texture.width; ++x) {
var color=(x&y)? Color.white: Color.gray;
texture.SetPixel(x, y, color);
}
}
//應用全部的SetPixel調用
texture.Apply(); }
參見:SetPixels,GetPixel, Apply.
◆ function SetPixels(Colors: Color[], miplevel: int): void
描述:設置一塊像素顏色。
這個函數取的並改變紋理整個mip等級的像素顏色數組調用Apply來實際上載改變
後的像素到顯卡.
Colors數組被放置在2D數組中,這裏,像素被從左到右,從上到下放置(行序)數組
的大小必須至少是所使用的mip等級的寬乘高。默認的mip等級是零(基本紋理)在這種
狀況下大小僅爲紋理的大小。通常地,mip等級尺寸是mipWidth-max(1,width>>miplecvel)
高度相似。
該函數只工做在ARGB32, RGB24和Alpha8紋理格式上。對於其餘格式GetPixels被
忽略。
使用GetPixels比重複調用GetPixel更快,尤爲是對於大紋理. 此外,GetPixels能夠訪問
單獨的mipmap等級.
參見:GetPixels, Apply, mipmapCount.
//這個腳本用不一樣的顏色修改紋理的Mip等級
//(第一個等級爲紅色,第二個爲綠色,第三個爲藍色),你能夠使用這個來查看
//那個Mip被實際使用和如何使用.
function Start(){
//賦值原始的紋理並賦值給材質
var texture: Texture2D=Instantiate(Renderer.material.mainTexture);
renderer.material.mainTexture=texture;
//colors用來修改前3個mip等級
var colors=new Colors[3];
colors[0]=Color.red;
colors[1]=Color.green;
colors[2]=Color.blue;
var mipCount=Mathf.Min(3, texture.mipmapCount);
//修改每一個Mip等級
for(var mip=0; mip<mipCount; ++mip){
var cols=texture.GetPixels(mip);
for(var i=0; i<cols.Length; ++i){
cols[i]=ColorLerp(cols[i], colors[mip], 0.33);
}
texture.SetPixel(cols, mip);
}
//實際應用SetPixels,不從新計算mip等級
texture.Apply(false);
}
◆ function SetPixels(x: int, y: int, blockWidth: int, blochHeight: int, Colors: Color[], 
miplevel: int): void
描述:設置一塊像素顏色。
這個函數是上面SetPixels函數的擴展;它不會修改整個mip等級而只是修改開始於x,y
點blockWidth乘blockHeight的區域。該colors數組必須是blockWidth*blockHeight大小,並
且可修改的塊比例適應適應的Mip等級。
繼承的成員
繼承的變量
width 紋理的像素寬度(只讀)
height 紋理像素高度(只讀)
filterMode 紋理的過濾模式
anisoLevel 紋理的各向異性過濾等級
wrapMode 紋理的包裹模式(Repeat或Clamp)
mipMapBias 紋理的mipMap便宜。
name 對象的名稱
hideFlages 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,緩存或資源。
DestroyImmediate 當即銷燬物體obj,強烈建議使用Destroy代替。
FindObjectsOfType 返回全部類型爲type的激活物體。
FindObjectsOfType 返回第一個類型爲type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較連個物體是否不相同。
DomDestroyOnLoad 卸載場景時確保物體target不被自動銷燬。
Particle
結構
參見:ParticleEmitter,Particles documentation.
變量
◆ var color: Color
描述:粒子的顏色。
顏色的Alpha通道用來淡出粒子。
參見:Particles documentation.
◆ var energy: float
描述:粒子的能量。
這是粒子生存的時間。當能量低於零時粒子將被銷燬。
能量也被用於UV動畫。
若是energy等於ParticleEmitter.maxEnergy第一個瓦片將被使用。
若是energy等於0最後一個瓦片將被使用。
參見:Particles documentation.
◆ var position: Vector3
描述:粒子的位置。
參見:Particles documentation.
◆ var size: float
描述:粒子的大小。
在世界空間中粒子的尺寸,以來計。
參見:Particles documentation.
◆ var velocity: Vector3
描述:粒子的速度。
若是有一個particel animator它將根據velocity移動粒子. 若是Stretch Particles被設置爲
ParticleRenderMode.Stretch,這個速度也被particle render使用。
參見:Particles documentation.
Path

類方法
◆ static function Combine(path1: string, path2: string): string
描述:
◆ static function GetDirectoryName(path: string): string
描述:
◆ static function GetExtension(path: string): string
描述:
◆ static function GetFileName(path: string): string
描述:
◆ static function GetFileNameWithoutExtension(path: string): string
描述:
Physics

全局屋裏屬性和輔助方法。
類變量
◆  static var bounceThreshold: float
描述:兩個碰撞物體的相對速度對於這個值時將不會反彈(默認爲2)。必須爲正
這個值能夠在Edit->Project Settings->Physics的檢視面板中改變而不是經過腳本。
◆  static var gravity: Vector3
描述:應用到場景因此剛體的重力。
重力能夠經過在單體剛體上使用useGravity屬性關閉。
Physics.gravity=Vector3(0,-1,0,0);
◆  static var maxAngularVelocity: float
描述:容許用於任何剛體的缺省最大角速度(默認爲7)。必須爲正
剛體的角速度最大爲maxAngularVelocity以免高速旋轉物體的數值不穩定性。由於
這也許會阻止企圖快速旋轉的物體,例如車輪,你能夠使用Rigidbody.maxAngularVelocity
逐剛體重載該值。
這個值能夠在Edit->Project Settings->Physics的檢視面板中改變而不是經過腳本。
Physics.maxAngularVelocity=10;
◆  static var minPenetrationForPenalty: float
描述:最小的接觸滲透值,以便應用一個罰力(默認爲0.05)必須爲正
這個值能夠在Edit->Project Settings->Physics的檢視面板中改變而不是經過腳本。
Physics.minPenetrationForPenalty=0.1;
◆  static var sleepAngularVelocity: float
描述:缺省的角速度。低於該值的物體將開始休眠(默認爲0.14)。必須爲正
參考Rigidbody Sleeping獲取更多信息。這個值能夠使用Rigidbody.sleepAngularVelocity
來逐剛體重載。
這個值能夠在Edit->Project Settings->Physics的檢視面板中改變而不是經過腳本。
Physics.sleepAngularVelocity=0.1;
◆ static var sleepVelocity: float
描述:缺省的線性速度,低於改值的物體將開始休眠(默認爲0.15)。必須爲正。
參考Rigidbody Sleeping獲取更多信息。則會更值能夠使用Rigidbody.sleepVelocity來逐
剛體重載。
這個值能夠在Edit->Project Setting->Physics的檢視面板中改變而不是經過腳本
Physics.sleepVelocity=0.1;
◆ static var solverIterationCount: int
描述:容許用於任何剛體的缺省迭代數(默認爲7)。必須爲正。
solverIterationCount聚頂關節和接觸點如何精確地計算。若是出現連接的物體震盪和行
爲怪異,爲solver Iteration Count設置一個較高的值將改善他們的穩定性(可是比較慢)。通
常值7能夠在幾乎全部的狀況下工做的很好。
這個值能夠在Edit->Project Settings->Physics的檢視面板中改變而不是經過腳本.
Physics.solverIterationCount=10;
類方法
◆ static function CheckCapsule(start: Vector3, end: Vector3, radius: float, layermask: int=
kDefaultRaycastLayers): bool
描述:若是有任何碰撞器接觸到由世界座標中的start和end構成的軸並具備radius半
徑的膠囊時返回真。
◆ static function CheckSphere(position: Vector3, radius: float, layermask: int=
kDefaultRaycastLayers): bool
描述:若是有任何碰撞器接觸到由世界座標中的position和radius定義的球體時返回
真。
◆ static function IgnoreCollision(collider1: collider, collider2: collider, ignore: bool=
true): void
描述:使碰撞檢測系統忽略全部collider1和collider2之間的任何碰撞。
這是最有用的,如投射物不與發射他們的物體碰撞。
IgnoreCollision有一些限制:1)它不是持久的. 這個覺得着當保存場景時,忽略碰撞
狀態將不會存儲在編輯器重。2)你只能將忽略碰撞應用到激活物體的碰撞器上. 當不激活
碰撞器或附加的剛體時,IgnoreCollision將丟失而且你必須再次調用Physics.IgnoreCollision.
//實例化一個子彈並使它忽略與這個物體的碰撞
var bulletPrefab: Transform;
function Start()
{
var bullet=Instantiate(bulletPrefab);
Physics.IgnoreCollision(bullet.collider, collider);
}
◆ static function Linecase(start: Vector3, end: Vector3, layerMask: int=
kDefaultRaycastLayers): bool
描述:若是有任何碰撞器與從start開始到end的線段相交時返回真.
var target: Transform;
function Update(){
if(!Physics.Linecast(transform.position, target.position}){
//作一些事情
}
}
當投射射線時,Layer mask被用來選擇性的忽略碰撞器.
◆ static function Linecase(start: Vector3, end: Vector3, out hitInfo: RaycastHit, layerMask: 
int=kDefaultRaycastLayers): bool
描述:若是有任何碰撞器與從start開始到end的線段相交時返回真.
若是返回真,hitInfo將包含更多關於碰撞器被碰到什麼地方的信息(參考:RaycastHit).
當投射射線時,Layer mask被用來選擇性的忽略碰撞器.
◆ static function OverlapSphere(position: Vector3, radius: float, layerMask: int=
kAllLayers): Collider[]
描述:返回觸碰到的或在球體內的全部碰撞器的列表.
注意:當前這個值檢查碰撞器的包圍體耳不是實際的碰撞器。
◆ static function Raycast(origin: Vector3, direction: Vector3, distance: float=Mathf.Infinity,
layerMask: int=kDefaultRaycastLayers): bool
參數
origin 世界座標中射線的開始點。
direction 射線的方向。
distance 射線的長度。
layerMask 當投射射線時,layer mask被用來選擇性的忽略碰撞器.
返回:布爾值-當射線碰到任何碰撞器時爲真,不然爲假.
描述:投射一個射線與場景中的全部碰撞器相交。
function Update(){
var hit: RaycastHit;
var fwd=transform.TransformDirection(Vector3.forward);
if(Physics.Raycast(transform.position, fwd, 10))
{
pring("There is something in front of the object!");
}
}
◆ static function Raycast(origin: Vector3, direction: Vector3, out hitInfo: RaycastHit,
distance: float=Mathf.Infinity, layerMask: int=kDefaultRaycastLayers): bool
參數
origin 世界座標中射線的開始點。
direction 射線的方向。
distance 射線的長度。
hitInfo 若是返回真,hitInfo將包含更多關於碰撞器被碰到什麼地方的信息(參
考: RaycaseHit).
layerMask 當投射射線時,layer mask被用來選擇性的忽略碰撞器.
返回:布爾值-當射線碰到任何碰撞器時爲真,不然爲假.
描述:投射一個射線並碰撞場景中的全部碰撞器閉並返回碰撞的細節。
function Update(){
var hit: RaycastHit;
if(Physics.Raycast(transform.position, -Vector3 up, hit)){
distanceToGround=hit.distance;
}
}
//向上投射100米
function Update()
{
var hit: RaycastHit;
if(Physics.Raycast(transform.position, -Vector3 up, hit, 100.0)){
distanceToGround=hit.distance;
}
}
◆ static function Raycast(ray: Ray, distance: float=Mathf.Infinity, layerMask: int=
kDefaultRaycastLayers): bool
參數
ray 射線的開始點和方向。
distance 射線的長度。
layerMask 當投射射線時,layer mask被用來選擇性的忽略碰撞器.
返回:布爾值-當射線碰到任何碰撞器時爲真,不然爲假.
描述:同上使用ray.origin和ray.direction而不是origin和direction.
var ray=Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, 100)){
print("Hit something");
}
◆ static function Raycast(ray: Ray, out hitInfo: RaycastHit, distance: float=Mathf.Infinity, 
layerMask: int=kDefaultRaycastLayers): bool
參數
ray 射線的開始點和方向。
distance 射線的長度。
hitInfo 若是返回真,hitInfo將包含更多關於碰撞器被碰到什麼地方的信息(參
考:RaycastHit)
layerMask 當投射射線時,layer mask被用來選擇性的忽略碰撞器.
返回:布爾值-當射線碰到任何碰撞器時爲真,不然爲假.
描述:同上使用ray.origin和ray.direction而不是origin和direction.
var ray=Camera.main.ScreenPointToRay(Input.mousePosition);
var hit: RaycastHit;
if(Physics.Raycast(ray, hit, 100)) {
Debug.DrawLine(ray.origin, hit.point);
}
◆ static function RaycastAll(ray: Ray, distance: float=Mathf.Infinity, layerMask: int=
kDefaultRaycastLayers): RaycastHit[]
◆ static function RaycastAll(origin: Vector3, direction: Vector3, distance: float=
Mathf.Infinity, layerMask: int=kDefaultRaycastLayers): RaycastHit[]
描述:投射一個穿過場景射線並返回全部的碰撞的東西。
function Update(){
var hit: RaycastHit[];
hits=Physics.RaycastAll(transform.position,transform.forward, 100.0);
//改變全部碰到的碰撞器的材質
//使用一個透明Shader
for(var i=0,i<hits.length,i++) {
var hit: RaycastHit=hits[i];
var renderer=hit collider.renderer;
if(renderer)
{
renderer.material.shader=Shader.Find("Transparent/Diffuse")
renderer.material.color.a=0.3;
}
}
}
Ping

變量
◆ var ip: string
描述:ping的IP目標。
◆ var isDone: bool
描述:ping函數已經完成?
◆ var time: int
描述:在isDone返回真厚,這個屬性包含ping的時間結果。
構造函數
◆ static function Ping(address: string): Ping
描述:對提供的目標IP地址執行ping操做。
這個不執行主機名的DNS插值,因此它只接受的IP地址。
Plane
結構
表示一個平面。
平面式由一個法向量和原點到平面的距離定義的。
變量
◆ var distance: float
描述:從原點到平面的距離
構造函數
◆ staic function Plane(inNormal: Vector3, inPoint: Vector3): Plane
描述:建立一個平面
平面具備法線inNormal並經過inPoint點,inNormal不須要被規範化
◆ staic function Plane(inNormal: Vector3,d: float): Plane
描述:建立一個平面
平面具備法線inNormal和距離d,inNormal不須要被規範化
◆ staic function Plane(a: Vector3, b: Vector3, e: Vector3): Plane
描述:建立一個平面
屏幕經過給定的三個點
函數
◆ function GetDistanceToPoint(inPt: Vector3): float
描述:從平面到點的距離
◆ function GetSide(inPt: Vector3): bool
描述:一個點是否位於平面的正側
◆ function Raycast(rayt: Ray, out enter: float): bool
描述:一個射線與平面相交
這個函數設置enter爲沿着射線的距離,這個距離是它與平面相交的位置。若是這個射
線與平面平行,函數返回false並設置enter爲零。
◆ function SameSide(inPt0: Vector3, inPt1: Vector3): bool
描述:兩個點是否在平面的同側
PlayerPrefsException
類,繼承自Exception
這個異常時由PlayerPrefs類在web模式時拋出的,表示偏好文件超出了分配的存儲空
間.
PlayerPrefs

在遊戲會話中保持並訪問玩家偏好設置。
在Mac OS X上PlayerPrefs存儲在-/Library/PlayerPrefs文件夾,名文unity/[company
name]\[product name].plist,這裏company和product是在Project Setting中設置的,相同
的plist用於在編輯器中運行的工程和獨立模式.
在Windows獨立模式下,PlayerPrefs被存儲在註冊表的HKCU Software[company
name]\[product name]鍵下,這裏company和product是在Project Setting中設置的.
在Web模式,PlayerPrefs存儲在Mac OS X的二進制文件
-/Library/Preferences/Unity/WebPlayerPrefs中和Windows的
%APPDATA%\Unity\WebPlayerPrefs中,一個偏好設置文件對應一個web播放器URL而且
文件大小被限制爲1兆。若是超出這個限制,SetInt,SetFloat和SetString將不會存儲值並相
處一個PlayerPrefsException.
類方法
◆ static function DeleteAll(): void
描述:從設置文件中移除全部鍵和值,謹慎的使用它們。
◆ static function DeleteKey(key: string): void
描述:從設置文件中移除key和它對應的值.
◆ static function GetFloat(key: string, defaultValue: float=OF): float
描述:返回設置文件中key對應的值,若是存在.
若是不存在,它將返回defaultValue.
print(PlayerPrefs.GetFlat("Player score"));
◆ static function GetInt(key: string, defaultValue: int): int
描述:返回設置文件中key對應的值,若是存在.
若是不存在,它將返回defaultValue.
print(PlayerPrefs.GetInt("Player score"));
◆ static function GetString(key: string, defaultValue: string=**): string
描述:返回設置文件中key對應的值,若是存在.
若是不存在,它將返回defaultValue.
print(PlayerPrefs.GetString("Player Name"));
◆ static function HasKey(key: string): bool
描述:在設置文件若是存在key則返回真.
◆ static function SetFloat(key: string, value: float): void
描述:設置由key肯定的值.
print(PlayerPrefs.SetFloat("Player Score", 10.0));
◆ static function SetInt(key: string, value: int): void
描述:設置由key肯定的值.
PlayerPrefs.SetInt("Player Score", 10);
◆ static function SetString(key: string, value: string): void
描述:設置由key肯定的值.
PlayerPrefs.Setstring("Player Name", "Foobar");
QualitySettings

用於Quality Settings的腳本接口.
有六個質量等級能夠選擇;每一個等級的細節都在工程的Quality Settings中設置,在運行
的時候,當前質量等級能夠使用這個類來改變。
類變量
◆ static var currentLevel: QualityLevel
描述:當前圖像質量等級。
QualitySettings.currentLevel=QualityLevel.Good;
參見:QualityLevel枚舉,Quality Settings.
◆ static var pixelLightCount: int
描述:影響一個物體的最大像素光源的質量。
若是有更多的光照亮該物體,最暗的一個將做爲頂點光源被渲染。
若是你想更好的控制而不是使用質量設置等級,從腳本中使用這個。
//爲每一個物體使用最多一個像素光
QualitySettings.pixelCount=1;
參見:Quality Settings.
◆ static var softVegetation: bool
描述:使用一個雙pass着色器,用於地形引擎中的植被。
若是啓用,植被將有平滑的邊緣,若是禁用全部植物將有硬邊可是渲染會快兩倍。
參見:Quality Settings.
類方法
◆ static function DecreaseLevel(): void
描述:減少當前質量等級。
QualitySettings.DecreaseLevel();
參見:IncreaseLevel, currentLevel, Quality Settings.
◆ static function IncreaseLevel(): void
描述:增長當前質量等級。
QualitySettings.IncreaseLevel();
參見:DecreaseLevel, currentLevel, Quality Settings.
Quaternion
結構
四元組用來表示旋轉
它們是緊湊的,不會出現萬向節鎖可以很容易被插值。Unity內如使用Quaternion表示
全部旋轉。
然而,它們基於複述的並不容易被理解。所以你沒有必要訪問或修改Quaternion組
件(x,y,z,w);最經常使用的應該是事業已有的旋轉(例如,來自Transform)並使用它們來構造
新的旋轉(例如,在兩個旋轉間平滑地插值).99%的時間你會使用四元組函數(其餘函數僅額
外使用)Quaternion.LookRotation, Quaternion.Angle, Quaternion.Euler, Quaternion.Slerp,
Quaternion.FromToRotation, Quaternion.identity
變量
◆ var eulerAngles: Vector3
描述:返回表示旋轉的歐拉角。
返回一個旋轉,這個旋轉繞着x軸旋轉euler.x度,繞着y軸旋轉euler.y度,繞着euler.z
軸旋轉euler.x度。
//建立一個旋轉
var rotation=Quaternion.identity;
//賦值一個旋轉爲繞着y軸30度;
rotation.eulerAngles=Vector3(0,30,0);
//打印燃着y軸的選擇
print(rotation.eulerAngles.y);
◆ var this[index: int]: float
描述:分別使用[0], [1],[2],[3]訪問x,y,z,w組件。
Quaternion p;
p[3]=0.5;//與p.w=0.5相同
◆ var w: float
描述:Quaternion的W組件,不要直接修改這個,除非你瞭解四元組內部
◆ var x: float
描述:Quaternion的X組件,不要直接修改這個,除非你瞭解四元組內部
◆ var y: float
描述:Quaternion的Y組件,不要直接修改這個,除非你瞭解四元組內部
◆ var z: float
描述:Quaternion的Z組件,不要直接修改這個,除非你瞭解四元組內部
構造函數
◆ static function Quaternion(x: float, y: float, z: float, w: float): Quaternion
描述:用給定的x,y,z,w組件構造新的四元組。
函數
◆ function SetFromToRotation(fromDirection: Vector3, toDirection: Vector3): void
描述:建立一個從fromDirection到toDirection的旋轉。
◆ function SetLookRotation(view: Vector3, up: Vector3=Vector3.up): void
描述:建立一個旋轉,沿着forward看而且頭沿着upwards向上
若是前向爲零將記錄一個錯誤。
◆ function ToAngleAxis(out angle: float, out axis: Vector3): void
描述:轉化一個旋轉爲角度-軸表示。
//提取角度-來自變換選擇的軸旋轉
var angle=0.0;
var axis=Vector3.zero;
transform.rotation.ToAngleAxis(angle.axis);
◆ function ToString(): string
描述:返回格式化好的這個四元組的字符串。
print(Quaternion.identity):
類變量
◆ static var identity: Quaternion
描述:返回單位旋轉(只讀). 這個四元組對應與"無旋轉":這個物體徹底與世界或父的
軸對齊。
transform.rotation=Quaternion.identity;
類方法
◆ static function Angles(a: Quaternion, b: Quaternion): float
描述:返回兩個旋轉a和b之間的角度
//計算這個變換和
//target之間的角度.
var target: Transform;
function Update()
var angle=Quaternion.Angles(transform.rotation,target.rotation);
◆ static function AnglesAxis(angle: float, axis: Vector3): Quaternion
描述:建立一個旋轉繞着axis軸旋轉angle度。
//設置旋轉繞着y軸旋轉30度
transform.rotation=Quaternion.AnglesAxis(30, Vector3.up);
◆ static function Dot(a: Quaternion, b: Quaternion): float
描述:兩個旋轉之間的點乘。
print(Quaternion.Dot(transform.rotation, Quaternion.identity));
◆ static function Euler(x: float, y: float, z: float): Quaternion
描述:返回一個旋轉,這個旋轉繞着x軸旋轉x度,繞着y軸旋轉y度,繞着z軸旋轉
z度。
//繞着y軸旋轉30度
var rotation=Quaternion.Euler(0,30,0);
◆ static function Euler(euler: Vector3): Quaternion
描述:返回一個旋轉,這個旋轉繞着x軸旋轉x度,繞着y軸旋轉y度,繞着z軸旋轉
z度。
//繞着y軸旋轉30度
var rotation=Quaternion.Euler(Vector3(0,30,0));
◆ static function FromToRotation(fromDirection: Vector3, toDirection: Vector3):
Quaternion
描述:建立一個從fromDirection到toDirection的旋轉.
一般你使用這個來旋轉一個變換,這樣它的一個周,例如y軸-遵循世界空間的
toDirection目標方向。
//設置旋轉這樣變換的y軸沿着表面的法線
transform rotation=Quaternion.FromToRotation(Vector3.up, surfaceNormal);
◆ static function Inverse(rotation: Quaternion): Quaternion)
描述:返回rotation的逆.
//設置這個變換爲具備target的方向旋轉
var target: Transform;
function Update()
{
transform.rotation=Quaternion.Inverse(target.rotation);
}
◆ static function Lerp(a: Quaternion, b: Quaternion, t: float): Quaternion
描述:從from到to基於t插值並規範化結果.
這個比Slerp快可是若是旋轉較遠看起來就較差。
//在from到to之間
//插值旋轉.
//(from和to不能
//與附加腳本的物體相同)
var from: Transform;
var toL Transform;
var speed=0.1;
function Update()
{
transform.rotation=Quaternion.Lerp(from.rotation, to.rotation, Time.time*speed);
}
◆ static function LookRotation(forward: Vector3, upwards: Vector3=Vector3.up):
Quaternion
描述:建立一個旋轉,沿着forward看而且沿着upwards向上
 
若是向前爲零將記錄一個錯誤。
//大多數時候你能夠使用。
//transform.LookAt來代替
var target: Transform
function Update()
{
var relativePos=target.position-transform.position;
var rotation=Quaternion.LookRotation(relativePos);
transform.rotation=rotation;
}
◆ static operator!=(lhs: Quaternion, rhs: Quaternion): bool
描述:兩個四元組不對等?
這個函數測試兩個四元組的點乘是否小於1.0
注意,由於四元組最多能夠表示兩個全旋轉(720度),這個比較能夠返回true即便產
生旋轉看起來一塊兒。
◆ static operator*(lhs: Quaternion, rhs: Quaternion): Quaternion
描述:組合lhs和rhs旋轉.
首先用lhs旋轉一個點而後用rhs繼續旋轉,與使用組合旋轉相同。注意旋轉不可交換:
lhs*rhs不等於rhs*lhs.
//應用
//extraRotation噹噹前旋轉
var extraRotation: Transform;
transform.rotation*=extraRotation.rotation;
◆ static operator*(rotation: Quaternion, point: Vector3): Vector3
描述:用rotation旋轉點point
//沿着relativeDirection移動物體
//一般你應該使用transform.Move
var relativeDirection=Vector3.forward;
function Update() {
var absoluteDirection=transform.rotation*relativeDirection;
transform.position+=absoluteDirection*Time.deltaTime;
}
◆ static operator==(lhs: Quaternion, rhs: Quaternion): bool
描述:兩個四元組相等?
這個函數測試兩個四元組的點乘是否接近1.0
注意,由於四元組能夠表示最大兩個全旋轉(720度),這個比較能夠返回false即便產
生旋轉看起來一塊兒。
◆ static function Slerp(from: Quaternion, to: Quaternion, t: float): Quaternion
描述:從from到to基於t的球形插值.
//在from和to之間
//插值旋轉.
//(from和to不能
//與附加腳本的物體相同)
var from: Transform;
var to: Transform;
var speed=0.1;
function Update() {
transform.rotation= Quaternion.Slerp(from.rotation, to.rotation, Time.time*speed);
}
Random

用於生成隨機數據的類。
類變量
◆ static var insideUnitCircle: Vector2
描述:返回半徑爲1的圓內部的一個隨機點(只讀)。
//設置這個位置爲一個半徑爲
//5, 中心在零點的圓環內部的一個點.
var newPosition: Vector2=Random.insideUnitCircle*5;
transform.position.x=newPosition.x;
transform.position.y=newPosition.y;
◆ static var insideUnitSphere: Vector3
描述:返回半徑爲1的球體內部的一個隨機點(只讀)。
//設置這個位置爲一個半徑爲5
//中心在零點的球體內部的一個點.
transform.position=Random.insideUnitSphere*5;
◆ static var onUnitSphere: Vector3
描述:返回半徑爲1的球體表面上的一個隨機點(只讀)。
//在一個隨機的方向上設置剛體速度爲10.
rigidbody.velocity=Random.onUnitSphere*10;
◆ static var rotation: Quaternion
描述:返回s隨機旋轉(只讀)。
//在世界座標原點用一個隨機旋轉實例化一個預設
var prefab: GameObject;
Instantiate(prefab, Vector3.zero., Random.rotation);
◆ static var seed: int
描述:設置隨機種子生成器。
◆ static var value: float
描述:返回一個0.0[包含]和1.0[包含]之間的隨機數(只讀).
0.0和1.0會被這個函數返回。
//打印0到1之間的值
print(Random.value);
類方法
◆ static function Range(min: float, max: float): float
描述:返回一個隨機的浮點數,在min[包含]和max[包含]之間(只讀).
//在x-z平面上的-10和10之間的某個位置實例化預設
var prefab: GameObject;
function Start()
{
var position=Vector3(Random Range(-10, 10), 0, Random Range(-10, 10));
Instantiate(prefab.position, Quaternion.identity);
◆ static function Range(min: int, max: int): int
描述:返回一個隨機的整數,在min[包含]和max[包含]之間(只讀).
若是max等於min,min將被返回,返回的值不會是max除非min等於max
//從關卡到列表中加載一個隨機的關卡
Application.LoadLevel(Random Range(0, Application.levelCount));
Ray
結果
表示射線。
射線時一個無窮線段,開始於origin並沿着direction方向。
變量
◆ var direction: Vector3
描述:射線的方向。
方向老是一個規範化的向量。若是你賦值一個非單位化長度,它將被規範化。
◆ var origin: Vector3
描述:射線的起點。
構造函數
◆ static function Ray(origin: Vector3, direction: Vector3): Ray
描述:建立一個射線從origin開始沿着direction方向。
//從變換位置開始沿着變換的z軸建立一個射線
var ray=new Ray(transform.position, transform.forward);
函數
◆ static GetPoint(distance: float): Vector3
描述:返回沿着射線距離爲distance單位的點。
var r: ray;
pting(r.GetPoint(10));//沿着這個射線10個單位的點
◆ function ToString(): string
描述:返回格式化好的這個射線的字符串
RaycastHit
結構
用來從一個raycase獲取信息的結構。
參見:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
變量
◆ var barycentricCoordinate: Vector3
描述:所碰到的三角形的重心座標。
這容許你沿着3個軸插值任何頂點數據。
//附加這個腳本到相機而後它將
//繪製一個從法線指出的調試直線
function Update(){
//若是碰到物體,繼續
var hit: RaycastHit;
if(!Physics.Raycst(Camera.main.ScreenPointToRay(Input.mousePosition), hit))
return;
//以防萬一,確保碰撞器也有一個渲染器
//材質和紋理
var meshCollider=hit.collider as MeshCollider;
if(meshCollider==null || meshCollider.sharedMesh=null)
return;
var mesh: Mesh=meshCollider.sharedMesh;
var normals=mesh.normals;
var triangles=mesh.triangles;
//取得所碰到三角形的本地法線
var n0=normals[triangles[hit.triangleIndex*3+0]];
var n1=normals[triangles[hit.triangleIndex*3+1]];
var n2=normals[triangles[hit.triangleIndex*3+1]];
//使用碰撞點的中心座標來插值
var baryCenter=hit.barycenterCoordinate;
//使用中心座標插值法線
var interpolatedNormal=n0*baryCenter.x+n1*baryCenter.y+n2*baryCenter.z;
//規範化插值法線
interpolatedNormal=interpolatedNormal.Normalized;
//Transform local space normals to world space
var hitTransform: Transform:=hit.collider.transform;
interpolatedNormal=hitTransform.TransformDirection(interpolatedNormal);
//用Debug.DrawLine顯示
Debug.DrawRay(hit.poing, interpolatedNormal);
◆ var collider: Collider
描述:被碰到的Collider.
若是沒有碰到任何東西該屬性爲null不然爲非null參見:Physics.Raycast,
Physics.Linecast, Physics.RaycastAll.
◆ var distance: float
描述:從射線的原點到碰撞點的距離。

參見:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
◆ var normal: Vector3
描述:射線所碰到的表面的法線。
參見:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
◆ var point: Vector3
描述:在世界空間中,射線碰到碰撞器的碰撞點。
參見:Physics.Raycast, Physics.Linecast.
◆ var rigidbody: Rigidbody
描述:碰到的碰撞器的Rigidbody. 若是該碰撞器沒有附加剛體那麼它爲null。
參見:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
◆ var textureCoord: Vector2
描述:碰撞點的UV紋理座標。
這個可用於3D紋理繪製或繪製彈痕。若是碰撞器時非網格碰撞器,零Vector2將被返
回.
//附加這個腳本到相機,當用戶點擊時
//它將在3D中繪製黑色的像素. 確保你想繪製的網格附加有
//一個網格碰撞器.
function Update()
(
//只有當咱們按下鼠標
if(!input.GetMouseButton(0))
return;
//只有碰到某些東西,繼續
var hit: RaycastHit;
if(!Physics.Raycast(camera.ScreenPointToRay(Input.mousePosition), hit))
return;
/以防萬一,還要確保碰撞器也有一個渲染器
//材質和紋理.咱們也應該忽略幾何體碰撞器.
var renderer: Renderer=hit.collider.renderer;
var meshCollider=hit.collider as MeshCollider;
if(renderer==null || renderer.sharedMaterial==null || renderer.sharedMaterial.mainTexture==null || 
meshCollider==null)
return;
//如今在咱們碰到的物體上繪製一個像素
var tex: Texture2D=renderer.material.mainTexture;
var pixelUV=hit.textureCoord;
pixelUV.x*=tex.width;
pixelUV.y*=tex.height;
tex.SetPixel(pixelUV.x, pixelUV.y, Color.black);
tex.Apply();
}
參見:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
◆ var textureCoord2: Vector2
描述:碰撞點的第二個UV紋理座標。
這個可用於3D紋理繪製或繪製彈痕。若是碰撞器時非網格碰撞器,零Vector2.zero將被
返回.若是網格沒有包含第二個uv集,主uv集將被返回。
//附加這個腳本到相機,當用戶點擊時
//它將在3D中繪製黑色的像素. 確保你想繪製的網格附加有
//一個網格碰撞器.
function Update()
(
//只有當咱們按下鼠標
if(!input.GetMouseButton(0))
return;
//只有碰到某些東西,繼續
var hit: RaycastHit;
if(!Physics.Raycast(camera.ScreenPointToRay(Input.mousePosition), hit))
return;
/以防萬一,還要確保碰撞器也有一個渲染器
//材質和紋理.咱們也應該忽略幾何體碰撞器.
var renderer: Renderer=hit.collider.renderer;
var meshCollider=hit.collider as MeshCollider;
if(renderer==null || renderer.sharedMaterial==null || renderer.sharedMaterial.mainTexture==null || 
meshCollider==null)
return;
//如今在咱們碰到的物體上繪製一個像素
var tex: Texture2D=renderer.material.mainTexture;
var pixelUV=hit.textureCoord2;
pixelUV.x*=tex.width;
pixelUV.y*=tex.height;
tex.SetPixel(pixelUV.x, pixelUV.y, Color.black);
tex.Apply();
}
參見:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
◆ var triangleIndex: int
描述:碰到的三角形的索引.
若是被擊中的碰撞器時一個MeshCollider三角形索引纔可用.
//附加這個腳本到相機而後它將
//繪製一個調試直線三角形
//在咱們放置鼠標的三角形上
function Update()
(
//若是咱們擊中了某物,繼續
var hit: RaycastHit;
if(!Physics.Raycast(camera.ScreenPointToRay(Input.mousePosition), hit))
return;
/以防萬一,確保碰撞器也有一個渲染器
//材質和紋理
var meshCollider=hit.collider as MeshCollider;
if(meshCollider==null ||meshCollider.sharedMesh==null)
return;
var mesh: Mesh=meshCollider.sharedMesh;
var vertices=mesh.vertices;
var triangles=mesh.triangles;
//取回碰到的本地座標點
var p0=vertices[triangles[hit.triangleIndex*3+0]];
var p1=vertices[triangles[hit.triangleIndex*3+1]];
var p2=vertices[triangles[hit.triangleIndex*3+1]];
//交換本地空間點到世界空間
var hitTransform: transform=hit.collider.transform;
p0=hitTransform.TransformPoint(p0);
p1=hitTransform.TransformPoint(p1);
p2=hitTransform.TransformPoint(p2);
//用Debug.DrawLine顯示
Debug.DrawLine(p0, p1);
Debug.DrawLine(p1, p2);
Debug.DrawLine(p2, p0);
}
參見:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
RectOffset

用於矩形,邊界等的偏移。
被GUIStyle用在全部地反。
變量
◆ var bottom: int
描述:底部邊緣的尺寸。
◆ var horizontal: int
描述:left+right的快捷方式(只讀)。
◆ var left: int
描述:左邊邊緣的尺寸。
◆ var right: int
描述:右邊邊緣的尺寸。
◆ var top: int
描述:頂部邊緣的尺寸。
◆ var vertical: int
描述:top+bottom的快捷方式(只讀)
函數
◆ function Add(rect: Rect): Rect
描述:向一個rect中添加邊界偏移。
◆ function Remove(rect: Rect): Rect
描述:從一個rect中移除邊界偏移。
Rect
結構
由x,y位置和width,height定義的2D矩陣
Rect結構主要用於2D操做;UnityGUI系統普遍的使用它,也可用來在屏幕上定位相機
參見:GUIScripting.Guide, Camera.rect, Camera.pixelRect.
變量
◆ var height: float
描述:矩形的高。 
var rect=Rect(0,0,10,10);
print(rect.height);
rect.height=20;
◆ var width: float
描述:矩形的寬。 
var rect=Rect(0,0,10,10);
print(rect.width);
rect.width=20;
◆ var x: float
描述:矩形的左側座標。 
◆ var xMax: float
描述:矩形的右側座標
改變這個值將保持矩形的左邊(這樣寬度也將改變)
◆ var xMin: float
描述:矩形的左側座標
改變這個值將保持矩形的右邊(這樣寬度也將改變)
◆ var y: float
描述:矩形的頂部座標。 
var rect=Rect(10,10,100,100);
print(rect.y);
rect.x=20;
◆ var yMax: float
描述:矩形的底部座標。 
改變這個將保持矩形的頂邊(這樣高度也將改變)
◆ var yMin: float
描述:矩形的頂部座標。 
改變這個將保持矩形的底邊(這樣高度也將改變)
構造函數
◆ static function Rect(left: float, top: float, width: float, height: float): Rect
描述:建立一個新的矩形
var rect=Rect(0,0,10,10);
函數
◆ function Contains(point: Vector2): bool
◆ function Contains(point: Vector3): bool
描述:若是point的x和y位於矩陣的內部
//當座標???
function Update()
{
var rect=Rect(0,0,150,150);
if(rect Contains(Input.???Position))
print("Inside")
}
◆ function ToString(): string
描述:返回格式化好的Rect字符串、
var rect=Rect(0,0,10,10);
print(rect);
類方法
◆ static function MinMaxRect(left: float, top: float, right: float, bottom: float): Rect
描述:根據min/max座標值建立一個矩形。
◆ static operator!=(lhs: Rect, rhs: Rect): bool
描述:若是矩形不相同返回真。
◆ static operator==(lhs: Rect, rhs: Rect): bool
描述:若是矩形相同返回真。
RenderSettings

Render Settings包含用於場景中可視元素範圍的缺省值,如霧和環境光。
參見:Render Settings manager
類變量
◆ static var ambientLight: Color
變量
◆ var height : int
描述: 解析度的像素高度。
◆ var width : int
描述: 解析度的像素寬度。
◆ var refreshRate : int
描述: 解析度的垂直刷新率 Hz。
Resources

Resources類容許你按照它們的路徑名找到並加載物體。
全部位於Assets文件夾下名「Resources」的文件夾中的資源,均可以Resources.Load
函數訪問,
在Unity中你一般不須要使用路徑名來訪問資源,相反你能夠經過聲明一個成員變量
來公開到一個資源的應用,而後在檢視面板中給它賦值。使用這個技巧的時候Unity能夠在構建的時候自動計算哪一個資源被使用。這從根本上最大限度地減小了實際用於遊戲的資源的尺寸。當你放置資源在「Resources」文件夾中時這個不會這麼作,所以全部在「Resources」文件夾中的資源都將被包含在遊戲中。
另外一個使用路徑名的缺點是,缺少可重用性,由於腳本對於使用的資源具備硬編碼要求。另外一方面使用公開在檢視面板中的引用,是自文檔化的,對於使用你腳本的用戶來講也是顯而易見的。
然而,有些狀況下按照名稱而不是在檢視面板中取回一個資源是更方便的。尤爲是當在檢視面板中賦值引用是不方便的時候。例如你或許想從腳本建立一個遊戲物體,爲程序生成的網格賦值一個紋理。
var go = new GameObject.CreatePrimitive(PrimitiveType.Plane);
go.renderer.marerial.mainTexture = Resources.Load("glass");
類方法
◆ static function Load(path : string) : Object
描述: 加載儲存在Resources文件夾中的path處的資源。
若是在path處發現這個資源返回它,不然返回null。Path相對於Resources文件夾,擴展名必須被忽略。Resources文件夾能夠在Assets文件夾中的任何位置。
//附加一個名爲"Assets/Resources/glass"的紋理到Plane.
function Start() {
  var go = new GameObject.CreatePrimitive(PrimitiveType.Plane);
  go.renderer.material.mainTexture = Resources.Load("glass");
}
//實例化路徑"Assets/Resources/enemy"處的一個預設
function Start () {
var instance : GameObject = Instantiate(Resources.Load("enemy"));
}
◆ static function Load ( path : String, type : Type) : Object
描述: 加載儲存在Resources文件夾中path處的資源。
若是在path處發現這個資源就返回它,不然返回null。只有type類型的物體將被返回. Path相對於Resources文件夾,擴展名必須被忽略。Resouces文件夾能夠在Assets文件夾中的任何位置。
//附加一個名爲」glass」的紋理到Plane
function Start () {
 var go = new GameObject.CreatePrimitive(PrimitiveType.Cube);
 go.renderer.material.main.Texture = Resources.Load(「glass」, Texture2D);
}
//實例化名爲」Resources/enemy」的一個預設
function Start () {
 var instance : GameObject = Instantiate(Resources.Load(「enemy」, GameObject);
}
◆ static function LoadAll (path : String, type : Type) : Object[]
描述: 加載Resources文件夾中的path文件夾或者文件中的全部資源。
若是path是一個文件夾,文件中的全部資源都將被返回。若是path爲一個文件,只有這個資源將被返回。只有type類型的物體將被返回。Path相對於Resources文件夾。Resources文件夾能夠在Assets文件夾中的任何位置。
 //加載」Resources/Texture」文件夾中全部資源
 //而後從列表中選擇隨機的一個
 function Start () {
  var go = new GameObject.CreatePrimitive(PrimitiveType.Cube);
  var textures : Object[] = Resources.LoadAll(「Textures」, Texture2D);
  var texture : Texture2D = textures[Random.Range(0, textures.Length)];
  go.renderer.material.mainTexture = texture;
 }
◆ static function LoadAll (path : String) : Object[]
描述: 加載Resources文件夾中的path文件夾或者文件中的全部資源。
若是path是一個文件夾,文件中的全部資源都將被返回。若是path爲一個文件,只有這個資源將被返回。只有type類型的物體將被返回。Path相對於Resources文件夾。Resources文件夾能夠在Assets文件夾中的任何位置。
 //加載」Resources/Texture」文件夾中全部資源
 //而後從列表中選擇隨機的一個
 function Start () {
  var go = new GameObject.CreatePrimitive(PrimitiveType.Cube);
  var textures : Object[] = Resources.LoadAll(「Textures」);
  var texture : Texture2D = textures[Random.Range(0, textures.Length)];
  go.renderer.material.mainTexture = texture;
 }
◆ static function LoadAssetAtPath (assetPath : String, type : Type) : Object
描述: 返回資源路徑上的一個資源(只在編輯器中)。
在獨立版或者web版中這個函數老是返回null。這個能夠用來快速訪問一個在編輯器中使用的資源。
var prefab : GameObject;
function Start () { 
prefab = Resources.LoadAssetAtPath(「Assets/Artwork/mymodel.fbx」, GameObject); 
}
Screen
 類
 訪問顯示信息。
 屏幕類用來獲取支持的解析度列表,切換當前分辨率,隱藏或顯示系統的鼠標指針。
類變量
◆ static var currentResolution : Resolution
描述: 當前屏幕的解析度。
若是播放器運行在窗口模式,這將返回當前左面的解析度。
print(Screen.currentResolution);
◆ static var fullScreen : bool
描述: 遊戲是否運行在全屏模式下?
經過改變這個屬性來切換全屏模式。
//切換全屏
Screen.fullScreen = !Screen.fullScreen;
參見: SetResolution。
◆ static var height : int
描述: 屏幕窗口的當前像素高度(只讀)。
播放窗體的實際高度(在全屏模式下也是當前的分辨率高度)
◆ static var lockCursor : bool
描述: 光標是否被鎖定?
 光標將被自動隱藏、居中而且不會離開這個視點。
 在web播放器中光標只在用戶點擊內容而且用戶的鼠標沒有離開內容視圖的時候鎖定。用戶按下escape或切換到其餘應用程序時光標將被自動鎖定。當退出全屏模式時,光標鎖定也將丟失。經過檢查lockCursor狀態,你能夠查詢光標當前是否被鎖定。爲了提供一個好的用戶體驗,建議只在用戶按下按鈕的時候鎖定光標。你也應該光標是否解鎖,例如暫停遊戲或者打開遊戲菜單。在web播放器和編輯器中,當你按下escape時光標將自動被解鎖。在獨立播放模式下你有徹底的鼠標鎖定控制權,所以它不會自動釋放鼠標鎖定,除非你切換應用程序。
//當鼠標被鎖定時調用
function DidLockCursor () {
 Debug.Log(「Locking cursor」);
 //禁用按鈕
 guiTexture.enabled = false;
}
//當光標被解鎖時調用
//或被腳本調用Screen.lockCursor = false;
Function DidUnlockCursor () {
 Debug.Log(「Unlocking cursor」);
 //再次顯示按鈕
 guiTexture.enabled = true;
}
 
function OnMouseDown () {
 //鎖定光標
 Screen.lockCursor = true;
}
private var wasLocked = false;
function Update () {
 //在獨立模式下咱們須要提供本身的鍵來鎖定光標
 If(Input.GetKeyDown(「escape」)
  Screen.lockCursor = false;
 //咱們失去了鼠標鎖定?
 //例如由於用戶按下escape鍵或由於他切換到了其餘應用程序
//或者由於一些腳本設置Screen.lockCursor = false;
If(!Screen.lockCursor && wasLocked) {
 wasLocked = false;
 DidUnlockCursor();
}
//再次得到光標鎖定?
else if(Screen.lockCursor && wasLocked) {
 wasLocked = true;
 DidLockCursor();
}
}
◆ static var resolutions : Resolution[]
 描述: 該顯示器支持的全部全屏解析度(只讀)
 返回的解析度按照寬度排序,較低的解析度位於前面。
var resolutions : Resolutions[] = Screen.resolutions;
//打印解析度
for(var res in resolutions) {
 print(res.width + 「x」 + res.height);
}
//切換到支持的最低全屏解析度
Screen.SetResolution(resolutions[0].width, resolutions[0].height, true);
 參見: Resolution結構, SetResolution。
◆ static var showCursor : bool
 描述: 光標是否可見?
 徹底能夠實現一個自定義的光標而不是系統的。要作到這一點,你要隱藏系統的,而後跟蹤位置或移動並在須要的位置顯示你本身的圖片。
//隱藏光標
Screen.showCursor = false;
◆ static var width : int
描述: 屏幕窗口的當前像素寬度(只讀)。
播放窗體的實際寬度(在全屏模式下也是當前的分辨率寬度)
類方法
◆ static function SetResolution (width : int, height : int, fullscreen : bool, preferredRefreshRate : int) : void
 描述: 切換屏幕的解析度。
 Width x height解析度將被使用。若是沒有匹配的解析度支持,最近的一個將被使用。
 若是 preferredRefreshRate爲0 (默認),Unity將切換到顯示器支持的最高刷新率。
 若是preferredRefreshRate不是0,若是顯示器支持Unity將使用它,不然將選擇所支持的最高的一個。
 在web播放器中你只須要在用戶點擊內容以後切換分辨率。推薦的方法是隻在用戶點擊指定按鈕的時候切換分辨率。
 //切換成640 x 480 全屏模式
 Screen. SetResolution(640, 480, true);
//切換成640 x 480 全屏模式 60hz
 Screen. SetResolution(640, 480, true, 60);
//切換成800 x 600 窗口模式
 Screen. SetResolution(800, 600, false);
 參考: resolution屬性。
SoftJointLimit
 結構
 這限制是由CharacterJoint定義的。
變量
◆ var bouneyness : float
 描述: 當關節到達這個限定時,它能夠使其彈回。
 bouneyness決定彈回的限制,範圍{0, 1};

◆ var damper : float
 描述: 若是彈力大於0,限制被減緩。
 這是彈簧的z阻力,範圍{0, 無窮};

◆ var limit : float
 描述: 關節的位置/角度限制。

◆ var spring : float
 描述: 若是大於零,限制被減緩。彈簧將推回該關節。 {0, 無窮}
String
 類
表示一系列Unicode字符文本。
變量
◆ var Length : int
 描述: 獲取該實例中字符的數量。

◆ var String : static
 描述: 初始化一個新的實例化String類,它的值爲一個新的Unicode字符數組。數組開始字符的位置,和一個長度。表示一個空的字符串,這個域是隻讀的。
SystemInfo

類變量
◆ static var graphicsDeviceName : string
 描述: 顯示設備的名稱(只讀)。
 這個是用戶顯卡的名稱,由顯卡設備驅動報告。
//打印」ATi Raedon X1600 OpenGL Engine」在MacBook Pro OS X 10.4.8上
print(SystemInfo.graphicsDeviceName);
 參見: SystemInfo.graphicsDeviceVendor, SystemInfo.graphicsDeviceVersion.

◆ static var graphicsDeviceVendor : string
 描述: 顯示設備的生產廠商(只讀)。
 這個是用戶顯卡的生產廠商,由顯卡設備驅動報告。
//打印」ATi Technologies Inc.」 在MacBook Pro OS X 10.4.8上
print(SystemInfo.graphicsDeviceVendor);
 參見: SystemInfo.graphicsDeviceName, SystemInfo.graphicsDeviceVersion.
◆ static var graphicsDeviceVersion : string
 描述: 該顯示設備所支持的圖形API版本(只讀)。
 這個是用戶顯卡設備所支持的底層圖形API版本。
 若是是OpenGL API,返回字符串包含」OpenGL」而後是」major.minor」格式的版本號,而後在方括號中試完整的版本號。
 若是是Direct3D9 API,返回的字符串包含」Direct3D 9.0c」,而後再方括號中試驅動名稱和版本號。
//打印」OpenGL 2.0[2.0 ATi-1.4.40]」在MacBook Pro OS X 10.4.8下。
//打印」Direct3D 9.0c[atiumdag.dll 7.14 10.471]」在MacBook Pro/ Windows Vista下。
print(SystemInfo.graphicsDeviceVersion);
 參見: SystemInfo.graphicsDeviceName, SystemInfo.graphicsDeviceVendor.
◆ static var graphicsMemorySize : int
 描述: 顯存的大小(只讀)。
這個是以兆(MB)計算的顯存容量。
◆ static var supportsImageEffects : bool
 描述: 是否支持圖像效果?(只讀)
 若是顯卡支持後期處理特效則返回true。
 參見: Image Effects。
◆ static var supportsRenderTexture : bool
 描述: 是否支持渲染到紋理?(只讀)
 若是顯卡支持渲染到紋理則返回true。使用SupportsRenderTextureFormat來檢查支持的特定渲染紋理格式。
 參見: Render Texture assets,RenderTexture類。
◆ static var supportsShadows : bool
 描述: 是否支持內置陰影?(只讀)
 若是顯卡支持內置陰影則返回true。
 參見: Shadows doucumentation。
類方法
◆ static function SupportsRenderTextureFormat (format : RenderTextureFormat) : bool
 描述: 是否支持該渲染紋理格式?
 若是顯卡支持指定的RenderTextureFormat格式,返回true。
 參見: Render Texture assets,RenderTexture類。
Time
 類
 從Unity中獲取時間的接口。
類變量
◆ static var captureFramerate : int
 描述: 若是captureFramerate被設置爲大於0的值,時間將爲(1.0/ captureFramerate)每幀而不考慮實際時間。若是想用一個固定的幀率捕獲一個視頻時能夠使用這個。
 Time. captureFramerate = 25;
◆ static var deltaTime : float
 描述: 用於完成最後一幀的時間(只讀)。
 若是你加或減一個每幀改變的值,你應該將它與deltaTime相乘。當你乘以Time.deltaTime時,你實際表達:我想以10米/秒移動這個物體而不是10米/幀。
 在MonoBehaviour的FixedUpdate內部調用時,返回固定幀率增量時間。
function Update () {
  var translation = Time.deltaTime * 10;
 transform.Translate(0, 0, translation);
}
◆ static var fixedDeltaTime : float
 描述: 物理和其餘固定幀率更新(如MonoBehaviour的FixedUpdate)以這個間隔來執行。
 建議使用Time.deltaTime代替,由於若是在FixedUpdate函數或Update函數內部它將自動返回正確的增量時間。
 注意fixedDeltaTime間隔對應的遊戲時間會受到timeScale的影響。
◆ static var fixedTime : float
 描述: 最後一次FixedUpdate調用已經開始的時間(只讀)。這個是以秒計的遊戲開始的時間。
 固定時間以按期的間隔來更新(至關於fixedDeltaTime)直到到達了time屬性。
◆ static var frameCount : int
 描述: 已經傳遞的幀總數(只讀)。
//確保RecaloulateValue在每幀中只執行一次某些操做
 static private var lastRecaloulation = -1;
 static function RecaloulateValue () {
  if(lastRecaloulation == Time.frameCount)
  return;
 PerformSomeCalculations();
 }
◆ static var realTimeSinceStartup : float
 描述: 從遊戲開始的實時時間(只讀)。
 在大多數狀況下你應該使用Time.time。
 realTimeSinceStartup返回從開始到如今的時間,不會受到Time.timeScale的影響。當玩家暫停的時候realTimeSinceStartup也會增長(在後臺)。使用realTimeSinceStartup時頗有用的,當你想經過設置Time.timeScale爲0來暫停遊戲,但還在某些時候使用時間。
 注意realTimeSinceStartup返回的時間是來源於系統計時器,根據不一樣平臺和硬件,也許會在一些連貫的幀上報告相同的時間。若是經過不一樣的時間來區分不一樣的事情,須要考慮這個(時間的差異可能變爲零!)。
//打印從開始到如今的真實時間
 print(Time.realTimeSinceStartup);
//一個FPS計數器,在每一個updateInterval間隔處計算幀/秒,這樣顯示就不會隨意的改變。
var updateInterval = 0.5;
private var last Interval : double;  //最後間隔結束時間
private var frames = 0;//超過當前間隔幀
 private fps : float; //當前fps

 function Start () {
  lastInterval = Time. realTimeSinceStartup;
 frames = 0;
 }
 function OnGUI () {
//顯示兩位小數
 GUILayout.xxxx(「」 + fps.ToString(「F2」);
 }
function Update () {
  ++frames;
 var timeNow = Time.realtimeSinceStartup;
 if(timeNow > lastInterval + updateInterval) {
  fps = frames / (timeNow – lastInterval);
  frames = 0;
  lastInterval = timeNow;
 }
 }
◆ static var smoothDeltaTime : float
 描述: 一個平滑的Time.deltaTime(只讀)。 
◆ static var time : float
 描述: 該幀開始的時間(只讀)。從遊戲開始到如今的時間。
 在MonoBehaviour的FixedUpdate內部調用時,返回fixedTime屬性。
//若是 Fire1按鈕(默認爲Ctrl)被按下,每0.5秒實例化一個projectile。
 var projectile : GameObject;
 var fireRate = 0.5;
 private var nextFire = 0.0;
 function Update () {
  if(Input.GetButton(「Fire1」) && Time.time > nextFire) {
   nextFire = Time.time + fireRate;
  clone = Instantiate(projectile, transform.position, transform.rotation);
  }
 }
◆ static var timeScale : float
 描述: 傳遞時間的縮放,能夠用來減慢動做效果。
 當timeScale爲1.0的時候時間和真實時間同樣快;當timeScale爲0.5的時候時間爲真實時間的一半速度;當timeScale被設置爲0的時候那麼遊戲基本上處於暫停狀態,若是全部函數都是與幀率無關的。若是下降timeScale建議同時下降Time.fixedDeltaTime相同的量。當timeScale被設置爲0時FixedUpdate將不會被調用。
//當用戶按下Fire1按鈕時能夠在1和0.7之間切換時間。
 function Update () {
  if(Input.GetButton(「Fire1」)) {
  if(Time.timeScale == 1.0) {
Time.timeScale = 0.7;
  }
  else {
Time.timeScale = 1.0;
  }
 //根據timeScale調整固定增量時間
 Time.fixedDeltaTime = 0.02 * Time.TimeScale;
 }
 }
◆ static var timeSinceLevelLoad : float
 描述: 該幀開始的時間(只讀)。最後一個關卡被加載到如今的時間。
//設置GUI文本爲玩家完成該關卡的時間。
 function PlayerCompletedGame () {
  guiText.text = Time. timeSinceLevelLoad.ToString;
 }
Vector2
 結構
 表示2D向量和點。
 這個在某些地方用來表示2D位置和向量(例如,在Mesh中的紋理座標或者Material中的紋理偏移)。在大多數狀況下使用一個Vector3。
變量
◆ var magnitude : float
 描述: 返回這個向量的長度(只讀)。
 向量的長度是(x*x+y*y)的平方根。
 若是你只須要比較向量的長度,你能夠使用sqrMagnitude(計算長度的平方式比較快的)比較它們的平方。
 參見: sqrMagnitude
◆ var sqrMagnitude : flaot
 描述: 返回這個向量長度的平方(只讀)。
 計算長度的平方比magnitude更快。一般若是你只比較兩個向量的長度你能夠只比較它們的長度的平方。
 參見: magnitude
◆ var this[index : int] : float
 描述: 分別使用0或1來訪問x和y組件。
Vector2 p;
 p[1] = 5; //與p.y = 5相同
◆ var x : float
 描述: 該向量的x組件。
◆ var y : float
 描述: 該向量的y組件。
構造函數
◆ static function Vector2 (x : float, y : float) : Vector2
 描述: 用指定的x,y組件構造一個新的向量。
函數
◆ function ToString () : String
 描述: 返回格式化好的Vector字符串。
類變量
◆ static var right : Vector2
 描述: Vector2(1,0)的簡寫。
◆ static var up : Vector2
 描述: Vector2(0,1)的簡寫。
◆ static var zero : Vector2
 描述: Vector2(0,0)的簡寫。
類方法
◆ static function Distance(a:Vector2, b:Vector2):float
 描述: 返回a和b之間的距離。
 Vector2.Distance(a,b)和(a-b).magnitude相同。
◆ static function Dot(lhs:Vector2, rhs:Vector2):float
 描述: 2個向量的點乘。
 返回lhs.rhs.
 對於規範化的向量,若是它們指向相同的方向Dot返回1;若是指向相反的方向返回-1;在另外的狀況下返回一個數字(例如,若是向量垂直則Dot返回0)。
◆ static operator* (a:Vector2, d:float):Vector2
 描述: 用一個數乘以一個向量。
 用d乘以a的每一個組件。
 // 使向量變爲二倍長;打印(2.0, 4.0)
 print (Vector2(1,2) * 2.0);
◆ staic operator* (d:float, a:Vector2):Vector2
 描述: 用一個數乘以一個向量。
 用d乘以a的每一個組件。
// 使向量變爲二倍長; 打印(2.0, 4.0)
 print(2.0 * Vector2(1, 2));
◆ static operator + (a:Vector2, b:Vector2):Vector2
 描述: 兩個向量相加。
 將對應的組件加在一塊兒。
 // 打印(3.0, 5.0)
 print(Vector2(1,2) + Vector2(2,3));
◆ static operator–(a:Vector2, b:Vector2):Vector2
 描述: 兩個向量相減。
 從a中減去b的每一個對應組件。
 // 打印(-2.0, 0.0)
 print(Vector2(1,2)–Vector2(3,2));
◆ static operator–(a:Vector2):Vector2
 描述: 向量取反。
 結果中的每一個組件都被取反。
 // 打印(-1.0, -2.0)
 print(-Vector2(1,2);
◆ static operator/(a:Vector2, d:float):Vector2
 描述: 用一個數除以一個向量。
 用d除以a的每一個組件。
 // 使向量縮短一倍;打印(0.0, 1.0)
 print(Vector2(1,2)/2.0);
◆&nbs, p;static operator==(lhs:Vector2, rhs:float):Vector2
 描述: 若是向量相等返回true。
 對於很是接近相等的向量,這個也返回true。
◆ static implicit function Vector2(v:Vector3):Vector2
 描述: 把一個Vector3轉化成Vector2。
 Vector3可被隱式的轉化爲Vector2(z被丟棄)。
◆ static implicit function Vector3(v:Vector2):Vector3
 描述: 把一個Vector2轉化成Vector3。
 Vector2可被隱式的轉化爲Vector3(z被默認設置成0)。
◆ static function Scale(a:Vector2, b:Vector2):Vector2
 描述: 兩個向量組件相乘
 結果中的每一個組件都是a中的一個組件乘以b中相同的組件。
 // 打印(2.0, 6.0)
 print(Vector2.Scale(Vector2(1,2), Vector2(2,3)));
Vector3
結構
 表示3D的向量和點。
 這個結構被用在這個Unity中傳遞3D位置和方向,它也包含函數來作普通的向量操做。
變量
◆ var magnitude : float
 描述: 返回這個向量的長度(只讀)。
 向量的長度是(x*x+y*y+z*z)的平方根。
 若是你只須要比較向量的長度,你能夠使用sqrMagnitude(計算長度的平方根是較快的)比較它們的長度平方。
 參見: sqeMagnitude
◆ var normalized : Vector3
 描述: 返回這個向量,而且magnitude爲1(只讀)。
 規範化以後,一個向量保持相同的方向可是它的長度爲1.0。
 注意當前的向量不改變並返回一個新的規範化向量,若是你像規範化當前向量,使用normalized函數。
 若是這個向量過小以致於不能規範化,將返回一個零向量。
 參見: Normalize函數
◆ var sqeMagnitude : float
 描述: 返回這個向量長度的平方(只讀)。
 計算長度的平方比magnitude更快。一般若是你只比較兩個向量的長度你能夠只比較它們的平方。
 // 檢測當一個變化比closeDistance更接近
 // 這個比使用Vector3 magnitude更快
 var other : Transform;
 var closeDistance = 5.0;
 function Update() {
  if(other) {
  var sqeLen = (other.position – transform.position).sqrMagnitude;
  // 平方咱們須要比較的距離
  if(sqrLen < closeDistance * closeDistance)
print(「The other transform is close to me!」);
 }
}
 參見: magnitude
◆ var this[index : int] : float
 描述: 分別使用[0],[1],[2]訪問x,y,z組件。
 Vector3 p;
 p[1] = 5; //與p.y = 5相同
◆ var x : float
 描述: 該向量的x組件。
◆ var y : float
 描述: 該向量的y組件。
◆ var z : float
 描述: 該向量的z組件。
構造函數
◆ static function Vector3(x : float, y : float, z : float) : Vector3
 描述: 用給定的x,y,z組件構建一個新的向量。
◆ static function Vector3(x : float, y : float) : Vector3
 描述: 用給定的x,y組件構建一個新的向量並設置z爲0。
函數
◆ function Normalize() : void
 描述: 使該向量的magnitude爲1。
 規範化以後,一個向量保持相同的方向可是它的長度爲1.0。
 注意這個函數將改變當前向量。若是你想保持當前向量不改變,使用normalized變量。
 若是這個向量過小以致於不能規範化,它將被設置爲0.
 參見: normalized變量
◆ function Scale(scale : Vector3) : void
 描述: 用scale的組件乘以這個向量中的每一個對應組件。
◆ static function Scale(a : Vecotr3, b : Vector3) : Vecotr3
 描述: 兩個向量的組件相乘。
 結果中的每一個組件是a中的一個組件乘以b中的相對應組件。
 // 打印(2.0, 6.0, 12.0)
 print(Vector3.Scale(Vector3(1,2,3), Vector3(2,3,4)));
◆ function ToString() : string
 描述: 返回格式化好的Vector3字符串。
類變量
◆ static var forward : Vector3
 描述: Vector3(0, 0, 1)的簡寫。
 transform.position += Vector3.forward * Time.deltaTime;
◆ static var one : Vector3
 描述: Vector3(1, 1, 1)的簡寫。
 transform.position = Vector3.one;
◆ static var right : Vector3
 描述: Vector3(1, 0, 0)的簡寫。
 transform.position += Vector3.right * Time.deltaTime;
◆ static var up : Vector3
 描述: Vector3(0, 1, 0)的簡寫。
 transform.position += Vector3.up * Time.deltaTime;
◆ static var zero : Vector3
 描述: Vector3(0, 0, 0)的簡寫。
 transform.position += Vector3.zero;
類方法
◆ static function Angle(from : Vector3, to : Vector3) : float
 描述: 返回from和to之間的角度。
 // 若是這個變化的z軸看向target
 // 打印」close」
 var target : Transform;
 function Update() {
  var targetDir = target.position – transform.position;
 var forward = transform.forward;
 var angle = Vector3.Angle(targetDir, forward);
 if(angle < 5.0)
  print(「close」);
 }
◆ static function Cross(lhs : Vector3, rhs : Vector3) : float
 描述: 兩個向量的叉乘。
 返回lhs x rhs。
◆ static function Distance(a : Vector3, b : Vector3) : float
 描述: 返回a和b之間的距離。
Vector3.Distance(a, b)與(a – b).magnitude相同。
 var other : Transform;
 if(other) {
  var dist = Vector3.Distance(other.position, transform.position);
 print(「Distance to other: 」 + dist);
 }
◆ static function Dot(lhs : Vector3, rhs : Vector3) : float
 描述: 兩個向量的點乘。
 返回lhs.rhs。
 對於normalized的向量,若是它們指向相同的方向Dot返回1;若是指向徹底相反的方向則返回-1;在另外的狀況下返回一個數字(例如,若是向量垂直則Dot返回0)。
 對於任意長度的向量Dot返回的值是相同的。當兩個向量的角度增長的時候,這個值會變大。
 // 檢測是否有其餘變換在這個物體以後
 var other : Transform;
 function Update() {
  if(other) {
  var forward = transform.Transform.Distance(Vector3.forward);
   var toOther = other.position;
  transform.position;
  if(Vector3.Dot(forward, toOther) < 0)
print(「The other transform is behind me!」);
  }
 }
◆ static function Lerp(from : Vector3, to : Vector3, t : float) : Vector3
 描述: 在兩個向量之間找到線性插值。
 從from到to基於t插值。
 t被裁剪到(0…1)之間。當t爲0時返回from,當t爲1時返回to。當t = 0.5時返回from和to的平均值。
 // 在一秒內從from開始移動到to結束
 var start : Transform;
 var end : Transform;
 function Update() {
  transform.position = Vector3.Lerp(start.position, end.position, Time.time);
 }
 // 像一個彈簧同樣跟隨target位置
 var target : Transform;
 var smooth = 5.0;
 function Update() {
  transform.position = Vector3.Lerp(transform.position, target.position, Time.deltaTime * smooth);
 }
◆ static function Max(lhs : Vector3, rhs : Vector3) : Vector3
 描述: 返回由lhs和rhs中最大組件組成的向量。
 var a = Vector3(1,2,3);
 var b = Vector3(4,3,2);
 print(Vector3.Max(a,b)); //打印(4.0, 3.0, 3.0);
 參見: Min函數
◆ static function Min(lhs : Vector3, rhs : Vector3) : Vector3
 描述: 返回由lhs和rhs中最小組件組成的向量。
var a = Vector3(1,2,3);
 var b = Vector3(4,3,2);
 print(Vector3.Min(a,b)); //打印(1.0, 2.0, 2.0);
 參見: Max函數
◆ static operator != (lhs : Vecotr3, rhs : Vecotr3) : bool
 描述: 若是向量不一樣返回true。
 很是接近的向量被認爲是相等的。
 var other : Transform;
 if(other && transform.position != other.position) {
  print(「I’m at the different place than the other transform!」);
 }
◆ static operator * (a : Vector3, d : float) : Vector3
 描述: 用一個數乘以一個向量。
 用d乘以a的每一個組件。
 print(Vector3(1,2,3) * 2.0); //使向量變爲二倍長,打印(2.0, 4.0, 6.0)
◆ static operator * (d : float , a : Vector3) : Vector3
 描述: 用一個數乘以一個向量。
 用d乘以a的每一個組件。
 print(Vector3(1,2,3) * 2.0); //使向量變爲二倍長,打印(2.0, 4.0, 6.0)

◆ static operator + (a : Vector3, b : Vector3) : Vector3
 描述: 兩個向量相加。
 將對應的組件加在一塊兒。
 // 打印(5.0, 7.0, 9.0)
 print(Vector3(1,2,3) + Vector3(4,5,6));

◆ static operator - (a : Vector3, b : Vector3) : Vector3
 描述: 兩個向量相減。
 將a與b對應的組件相減。
 // 打印(-5.0, -3.0, -1.0)
 print(Vector3(1,2,3) - Vector3(6,5,4));

◆ static operator - (a : Vector3) : Vector3
 描述: 向量取反。
 將a中的每一個組件都取反。
 // 打印(-1.0, -2.0, -3.0)
 print(Vector3(1,2,3));

◆ static operator / (a : Vector3, d : float) : Vector3
 描述: 用一個數除以一個向量。
 用d除以a的每一個組件。
 // 使向量縮短一倍,打印(0.5, 1.0, 1.5)
 print(Vector3(1,2,3) / 2.0);
◆ static operator == (lhs : Vector3, rhs : Vector3) : bool
 描述: 若是向量相等返回true。
 對於很是接近相等的向量,這個也返回真。
 var other : Transform;
 if(other && transform.position == other.position) {
  print(「I’m at the same place as the other transform」);
 }
◆ static function OrthoNormalize(ref normal : Vector3, ref tangent : Vector3) : void
 描述: 使兩個向量規範化並互相正交。
 規範化normal;規範化tangent並確保它正交於normal(就是說,它們之間的角度是90度)。
 參見: Normalize函數
◆ static function OrthoNormalize(ref normal : Vector3, ref tangent : Vector3, ref binormal : Vector3) : void
 描述: 使兩個向量規範化並互相正交。
 規範化normal;規範化tangent並確保它與normal。規範化binormal並確保它與normal和tangent正交。
 參見: Normalize函數
◆ static function Project(vector : Vector3 , onNormal : Vector3) : Vector3
 描述: 投影一個向量到另外一個向量。
 返回投影到onNormal上的vector。若是onNormal接近零,返回零矩陣。
◆ static function Reflect(inDirection : Vector3, inNormal : Vector3) : Vector3
 描述: 沿着法線反射這個向量。
 返回的值inDirection從以inNormal爲法線的表面反射。
 var originalObject : Transform;
 var reflectedObject : Transform;
 function Update() {
  // 使反射物體與凡是物體沿着世界的z軸鏡像反射
 reflectedObject.position = Vector3.Reflect(originalObject.position, Vector3.right);
}
◆ static function RotateTowards(from : Vector3, to : Vector3, maxRadiansDelta : float, maxMagnitudeDelta : float) : Vector3
 描述: 旋轉一個向量from到to。
 該向量將被在一個弧線上旋轉而不是線形插值。本質上與Vector3.Slerp相同,可是這個函數將確保角速度和長度的改變不會超過maxRadiansDelta和maxMagnitudeDelta。
◆ function Scale(scale : Vector3) : void
 描述: 用sacle的組件乘以這個向量中的每一個對應組件。
◆ static function Scale(a : Vector3, b : Vector3) : Vector3
 描述: 兩個向量組件相乘。
 結果中的每一個組件是a中的一個組件乘以b中相對應的組件。
 // 打印(2.0, 6.0, 12.0)
 print(Vector3.Scale(Vector3(1,2,3), Vector3(2,3,4)));
◆ static function Slerp(from : Vector3, to : Vector3, t : float) : Vector3
 描述: 在兩個向量之間球形插值。
 從from到to基於t插值,返回向量的magnitude將在from和to的長度之間插值。
 t被裁剪到[0…1]之間。
 // 在sunrise和sunset之間以弧線變換一個位置
 var sunrise : Transform;
 var sunset : Transform;
 function Update() {
  // 弧線的中心
  var center = (sunrise.position – sunset.position) * 0.5;
 // 向下移動一點中心使該弧線垂直
 center.y -= 1;
 //相對於中心插值這個弧線
 var riseRelCenter = sunrise.positioni – center;
 var setRelCenter = sunset.position – center;
 transform.position = Vector3.Slerp(riseRelCenter, setRelCenter. Time.time);
 transform.position += center;
 }
 參見: Lerp函數
Vector4
 結構
 表示四維向量。
 這個結構被用在一些地方來表示四個組件的向量(例如,網格切線,shader的參數)。在其餘的一些地方使用Vector5。

變量
◆ var magnitude : float
 描述: 返回這個向量的長度(只讀)。
 向量的長度是(x*x+y*y+z*z+w*w)的平方根。
 若是你只須要比較向量的長度,你能夠使用sqrMagnitude(計算長度的平方是比較快的)比較它們的長度平方。
 參見: sqrMagnitude
◆ var normalized : Vector4
 描述: 返回這個向量,而且magnitude爲1(只讀)。
 注意當前的向量不改變並返回一個新的規範化的向量。若是你像規範化當前向量,使用Normalize函數。
 若是這個向量過小以致於不能規範化,將返回一個零向量。
 參見: Normalize函數。
◆ var sqrMagnitude : float
 描述: 返回這個向量的長度的平方(只讀)。
 計算長度的平方比magnitude更快。
 參見: magnitude
◆ var this[index : int] : float
 描述: 分別使用[0],[1],[2],[3]訪問x,y,z,w組件。
 Vector4 p;
 p[3] = 5; // 與p.w = 5相同
◆ var w : float
 描述: 該向量的w組件。
◆ var x : float
 描述: 該向量的x組件。
◆ var y : float
 描述: 該向量的y組件。
◆ var z : float
 描述: 該向量的z組件。
構造函數
◆ static function Vector4 (x : float, y : float, z : float, w : float) : Vector4
 描述: 用給定的x,y,z,w組件構建一個新的向量。
◆ static function Vector4 (x : float, y : float, z : float) : Vector4
 描述: 用給定的x,y,z組件構建一個新的向量並設置w爲0。
◆ static function Vector4 (x : float, y : float) : Vector4
 描述: 用給定的x,y組件構建一個新的向量並設置z和w爲0。
函數
◆ function Normalize() : void
 描述: 使該向量的magnitude值爲1。
 注意這個函數將改變當前向量。若是你想保持當前向量不改變,使用normalized變量。
 若是這個向量過小以致於不能規範化,它將被設置爲0。
 參見: normalized變量
◆ function Scale(scale : Vector4) : void
 描述: 用scale的組件乘以這個向量中的每一個對應組件。
◆ static function Scale(a : Vector4, b : Vector4) : Vector4
 描述: 兩個向量的組件相乘。
 結果中的每一個組件是a中的一個組件乘以b中相同的組件。
 // 打印(2.0, 6.0, 12.0, 12.0)
 print(Vector4.Scale(Vector4(1,2,3,4), Vector4(2,3,4,5)));
◆ function ToString() : String
 描述: 返回格式化好的vector字符串
類變量
◆ static var one : Vector4
 描述: Vector4(1,1,1,1)的簡寫。
◆ static var zero : Vector4
 描述: Vector4(0,0,0,0)的簡寫。
類方法
◆ static function Distance(a : Vector4, b : Vector4) : float
 描述: 返回a和b之間的距離。
 Vector4 Distance(a,b)和(a-b).magnitude相同。
◆ static function Dot(lhsVector4, rhsVector4) : float
 描述: 兩個向量的點乘。
 返回lhs.rhs。
◆ static function Lerp(from : Vector4, to : Vector4, t : float) : Vector4
 描述: 在兩個向量之間線形插值。
 從from到to 基於t插值。
 t被裁剪到[0…1]之間,當t爲0時返回from,當t爲1時返回to,當t = 0.5時返回from與to的平均值。
◆ static operator != (lhs : Vector4, rhs : Vector4) : bool
 描述: 若是向量不一樣返回真。
 很是接近的向量被認爲是相等的。
◆ static operator * (a : Vector4, d : float) : Vector4
 描述: 用一個數乘以一個向量。
 用d乘以a的每一個組件。
 // 使向量變爲二倍長,打印(2.0, 4.0, 6.0, 8.0)
 print(Vector4(1,2,3,4) * 2.0);
◆ static operator * (d : float, a : Vector4) : Vector4
 描述: 用一個數乘以一個向量。
 用d乘以a的每一個組件。
 // 使向量變爲二倍長,打印(2.0, 4.0, 6.0, 8.0)
 print(2.0 * Vector4(1,2,3,4));
◆ static operator + (a : Vector4, b : Vector4) : Vector4
 描述: 兩個向量相加。
 將對應的組件加在一塊兒。
 // 打印(5.0, 7.0, 9.0, 11.0)
 print(Vector4(1,2,3,4) + Vector4(4,5,6,7));
◆ static operator - (a : Vector4, b : Vector4) : Vector4
 描述: 兩個向量相減。
 從a中減去b中每一個對應的組件。
 // 打印(-5.0, -3.0, -1.0, 1.0)
 print(Vector4(1,2,3,4) + Vector4(6,5,4,3));
◆ static operator - (a : Vector4) : Vector4
 描述:向量取反。
 a中的每一個組件都被取反。
 // 打印(-4.0, -3.0, -2.0, -1.0)
 print(-Vector4(4,3,2,1));
◆ static operator / (a : Vector4, d : float) : Vector4
 描述: 用一個數除以一個向量。
 從d除以a中每一個組件。
 // 使向量縮短一半,打印(0.5, 1.0, 1.5, 2.0)
 print(Vector4(1,2,3,4) / 2.0);
◆ static operator == (lhs : Vector4, rhs : Vector4) : bool
 描述: 若是向量相等返回true。
 對於很是接近相等的向量,這個也返回true。
◆ static implicit function Vector3(v : Vector4) : Vector3
 描述: 把一個Vector4轉換爲一個Vector3。
 Vector4能夠被隱式轉換成Vector3(w被丟棄)。
 function Start() {
  // shader老是Vector4。可是這個值被轉化成一個Vector3。
 var value : Vector3 = renderer.material.GetVector(「_SomeVariable」);
 }
◆ static implicit function Vector4(v : Vector3) : Vector4
 描述: 把一個Vector3轉換爲一個Vector4。
 Vector3能夠被隱式轉換成Vector4(w被設置爲0)。
 function Start() {
  // shader老是Vector4。這個值從一個Vector3轉換爲一個Vector4。
 var value : Vector3 = Vector3.one;
 renderer.material.SetVector(「_SomeVariable」, value);
 }
◆ static function Project(a : Vector4, b : Vector4) : Vector4
 描述: 投影一個向量到另外一個向量。
 返回投影到b的a。
◆ static Scale(scale : Vector4) : void
 描述: 用scale的組件乘以這個向量中的每一個對應組件。
◆ static function Scale(a : Vector4, b : Vector4) : Vector4
 描述: 兩個向量的組件相乘。
 結果中每一個組件都是a中的一個組件乘以b中的對應組件。
 // 打印(2.0, 6.0, 12.0 , 20.0)
 print(Vector4.Scale(Vector4(1,2,3,4), Vector4(2,3,4,5)));
WWWFrom
 類
 輔助類。用來生成表單數據並使用WWW類傳遞到web服務器。
 // 獲取一個截屏並上傳到CGI腳本
// 該CGI腳本必須能處理表單上傳
 var screenshotURL = 「http://www.my-site.com/cgi-bin/screenshot.pl」;
 // 截屏
 function Start() {
  UploadPNG();
}
 function UploadPNG () {
 yield WaitForEndOfFrame(); // 咱們應該只在全部渲染完成後讀取屏幕
 var width = Screen.width;
 var height = Screen.height;
 var tex = new Texture2D(width, height, TextureFormatRGB24, false); // 建立屏幕大小的紋理,RGB24格式
 //讀取屏幕內存到紋理
 tex.ReadPixels(Rect(0, 0, width, height), 0, 0);
 tex.Apply();
 // 編碼紋理爲PNG
 var bytes = tex.EncodeToPNG();
 Destroy(tex);
 // 建立一個Web表單
 var form = new WWWForm();
 form.AddField(「frameCount」, Time.frameCount.ToString());
 form.AddBinaryData(「fileUpload」, bytes, 「screenshot.png」, 「image.png」);
 // 上傳到一個CGI腳本
 var w = WWW(screenShotURL, form);
 yield w;
 if(w.error != null) {
  print(w.error);
 } else {
  print(「Finished Uploading Screenshot」);
}
 }
 這裏是一個簡單的Perl腳本用處理存貯在SQL數據庫中的高分表
 // 這個例子假設玩家已經輸入了他的名稱到一個name變量中而且score包含玩家的當前分數
var highscore_url = 「http://www.my-site.com/highscore.pl」;
function Start() {
 // 建立一個表單來發送高分數據到服務器
 var form = new WWWForm();
 // 假設perl腳本爲不一樣的遊戲管理高分
 form.AddField(「game」, 「MyGameName」);
 // 玩家提交的名稱
 form.AddField(「playerName」, name);
 // 分數
 form.AddField(「score」, score);
 //建立一個下載對象
 var download = new WWW(highscore_url, form);
 //等待直到下載完成
 yield download;
 if(download.error) {
  print(「Error downloading 「 + download.error);
  } else {
   // 顯示高分
  }
}
 這裏是一個單間的Perl腳本用來處理存貯在SQL數據庫中的高分表
 #/usr/bin/perl
 #SQL數據庫須要有一個稱爲highscores的表
 # 看起來像這樣
#CREATE TABLE highscores (
 #game varchar(255) NOT NULL,
 #player varchar(255) NOT NULL,
 #score integer NOT NULL
 # );
use strict;
 use CGI;
 use DB1;
 # 讀取表單數據
 my $cgi = new CGI;
 # 來自高分腳本的結果將是in純文本格式
 print $cgi -> header(「text/plain」);
 my $game = $cgi -> param(‘game’);
 my $playeName = $cgi -> param(‘playerName’);
 my $score = $cgi -> param(‘score’);
 exit 0 unless $game; #這個參數被請求連接到一個數據庫
 my $dbh = DB1 -> connect(‘DB1.mysql.databasename’, ‘username’, ‘password’) || die 「Could not connect to database: $DB1::errstr」;
 # 若是插入玩家分數if
 if($playerName && $score) {
  $dbh -> do(「insert into highscores(game, player, score) values(?,?,?)」, undef, $game, $playerName, $score);
 }
 # 取回高分
 my $sth = $dbh -> prepare(「SELECT player, score FROM highscores WHERE game=? ORDER BY score desc LIMIT 10」);
 #dbh -> execute($game);
 while(my $r = $sth -> fetchrow_arrayref) {
  print join(‘.’, @$r), 「\n」
 }
 變量
◆  var data : byte[]
 描述: (只讀)在發送表單的時候原始數據做爲POST請求被髮送。
 一般,你只須要直接將WWWForm對象傳遞給WWW構造函數,可是若是你像改變發送到web服務器的頭,你將須要這個變量。
 參見: headers變量
 var form = new WWWForm();
 form.AddField(「name」, 「value」);
var headers = form.headers;
 var rawData = form.data;
 // 給請求添加一個自定義的頭,在這裏用一個簡單的受權來訪問密碼保護的資源 header[「Authorization」]=」Basic」+System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(「username:password)); 
// 用自定義的頭傳遞一個請求到URL
 var www= new WWW(url, rawData, headers);
 yield www;
 // 這裏處理WWW請求結果…
◆  var headers : Hashtable
 描述: (只讀)爲使用WWW類傳遞的表單返回一個正確的請求頭。
  這個域只包含一個頭,/」Content-Type」/,它被設置爲正確的mine類型。」application/x-www-form-urlencoded」用於普通的表單,」multipart/form-data」用於使用AddBinaryData添加數據的表單。
 var form = new WWWForm();
 form.AddField(「name」, 「value」);
 var headers = form.headers;
 var rawData = form.data;
 // 給請求添加一個自定義的頭,在這裏用一個簡單的受權來訪問密碼保護的資源 header[「Authorization」]=」Basic」+System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(「username:password));
 // 用自定義的頭傳遞一個請求到URL
var www= new WWW(url, rawData, headers);
 yield www;
 // 這裏處理WWW請求結果…
構造函數
◆  static function WWWForm() : WWWForm
 描述: 建立一個空的WWWForm對象。
 使用AddField和AddBinaryData方法向表單中插入數據。
 參見: WWW類
函數
◆ function AddBinaryData(fieldname : string, contents : byte[], filename : string = null, 
mimeType : string = null) : void
 描述: 添加二進制數據到表單。
 使用這個函數來上傳文件和圖片到web服務器,注意數據從字節數組中讀取而不是從一個文件中讀取。fileName參數用來告訴服務器用什麼文件名來保存上傳的文件。
 若是mimeType沒有給出,而且數據的前8字節與PNG格式頭相同,而後數據用」image/png」mimetype發送,不然它將用」application/octet-stream」mimetype發送。
◆ function AddField(filename : string, value : string, e : Encoding = System.Text.Encoding.UTF8) : void
 描述: 添加一個簡單的域到表單。
 用給的字符串值添加域fileName。
◆ function AddField(filedName : string, i : int) : void
 描述: 添加一個簡單的域到表單。
 用給定的X形值添加域filedName。一個簡單的方法是調用AddField(fieldname, i.ToString)。
WWW
 類,集成自IDisposable
 簡單地訪問web頁。
 這個是一個小的工具模塊能夠用來取回URL的內容。
 經過調用WWW(url)在後臺開始一個下載,它將返回一個WWW物體。
 你能夠檢查isDone屬性來查看下載是否完成,或者yield下載物體來自動等待,直到它被下載完成(不會影響遊戲的其他部分)。
 若是你像從web服務器上獲取一些數據例如高分列表或者調用主頁,能夠使用這個,也有一些功能能夠使用從web上下載的圖片來建立一個紋理,或者下載或加載新的web播放器數據文件。
 WWW類能夠用來發送GET和POST請求到服務器,WWW類默認使用GET,若是提供一個postData參數就使用POST。
 參見: WWWForm爲postData參數構建可用的表單數據。
 // 從時代廣場上的外部」Friday’s」 web攝像頭獲取最新的數據
 var url = 「http://images.earthcam.com/ec_metros/ourcams/fridays.jpg」;
 function Start() {
  // 開始下載給定的URL
 var www : WWW = new WWW(url);
 // 等待下載完成
  yield www;
 //賦值紋理
 renderer.material.mainTexture = www.texture;
 }
變量
◆ var assetBundle : AssetBundle
 描述: 從工程文件中下載一個能夠包含任意類型資源的AssetBundle。
 function Start() {
 var www = new WWW(「http://myserver/myBundle.unity3d」);
 yield www;
  // 獲取制定的主資源並實例化它
 Instantiate(www.assetBundle.mainAsset);
 }
 參見: AssetBundle類。
◆ var audioClip : AudioClip
 描述: 從下載的數據生成一個AudioClip(只讀)。
 該數據必須是一個Ogg Vorbis格式的音頻剪輯。
 即便音頻沒有徹底下載完成,這個也當即返回,容許你開始播放已經下載完成的部分。
var url : String;
 function Start() {
 www = new WWW(url);
 audio.clip = www.audioClip;
}
function Update() {
 if(!audio.isPlaying && audio.clip.isReadyToPlay) {
  audio.Play();
 }
}
◆ var bytes : byte[]
 描述: 將取回的web頁內容做爲一個字節數組返回(只讀)。
 若是物體尚未完成數據的下載,它將返回一個空字節數組。使用isDone或者yield來查看數據是否可用。
 參見: data屬性
◆ var data : string
 描述: 將取回的web頁內容做爲一個字符串返回(只讀)。
 若是物體尚未完成數據的下載,它將返回一個空字符串。使用isDone或者yield來查看數據是否可用。
 這個函數指望網頁內容是UTF-8或者ASCII字符集。對於其餘字符或者二進制數據返回的字符串也許是不正確的。在這些狀況下,使用bytes屬性來獲取原始字節數組。
 參見: bytes屬性
◆ var error : string
 描述: 若是下載的時候出現了一個錯誤,返回錯誤信息(只讀)。
 若是沒有錯誤,error將返回null。
 若是物體沒有下載完成,它將被阻止直到下載完成。使用isDone或yield來查看數據是否可用。
 // 用一個無效的URL獲取一個紋理
 var url = 「invalid_url」;
 function Start() {
 // 開始下載給定的URL
 var www : WWW = new WWW(url);
 // 等待下載完成
 yield www;
 // 打印錯誤的控制檯
 if(www.error!=null) {
  Debug.Log(www.error);
 }
 //賦值紋理
 renderer.material.mainTexture = www.texture;
 }
◆ var isDone : bool
 描述: 下載是否完成(只讀)。
 若是你試圖訪問任何isDone爲false的數據,程序將被阻止知道下載完成。
? var movie : MovieTexture
描述: 從下載的數據生成一個MovieTexture(只讀)。
數據必須爲一個Ogg Theora格式視頻。
即便視頻徹底沒有下載完成,這個也當即返回,容許你開始播放已經下載完成的部分。
 var url = 「http://www.unity3d.com/webplayers/Movie/sample.ogg」;
 function Start() {
 // 開始下載
  var www = WWW(url);
 // 確保視頻在開始播放前已經準備好
  var movieTexture = www.movie;
 while(!movieTexture.isReadyToPlay)
  yield;
 //初始化GUI紋理爲1:1解析度並居中
 guiTexture.texture = movieTexture;
  transform.localScale = Vector3(0,0,0);
 transform.position = Vector3(0.5, 0.5, 0);
 guiTexture.pixelInset.xMin = -movieTexture.width/2;
 guiTexture.pixelInset.xMax = movieTexture. width /2;
 guiTexture.pixelInset.yMin = -movieTexture.height/2;
 guiTexture.pixelInset.yMax = movieTexture. height /2;
 // 賦值剪輯到音頻源
 // 與音頻同步播放
 audio.clip = movieTexture.audioClip;
 // 播放視頻和音頻
 movieTexture.Play();
 audio.Play();
 }
 // 確保咱們有GUI紋理和音頻源
 @script RequireComponent(GUITexture)
 @script RequireComponent(AudioSource)
◆ var oggVorbis : AudioClip
 描述: 加載Ogg Vorbis文件到音頻剪輯。
 若是流沒有被徹底下載,將返回null。使用isDone或者yield來查看數據是否可用。
 參見: AudioClip, AudioSource
 var path = 「http://ua301106.us.archive.org/2/items/abird2005-02-10t02.ogg」;
 function Start() {
var download = new WWW(path); // 開始下載
yield download; // 等待下載完成
 var clip : AudioClip = download.oggVorbis; // 建立ogg vorbis文件
 // 播放它
 if(clip!=null) {
  audio.clip = clip;
  audio.Play();
 // 處理錯誤
} else {
  Debug.Log(「Ogg vorbis download failed(Incorrect link?)」);
}
}
 @script RequireComponent(AudioSource)
 // 一個通用的流式音樂播放器
 // 成功地下載音樂,而後隨機地播放它們
 var downloadPath : String[] = [「http:/ia301106.us.archive.org/2/items/abird2005-02-10t02.ogg」];
 private var downloadedClips : AudioClip[];
 private var playedSongs = new Array();
 function Start () {
 downloadedClips = new AudioClip(downloadPath.Length);
 DownloadAll();
 PlaySongs();
 }
 function DownloadAll() {
 for(var i=0;i<downloadPath.length;i++) {
  var path = downloadPath[i];
  var download = new WWW(path);
   yield download;
  downloadedClips[i] = download.oggVorbis;
  if(downloadedClips[i] == null) 
Debug.Log(「Failed audio download」 + path);
 }
 }
 function PickRandomSong() : AudioClip
 {
 var possibleSongs = Array();
 // 構建一個下載完成的音樂列表
 for(var i=0;i<downloadedClips.length;i++) {
  if(downloadedClips[i] != null)
possibleSongs.Add[i];
 }
 // 尚未音樂被下載
 if(possibleSongs.length == 0)
  return null;
 // 咱們播放了全部音樂,如今從任何音樂中選擇
 if(possibleSongs.length == playedSongs.length)
  playerSongs.Clear();
 // 從列表中已出已經播放完成的音樂
 for(i=0;i<playedSongs.length;i++)
  possibleSongs.Remove(playedSongs[i]);
 // 獲取一個隨即的音樂
 if(possibleSongs.length != 0) {
  var index : int = possibleSongs[Random.Range(0,possibleSongs.length)];
  playedSongs.Add(index);
  return downloadedClips[index];
 } else return null;
}
 function PlaySongs() {
 while(true) {
  var clip : AudioClip = PickRandomSongs();
  if(clip != null) {
audio.clip = clip;
audio.Play();
yield WaitFormSecond(clip.length);
  }
  yield;
 }
 }
@script RequireComponent(AudioSource)
◆ var texture : Texture2D
 描述: 從下載的數據生成一個Texture2D(只讀)。
 數據必須是JPG或者PNG圖片格式。若是數據圖像不可用,產生的紋理將是一個帶問號的紋理。建議使用2的冪次大小的圖片;任意大小的也能夠工做可是加載的比較慢並會佔用較多的內存。每一個紋理屬性的調用都會分配一個新的Texture2D。若是你連續的下載紋理,必須使用LoadImageInfoTexture或銷燬前面建立的紋理。
 對於PNG文件,若是包含伽馬修正,伽馬修正將被應用到該紋理,顯示的伽馬修正假定爲2.0,若是文件沒有包含伽馬信息,將不會執行任何顏色修正。
 若是物體尚未完成數據的下載,它將返回一個虛構的圖片,使用isDone或者yield來查看數據是否能夠用。
 // 從時代廣場上的外部」Friday’s」 web攝像頭獲取最新的數據
 var url = 「http://images.earthcam.com/ec_metros/ourcams/fridays.jpg」;
 function Start() {
 // 開始下載給定的URL
 var www : WWW = new WWW(url);
 // 等待下載完成
 yield www;
 // 賦值紋理
 renderer.material.mainTexture = www. texture;
 }
◆ var uploadProgress : float
 描述: 上傳了多少(只讀)。
 這是0和1之間的值: 0表示沒有發送任何數據,1表示上傳完成。
 uploadProgress目前沒有徹底在web播放器中實現,若是在web播放器中使用它將在上傳的時候返回0.5,上傳完成後返回1.0。
 由於全部到服務器的數據發送在接收數據之前完成,因此當progress大於0時,uploadProgress將老是1.0。
◆ var url : string
◆ static function WWW(url : string, postData : byte[], headers : Hashtable) : WWW
 參數:
 url下載的URL
 postData 傳遞到該url的字節數組數據
 headers  一個自定義頭部的hash表,隨着請求發送
 返回: WWW,一個新的WWW物體。當它被下載後,結果能夠從返回的物體中間取回。
 描述: 用給定的URL建立一個WWW請求
 這個函數建立併發送一個POST請求,該請求帶有包含在postData中的post數據和header哈希表提供的自定義請求頭。流將自動開始下載。若是你須要以自定義的格式傳遞原始數據到服務器,或者若是你須要提供自定義的請求頭。
 流建立以後你不得不等待直到它完成,而後你能夠訪問下載的數據。做爲一個快捷的方法,流能夠被yield,這樣你可以很是容易的告訴Unity等待下載完成。
函數
◆ function Dispose () : void
 描述:
◆ function LoadImageIntoTexture(tex : Texture2D) : void
 參數:
 tex  一個已存在的紋理物體能夠被這個圖像數據覆蓋。
 描述: 用來自下載數據的圖像替換已存在的Texture2D內容。
 數據必須是JPG或PNG圖片格式。若是數據圖像不可用,產生的紋理將是一個帶問號的紋理。建議使用2的冪次大小的圖片;任意大小的也能夠工做可是加載的比較慢並會佔用較多的內存。
 對於PNG文件,若是包含伽馬修正,伽馬修正將被應用到該紋理。顯示的伽馬修正假定爲2.0。若是文件沒有包含伽馬信息,將不會執行任何顏色修正。
 若是數據沒有下載完成,紋理將保持不變。使用isDone或yield來查看數據是否可用。
// 獲取時代廣場最新的外部」Friday’s」web攝像頭數據 
var url = 「http://images.earthcam.com/ec_metros/ourcams/fridays.jpg」;
 function Start() {
 renderer.material.mainTexture = new Texture2D(512,512);
 while(true) {
  // 開始下載給定的URL
  var www = new WWW(url);

  // 等待直到下載完成
  yield www;

  // 賦值下載的圖片到物體的主紋理
  www.LoadImageIntoTexture(renderer.material.mainTexture);
 }
 }
◆ function LoadUnityWeb() : void
 描述: 加載新的web播放器數據文件。
 加載的unity3d文件的第一個關卡將自動被加載,全部來自前一個.unity3d文件的物體、腳本和靜態變量將被卸載。你能夠使用PlayerPrefab類在兩個繪畫間移動信息。
 這個函數只能在web播放器中使用。
 若是物體尚未徹底下載,unity3d文件將不會被加載。使用isDone或yield來查看數據是否可用。
 function Start() {
 // 開始緩存數據文件
 var stream = new WWW(「http://www.unity3d.com/webplayers/Lightning/lightning.unity3d」);
 // Yield直到流完成
 yield stream;
 // 加載它!
 stream.LoadUnityWeb();
 }
 // 下載一個.unity3d文件並在GUI紋理中顯示速度,你須要確保GUI紋理被設置爲具備一個pixelInset
 function Update() {
 // 保存原始的pixelInset並修改它
 var originalPixelRect = guiTexture.pixelInset;
 // 經過縮放GUI紋理來更新進度欄,直到到達末端
 var stream = new WWW(「http://www.unity3d.com/webplayers/Lightning/lightning.unity3d」);
 while(!stream.isDone) {
  guiTexture.pixelInset.xMax = originalPixelRect.xMin + stream.progress * originalPixelRect.width;
  yield;
 }
 // 在加載前更新最後一次
 guiTexture.pixelInset.xMax = originalPixelRect.xMax;
 stream.LoadUnityWeb();
 }
類方法
◆ static function EscapeURL(s : string, e : Encoding = System.Text.Encoding.UTF8) : string
 參數:
 s 用來編碼的字符串
 e 編碼使用的字符集
 返回: string。 一個新的字符串,全部非法的字符都使用%xx替換,這裏xx是十六進制編碼。
 描述: 編碼字符串爲URL友好的格式。
 用正確的URL編碼替換s中的非法字符,在構建web頁參數時使用它。
 參見: WWW.UnEscapeURL
 // 這將打印字符串」Testing%201%2C2%2C3」到控制檯
 print(WWW.EscapeURL(「Testing 1,2,3));
◆ static function UnEscapeURL(s : string, e : Encoding = System.Text.Encoding.UTF8) : string
 參數:
s 一個編碼過的字符串
 e 編碼使用的字符集
 返回: string – 一個新的字符串,其中全部的%xx都將使用對應的字符來替換。
 描述: 從URL友好的格式解碼一個字符串。
 是WWW.EscapeURL的反響。
 參見: WWW.EscapeURL
 // 這將打印字符串」Testing 1,2,3」到控制檯
 print(WWW.UnEscapeURL(「Testing%201%2C2%2C3」));
WheelFrictionCurve
 結構
 WheelFrictionCurve被WheelCollider使用來描述:輪胎的摩擦力屬性。
 該曲線使用輪胎的滑動做爲輸入並輸出一個力。該曲線近似由兩端曲線構成。第一段從(0,0)到(extremumSlip, extremumValue)到(asymptoteSlip, asymptoteValue),這裏曲線的切線再次爲零。
 車輪碰撞器使用不一樣於物理引擎的一個基於滑動的摩擦力模型來計算摩擦力。它分割整個摩擦力爲「向前」組件(在滾動的方向上,並負責加速和制動)和「側滑」組件(垂直於滾動方向,負責保持車輛的方向)。輪胎的摩擦力在這些方向上分別使用WheelCollider.forwardFrictioni和WheelCollider.sidewaysFriction描述:在兩個方向上它首先決定輪胎滑動了多少(橡膠和路面之間速度的不一樣),而後這個滑動值用來找到在接觸點上輪胎受到的力。
 真是的輪胎屬性是較慢的滑動將得到較高的力由於橡膠經過拉伸補償滑動,而後當滑動變的較高時,這個力被減少由於輪胎開始滑動或旋轉。所以輪胎摩擦力曲線具備上圖所示的形狀。
 由於輪胎的摩擦力是分別計算的,地面的PhysicMaterial不會影響車輪。經過改變車輪所碰到的forwardFriction和sidewayFriction來模擬不一樣的路面材質。參見:WheelCollider.GetGroudHit, WheelHit。
 參見: WheelCollider, WheelCollider.forwardFriction, WheelCollider.sidewayFriction
變量
◆ var asymptoteSlip : float
 描述: 滑動漸進線點(默認爲2)。
◆ var asymptoteValue : float
 描述: 漸進線滑動上的力(默認爲10000)。
◆ var extremumSlip : float
 描述: 滑動極值點(默認爲1)。
◆ var extremumValue : float
 描述: 滑動極值的力(默認爲20000)。
◆ var stiffness : float
 描述: extremumValue和asymptoteValue的倍數(默認爲1)。
 改變摩擦係數,設置這個爲零將徹底禁用車輪的全部摩擦。
 一般修改stiffness來模擬各類地面材質(例如,玻璃具備較低的摩擦係數)。
參見: WheelCollider.GetGroudHit
 // 當附加到WheelCollider時,基於地面的材質的靜態摩擦力修改輪胎的摩擦力
 function FixedUpdate() {
 var hit : WheelHit;
 var wheel : WheelCollider = GetComponent(WheelCollider);
 if(wheel.GetGroundHit(hit)) {
  wheel.forwardFriction.siffness = hit.collider.material.staticFriction;
  wheel.sidewayFriction.siffness = hit.collider.material.staticFriction;
 }
 }
WheelHit
 結構
 車輪的接觸信息,由WheelCollider獲得。
 用於WheelCollider的摩擦力是獨立於物理系統計算的,使用基於輪胎摩擦力模型的滑動。這容許更加真實的行爲,並且使車輪忽略標準的PhysicMaterial設置。
 模擬不一樣地面材質的方法是查詢WheelCollider獲取它的碰撞信息(參考WheelCollider.GetGroundHit)。一般你能夠獲取車輪碰到的其餘collider,並基於地面material修改車輪的forwardFriction和sidewayFriction。
變量
◆ var collider : Collider
 描述: 車輪碰撞到的Collider。
 // 當附加到WheelCollider時,基於地面的材質的靜態摩擦力修改輪胎的摩擦力
 function FixedUpdate() {
 var hit : WheelHit;
 var wheel : WheelCollider = GetComponent(WheelCollider);
 if(wheel.GetGroundHit(hit)) {
  wheel.forwardFriction.siffness = hit.collider.material.staticFriction;
  wheel.sidewayFriction.siffness = hit.collider.material.staticFriction;
 }
 }
◆ var force : float
 描述: 應用到接觸點的力的大小。
◆ var forwardDir : Vector3
 描述: 車輪指向的方向。
◆ var forwardSlip : float
 描述: 在滾動方向上的滑動,加速滑動爲負,制動滑動爲正。
 // 當輪胎滑動時打印」Braking Slip!」
 function FixedUpdate() {
 var hit : WheelHit;
 var wheel : WheelCollider = GetComponent(WheelCollider);
 if(wheel.GetGroundHit(hit)) {
  if(hit.forwardSlip > 0.5)
print(「braking slip!」);
 }
 }
◆ var normal : Vector3
 描述: 接觸點的法線。
◆ var point : Vector3
 描述: 輪胎和地面的接觸點。
◆ var sidewaysDir : Vector3
 描述: 車輪的側向。
◆ var sidewaysSlip : float
 描述: 在側面方向上的滑動。
YieldInstruction
 類
 用於全部yield指令的基類。
 參考WaitForSeconds,WaitForFixedUpdate,Coroutine和MonoBehaviour.StartCoroutine獲取更多信息。
Coroutine
 類,繼承自YieldInstruction
 MonoBehaviour.StartCoroutine返回一個Coroutine。
 一個Coroutine是一個函數,這個函數能夠被暫停(yield)直到給定的YieldInstruction完成。
 // 打印」Starting 0.0」
 // 打印」WaitAndPrint 5.0」
 // 打印」Done 5.0」
 print(「Starting 「 + Time.time);
 // WaitAndPrint做爲一個Coroutine開始
 yield WaitAndPrint();
 print(「Done 」 + Time.time);
 function WaitAndPrint() {
 // 暫停執行5秒
 yield WaitForSeconds(5);
 print(「WaitAndPrint 「 + Time.time);
 }
WaitForEndOfFrame
 類,繼承自YieldInstruction
 等待直到全部的相機和GUI被渲染完成,並在該幀顯示在屏幕上以前。
 你能夠用它來讀取顯示到紋理中,編碼它爲一個圖片(參考Texture2D.ReadPixels, Texture2D.EncodeToPNG)併發送它。
yield new WaitForEndOfFrame();
 // 存儲截屏爲PNG文件
 import System.IO;
 // 當即截屏
 function Start() {
 UploadPNG();
 }
 function UploadPNG() {
  // 在渲染完成後讀取屏幕緩存
 yield WatiForEndOfFrame();
 // 建立一個屏幕大小的紋理,RGB24格式
 var width = Screen.width;
 var height = Screen.height;
 var tex = new Texture2D(width, height, TextureFormat.RGB24, false);
 // 讀取屏幕內容到紋理
 tex.ReadPixels(Rect(0, 0, width, height), 0 ,0);
 tex.Apply();
 // 編碼紋理爲PNG文件
 var bytes = tex.EncodeToPNG();
 Destroy(tex);
 // 出於測試目的,也在工程文件夾中寫一個文件
 // File.WriteAllBytes(Application.dataPath – 「/…/SavedScreen.png」, bytes);
 // 建立一個Web表單
 var form = new WWWForm();
 form.AddField(「frameCount」, Time.frameCount.ToString());
  form.AddBinaryData(「fileUpload」, bytes);
 //上傳到一個CGI腳本
 var w = WWW(「http://localhost/cgi-bin/cnv.cgi?post」, form);
 yield w;
 if(w.error != null) {
  print(w.error);
 }
 else {
  print(Finished Uploading Screenshot」);
 }
 // 在遊戲視圖中顯示alpha通道的內容,須要UnityPro由於這個腳本使用了GI類
 private var mat : Material;
 // 在該幀被徹底渲染後,咱們將繪製提取了alpha通道的一個全屏矩形
 function Start ()
 {
while(true) {
  yield WaitForEndOfFrame();
  if(!mat) {
mat = new Material(「Shader \」 Hidden/Alpha 「(「 + 「SubShader { 「 + 「 Pass {「 + 「ZTest Always Call off ZWrite off」 + 「Blend DstAlpha Zero」 + 「Color(1,1,1,1)」 + 「}」 + 「}」 + 「}」);
  }
  GL.PushMatrix();
  GL.LoadOrtho();
  for(var i=0;i<mat.passCount;++i) {
mat.SetPass(i);
GL.Begin(GLQUADS);
GL.Vector3(0, 0, 0.1);
GL.Vector3(1, 0, 0.1);
GL.Vector3(1, 1, 0.1);
GL.Vector3(0, 1, 0.1);
GL.End();
  }
  GL.PopMatrix();
 }
 }
WaitForFixedUpdate
 類,繼承自YieldInstruction
 等待直到下一個固定幀率更新函數。 參見: FixedUpdate
 在coroutine中WaitFixedUpdate只能用於yield語句。
 yield new WaitForFixedUpdate();

WaitForSeconds
 類,繼承自YieldInstruction
 在給定的秒數內暫停協同進程的執行。
 在coroutine中WaitForSeconds只能用於yield語句。
 // 打印0
 print(Time.time);
 // 等待5秒
 yield new WaitForSeconds(5);
 // 打印5.0
 print(Time.time);
構造函數
◆ static function WaitForSeconds(seconds : float) : WaitForSeconds
 描述: 建立一個yield指令來等待給定的秒數。
 // 打印0
print(Time.time);
 // 等待5秒
 yield new WaitForSeconds(5);
 // 打印5.0
 print(Time.time);
屬性
AddComponentMenu
 類,從Attribute繼承。
 AddComponentMenu屬性容許你防止一個腳本到」Component」菜單的任何位置,而不只是」Component->Scripts」菜單。
 使用這個更好的組織Component菜單,這種方法能夠在添加腳本時改善工做流程。重要提示:須要重啓!
 // JavaScript的例子
 @script
 AddComponentMenu(「Transform/FollowTransform」)
 class FollowTransform : MonoBehaviour {
 }
 // C#的例子
 [AddComponentMenu(「Transform/FollowTransform」)]
 class FollowTransform : MonoBehaviour {
 }
構造函數
◆ static function AddComponentMenu(menuName : string) : AddComponentMenu
 描述: 這個腳本將根據menuName紡織在組件菜單中。menuName是組件的路徑」Rendering/DoSomething」。若是menuName爲」」組件將從菜單中隱藏。若是menuName爲」」組件將從菜單中隱藏。
ContextMenu

 類,從Attribute繼承
 ContextMenu屬性容許你添加命令到上下文菜單。
 在這個附加腳本的檢視面板中。當用戶選擇這個上下文菜單,該函數將被執行。
 這最適合用來從腳本中自動設置場景數據。這個函數必須是非靜態的。
 // JavaScript的例子
 @ContextMenu(「Do Something」)
 function DoSomething() {
 Debug.Log(「Perform operation」);
 }
 // C#的例子
 class ContextTesting : MonoBehaviour {
 // 在腳本的檢視面板中添加名爲」Do Something」的上下文菜單
 [ContextMenu(「Do Something」)]
 void DoSomething() {
  Debug.Log(「Perform operation」);
 }
 }
構造函數
◆ static function ContextMenu(name : string) : ContextMenu
 描述: 添加這個函數到組件的上下文菜單中。
 在這個附加腳本的檢視面板中。當用戶選擇這個上下文菜單後,該函數將被執行。
 這最適合用來從腳本中自動設置場景的數據。這個函數必須是非靜態的。
// JavaScript的例子
 @ContextMenu(「Do Something」)
 function DoSomething() {
 Debug.Log(「Perform operation」);
 }
 // C#的例子
 class ContextTesting : MonoBehaviour {
 // 在腳本的檢視面板中添加名爲」Do Something」的上下文菜單
 [ContextMenu(「Do Something」)]
 void DoSomething() {
  Debug.Log(「Perform operation」);
 }
 }
ExecuteInEditMode
類,從Attribute繼承
讓腳本在編輯模式執行。
默認的,腳本只在運行模式時執行。這可讓這個腳本在編輯模式時執行。
 @script
 ExecuteInEditMode();
 // 只是一個簡單的腳原本查找目標變換
 var target : Transform;
 function Update() {
 if(target) 
  transform.LookAt(target);
 }
HiddenInInspector
類,從Attribute繼承
 使一個變量不會出如今檢視面板中可是能被序列化。
 // 使p不顯示在檢視面板中,可是能被序列化
 @HiddenInInspector
 var p = 5;
NonSerialized
類,從Attribute繼承
 NonSerialized屬性標記一個變量沒有被序列化。
 用這種方法你能保持一個公開變量,而且Unity不會序列化它或在檢視面板中顯示它。
// p不會顯示在檢視面板中或被序列化
 // JavaScript的例子
 @System.NonSerialized
 var p = 5;
 // C#的例子
 class Test {
 // p不會顯示在檢視面板中或者被序列化
 [System.NonSerialized]
 public int p = 5;
 }
RPC
 類,從Attribute繼承
RenderBeforeQueues
 類,從Attribute繼承
 定義在哪一個渲染隊列中OnRenderObject將被調用的屬性。
 參見: Render.queues,MonoBehaviour.OnRenderObject
 // 在渲染不透明和透明物體以前OnRenderObject被調用
 @RenderBeforeQueues(1000, 2000)
 function OnRenderObject(queue : int) {
 // 作自定義的渲染
 }
構造函數
◆ static function RenderBeforeQueues(params args : int[]) : RenderBeforeQueues
 描述: 定義在哪一個渲染隊列中OnRenderObject將被調用。
 參見: Render.queues,MonoBehaviour.OnRenderObject
// 在渲染不透明和透明物體以前OnRenderObject被調用
 @RenderBeforeQueues(1000, 2000)
 function OnRenderObject(queue : int) {
 // 作自定義的渲染
 }
RequireComponent
 類,從Attribute繼承
 這個RequireComponent屬性自動添加所需組件做爲一個依賴。
 當使用RequireComponent添加一個腳本,這個須要的組件將自動被添加到遊戲物體上,這能夠用來避免設置錯誤。例如,一個腳本也許須要一個剛體添加到同一個遊戲物體上。使用RequireComponent這個將被自動完成,所以不會出現設置錯誤。
// C#例子,標記PlayerScript須要一個剛體
 [RequireComponent(typeof(Rigidbody))]
 class PlayerScript : MonoBehaviour {
 void FixedUpdate() {
  rigidbody.AddForce(Vector3.up);
 }
 }
構造函數
◆ static function RequireComponent(requiredComponent : Type) : RequireComponent
描述: 請求添加一個組件。
◆ static function RequireComponent(requiredComponent : Type, requiredComponent2 : Type) : RequireComponent
描述: 請求添加兩個組件。
◆ static function RequireComponent(requiredComponent : Type, requiredComponent2 : Type, requiredComponent3 : Type) : RequireComponent 
描述: 請求添加三個組件。
Serializable
 類,從Attribute繼承
 序列化屬性容許你在檢視面板中嵌入一個類的子屬性。
 你能夠使用這個來在檢視面板中顯示一個變量,相似於Vector3顯示在檢視面板中。名稱和一個三角形能夠展開它的屬性。你須要從System.Object派生一個類,並給它Serializable屬性。在JavaScript中Serializable屬性是隱式的並非必須的。
 class Test extends System.Object {
 var p = 5;
 var c = Color.white;
 }
 var test = Test();
 // C#的例子: 
 [System.Serializable]
 class Test {
 public int p = 5;
 public Color c= Color.white;
 }
枚舉
AnimationBlendMode
 枚舉
 由Animation.Play函數使用。

◆ AnimationBlendMode.Additive
描述: 動畫將被附加。
◆ AnimationBlendMode.Blend
 描述: 動畫將被混合
AudioVelocityUpdateMode
 枚舉
 描述: 一個AudioSource或AudioListener什麼時候被更新。

◆ AudioVelocityUpdateMode.Auto
描述: 若是源或偵聽器附加在一個Rigidbody上就以固定更新循環更新它,不然使用動態的。
◆ AudioVelocityUpdateMode.Dynamic
描述: 以動態的更新循環更新源或者偵聽器。
◆ AudioVelocityUpdateMode.Fixed
描述: 以固定的更新循環更新源或者偵聽器。
CameraClearFlags
 枚舉
 Camera.clearFlags值用來決定在渲染一個Camera時清除什麼。
 參見: camera組件

◆ CameraClearFlags.Depth
描述: 只清除深度緩存。
 這將留下前一幀的顏色或者任何被顯示的東西。
 // 只清除深度緩存
 camera.clearFlags = CameraClearFlags.Depth;
 參見: Camera.clearFlags屬性,camera組件
◆ CameraClearFlags.Nothing
描述: 不清除任何東西。
 這將留下前一幀的顏色的深度緩存或者任何被顯示的東西。
 // 不清除任何東西
 camera.clearFlags = CameraClearFlags.Nothing;
 參見: Camera.clearFlags屬性,camera組件
◆ CameraClearFlags.Skybox
描述: 用天空盒清除。
 若是沒有設置天空盒,相機將繼續使用backgroundColor來清除。
 // 用天空盒清除
 camera.clearFlags = CameraClearFlags.Skybox;
 參見: Camera.clearFlags屬性,camera組件,Render設置
◆ CameraClearFlags.SolidColor
描述: 用背景顏色清除
 camera.clearFlags = CameraClearFlags.SolidColor;
 參見: Camera.clearFlags屬性,camera組件,Camera.backgroundColor屬性
CollisionFlags
 枚舉
 CollisionFlags是由CharacterController.Move返回的一個bitmask。
 它給你一個角色和其餘任何物體碰撞的大概位置。

◆ CollisionFlags.Above
描述: CollisionFlags是由CharacterController.Move返回的一個bitmask。它給你一個角色和其餘任何物體碰撞的大概位置。
 function Update() {
 var controller : CharacterController = GetComponent(CharacterController);
 if(controller.collisionFlags == CollisionFlags.None)
  print(「Free floating!」);
 if(controller.collisionFlags & CollisionFlags.Sides)
  print(「Touching sides!」);
 if(controller.collisionFlags == CollisionFlags.Sides)
  print(「Only touching sides, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Above)
  print(「Touching ceiling!」);
 if(controller.collisionFlags == CollisionFlags.Above)
  print(「Only touching ceiling, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Below)
  print(「Touching ground!」);
 if(controller.collisionFlags == CollisionFlags.Below)
  print(「Only touching ground, nothing else!」);
 }
◆ CollisionFlags.Below
描述: CollisionFlags是由CharacterController.Move返回的一個bitmask。它給你一個角色和其餘任何物體碰撞的大概位置。
 function Update() {
var controller : CharacterController = GetComponent(CharacterController);
 if(controller.collisionFlags == CollisionFlags.None)
  print(「Free floating!」);
 if(controller.collisionFlags & CollisionFlags.Sides)
  print(「Touching sides!」);
 if(controller.collisionFlags == CollisionFlags.Sides)
  print(「Only touching sides, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Above)
  print(「Touching ceiling!」);
 if(controller.collisionFlags == CollisionFlags.Above)
  print(「Only touching ceiling, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Below)
  print(「Touching ground!」);
 if(controller.collisionFlags == CollisionFlags.Below)
  print(「Only touching ground, nothing else!」);
 }
◆ CollisionFlags.None
描述: CollisionFlags是由CharacterController.Move返回的一個bitmask。它給你一個角色和其餘任何物體碰撞的大概位置。
 function Update() {
 var controller : CharacterController = GetComponent(CharacterController);
 if(controller.collisionFlags == CollisionFlags.None)
  print(「Free floating!」);
 if(controller.collisionFlags & CollisionFlags.Sides)
  print(「Touching sides!」);
 if(controller.collisionFlags == CollisionFlags.Sides)
  print(「Only touching sides, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Above)
  print(「Touching ceiling!」);
 if(controller.collisionFlags == CollisionFlags.Above)
  print(「Only touching ceiling, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Below)
  print(「Touching ground!」);
 if(controller.collisionFlags == CollisionFlags.Below)
  print(「Only touching ground, nothing else!」);
 }
◆ CollisionFlags.Sides
描述: CollisionFlags是由CharacterController.Move返回的一個bitmask。它給你一個角色和其餘任何物體碰撞的大概位置。
 function Update() {
 var controller : CharacterController = GetComponent(CharacterController);
 if(controller.collisionFlags == CollisionFlags.None)
  print(「Free floating!」);
 if(controller.collisionFlags & CollisionFlags.Sides)
  print(「Touching sides!」);
if(controller.collisionFlags == CollisionFlags.Sides)
  print(「Only touching sides, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Above)
  print(「Touching ceiling!」);
 if(controller.collisionFlags == CollisionFlags.Above)
  print(「Only touching ceiling, nothing else!」);
 if(controller.collisionFlags & CollisionFlags.Below)
  print(「Touching ground!」);
 if(controller.collisionFlags == CollisionFlags.Below)
  print(「Only touching ground, nothing else!」);
 }
ConfigurableJointMotion
 枚舉
 沿着6個軸限制ConfigurableJoint的移動。

◆ ConfigurableJointMotion.Free
描述: 沿着這個軸的運動將是徹底自由和徹底無約束的。
◆ ConfigurableJointMotion.Limited
描述: 沿着這個軸的運動將被分別限制。
◆ ConfigurableJointMotion.Locked 
描述: 沿着這個軸的運動將被鎖定。
ConnectionTesterStatus
 枚舉

◆ ConnectionTesterStatus.Error 
描述:
◆ ConnectionTesterStatus.PrivateIPHasNATPunchThrough 
描述: 私有地址被檢測到而且能作NAT穿透。
◆ ConnectionTesterStatus. PrivateIPNoNATPunchThrough 
描述: 私有地址被檢測到而且不能作NAT穿透。
◆ ConnectionTesterStatus.PublicIPIsConnectable
描述: 公有的IP地址被檢測到而且遊戲的偵聽端口能夠經過互聯網訪問。
◆ ConnectionTesterStatus.PublicIPNoServerStarted 
描述: 公有的IP地址被檢測到可是服務器沒有被初始化而且沒有偵聽端口。
◆ ConnectionTesterStatus.PublicIPPortBlocked
描述: 公有的IP地址被檢測到可是它的端口不能經過互聯網鏈接。
◆ ConnectionTesterStatus.Undetermined
描述: 測試結果未知,還在進行中。
CubemapFace
 枚舉
 Cubemap面。
 被Cubemap.GetPixel和Cubemap.SetPixel。

 PositiveX  右面(+x)
 NegativeX 左面(-x)
 PostiveY  上面(+y)
 NegativeY 下面(-y)
 PostiveZ  前面(+z)
 NegativeZ 後面(-z)
EventType
 枚舉
 UnityGUI輸入和處理事件的類型。
 參見: Event.type, Event,GUI腳本手冊。

◆ EventType.ContexClick
描述: 用戶使用右鍵單機(或者在mac上的Control+單機)。
 若是是窗口的應用,應該顯示一個上下文菜單。在編輯器中只發送。
◆ EventType.DragExited
描述: 只限於編輯器,存在的拖放操做。
 參見: DragAndDrop類
◆ EventType.DragPerform
描述: 只限於編輯器,拖放操做執行。
 參見: DragAndDrop類
◆ EventType.DragUpdated
描述: 只限於編輯器,拖放操做更新。
 參見: DragAndDrop類
◆ EventType.ExecuteCommand
 描述: 執行特殊的命令(例如,拷貝和粘貼)。
 「Copy」,」Cut」,」Paste」,」Delete」,」FrameSelected」,」Duplicate」,」Sele, ctAll」
◆ EventType.Ignore
 描述: Event應該被忽略。
 這個事件被臨時禁用並應該被忽略。
◆ EventType.KeyDown
 描述: 一個鍵盤按鍵被按下。
 使用Event.character查看什麼被鍵入。使用Event.keyCode處理箭頭,home/end或其餘任何功能鍵,或者找到哪一個物理鍵被按下。這個事件根據端用戶鍵盤的重複設置來重複發送。
 注意按鍵能夠來自不一樣的事件,一個是Event.keyCode,另外一個是Event.chatacter,根據鍵盤佈局,多個Event.keyCode能夠產生一個Event.character事件。
◆ EventType.KeyUp
 描述: 一個鍵盤按鍵被釋放。
 使用Event.keyCode查看哪一個物理按鍵被釋放。注意根據系統和鍵盤佈局的不一樣,Event.character也許不包含任何字符。
◆ EventType.Layout
 描述: 一個佈局事件。
 這個事件先於其餘任何事件被髮送。這是一個幾次來執行任何初始化,它被用於自動佈局系統。
◆ EventType.MouseDown
描述: 鼠標按鍵被按下。
 當任何鼠標按鍵被按下的時候發送該事件 - 使用Event.button決定哪一個按鍵被按下。
◆ EventType.MouseDrag
描述: 鼠標被拖動。
 鼠標移動而且按鍵被按下 – 拖動鼠標。使用Event.mousePosition和Event.delta來決定鼠標移動。
◆ EventType.MouseMove
描述: 鼠標被移動。
鼠標移動,沒有任何按鍵被按下。使用Event.mousePosition和Event.delta來肯定鼠標移動。
◆ EventType.MouseUp
 描述: 鼠標按鍵被釋放。
 當任何鼠標按鍵被釋放時發送該事件。使用Event.button決定哪一個按鍵被釋放。
◆ EventType.Repaint
 描述: 一個重繪事件。每幀發送一個。
 首先處理全部的其餘事件,而後這個重繪事件被髮送。
◆ EventType.ScrollWheel
 描述: 滾輪被滾動。
 使用Event.delta決定X和Y的滾動量。
◆ EventType.Used
 描述: 已處理的事件。
 這個事件已經被其餘的一些控件使用並應該被忽略。
◆ EventType.ValidateCommand
 描述: 驗證特殊的命令(例如,拷貝和粘貼)。
 「Copy」,」Cut」,」Paste」,」Delete」,」FrameSelected」,」Duplicate」,」SelectAll」等等,只在編輯器中發送。
FilterMode
 紋理的過濾模式。對應於texture.inspector中的設置。
 參見: Texture.filterMode,texture.assets

◆ FilterMode.Bilinear
 描述: 雙線性過濾 – 紋理被平均採樣。
 renderer.material.mainTexture.filterMode = FilterMode.Bilinear;
 參見: Texture.filterMode,texture assets
◆ FilterMode.Point
 描述: 點過濾 – 紋理像素變得近乎斑駁。
 renderer.material.mainTexture.filterMode = FilterMode.Point;
 參見: Texture.filterMode,texture assets
◆ FilterMode.Trilinear
 描述: 三線性過濾 – 紋理被平均採樣並在mipmap等級之間混合。
 renderer.material.mainTexture.filterMode = FilterMode.Trilinear;
 參見: Texture.filterMode,texture assets
FocusType
 被GUIUtility.GetControlID使用來通知UnityGUI系統給定的空間可否獲取鍵盤焦點。


◆ FocusType.Keyborad
描述: 這是一個什麼時候的鍵盤控制。在全部平臺上它都能有輸入焦點。用於TextField和TextArea控件。
◆ FocusType.Native
描述: 這個空間能夠在Windows下獲取焦點,可是在Mac下不能。用於按鈕,複選框和其餘的「可按下」物體。
◆ FocusType.Passive
描述: 這個控件永遠不能接收鍵盤焦點。
ForceMode
 Rigidbody.AddForce如何使用力的選項。

◆ ForceMode.Acceleration
 描述: 添加一個牛頓力到這個剛體,忽略它的質量。
 這個模式不依賴於剛體的質量。所以推和旋轉的應用將不會受到剛體質量的影響,相對於ForceMode.Force這將以相同的設置移動每一個剛體而忽略它們的質量差異。這個模式更像一個加速度而不是速度。在這個模式線,應用到物體的力參數的單位是距離/時間^2。
◆ ForceMode.Force
 描述: 添加一個牛頓力到這個剛體,使用它的質量。
 這個模式依賴於剛體的質量。所以,必須對較大的質量的物體應用更多的力來推進或旋轉它。這模式更像一個加速度而不是速度。在這個模式線,應用到物體的力的參數的單位是質量*距離/時間^2。
◆ ForceMode.Impulse
 描述: 用剛體的質量改變它的速度。
 這個模式依賴於剛體的質量。所以,必須對較大質量的物體應用更多的力來推進或旋轉
它。這模式更像一個速度而不是加速度。在這個模式線,應用到物體的力的參數是質量*距離/時間。
◆ ForceMode.VelocityChange
 描述: 改變剛體的速度。忽略它的質量。
 這個模式不依賴於剛體的質量。所以推和旋轉的應用將不會受到剛體質量的影響。這可用於控制不一樣尺寸的飛船而不考慮質量差異。在這個模式,應用到物體的力的參數的單位是距離/時間。
HideFlags
Bit蒙板,能夠控制對象銷燬和在檢視面板中的可視性。

◆ HideFlag.DontSave
描述: 這個物體將不會被保存到場景。當一個新的場景被加載時它將不會被銷燬。
 使用DestroyImmediate手工清理這個物體是你的責任,不然它將泄漏。
◆ HideFlags.HideAndDontSave
描述: 不顯示在層次視圖中而且不保存到場景的組合。
 這個最經常使用於那些由腳本建立並純粹在它控制之下的物體。
◆ HideFlags.HideInHierarchy
描述: 若是這個對象是儲存在一個資源中,這個對象將不會顯示在層次視圖中而且不會顯示在工程視圖中。
◆ HideFlags.HideInInspector
描述: 不能在檢視面板中查看。
◆ HideFlags.NotEditable
描述: 這個物體在檢視面板中不可編輯。
ImagePosition
 在GUIStyle中圖片和文本如何被放置。
值 
◆ ImagePosition.ImageAbove
描述: 圖片在文本上面。
◆ ImagePosition.ImageLeft
 描述: 圖片在文本左側。
◆ ImagePosition.ImageOnly
 描述: 只有這個圖片被顯示。
◆ ImagePosition.TextOnly
 描述: 只有這個文本被顯示。
JointDriveMode
 ConfigurableJoint試圖基於這個表示來達到這個位置/速度的目的。

◆ JointDriveMode.None
描述: 不用任何力來達到目標。
◆ JointDriveMode.Position
描述: 儘可能達到特定的位置。
◆ JointDriveMode.PositionAndVelocity
描述: 儘可能達到特定的位置和速度。
◆ JointDriveMode.Velocity
描述: 儘可能達到特定的速度。
JointProjectionMode
 該屬性用來決定在物體偏離太多的時候若是它吸附到約束位置。
 參見: ConfigurableJoint

◆ JointProjectionMode.None
描述: 不吸附。
◆ JointProjectionMode.PositionAndRotation
描述: 吸附到位置和旋轉。
◆ JointProjectionMode.PositionOnly
描述: 只吸附到位置。
KeyCode
 KeyCode是由Event.keyCode返回的。這些直接映射到鍵盤上的物理鍵。

 Backspace 退格鍵
 Delete  Delete鍵
 TabTab鍵
 Clear  Clear鍵
 Return  回車鍵
 Pause  暫停鍵
 Escape  ESC鍵
 Space  空格鍵
 Keypad0  小鍵盤0
        Keypad1  小鍵盤1
 Keypad2  小鍵盤2
 Keypad3  小鍵盤3
 Keypad4  小鍵盤4
 Keypad5  小鍵盤5
 Keypad6  小鍵盤6
 Keypad7  小鍵盤7
 Keypad8  小鍵盤8
 Keypad9  小鍵盤9
 KeypadPeriod 小鍵盤「.」
 KeypadDivide 小鍵盤「/」
 KeypadMultiply小鍵盤「*」
 KeypadMinus 小鍵盤「-」
 KeypadPlus 小鍵盤「+」
 KeypadEnter 小鍵盤「Enter」
 KeypadEquals 小鍵盤「=」
 UpArrow  方向鍵上
 DownArrow 方向鍵下
 RightArrow 方向鍵右
 LeftArrow 方向鍵左
 Insert  Insert鍵
 Home  Home鍵
 EndEnd鍵
 PageUp  PageUp鍵
 PageDown PageDown鍵
 F1功能鍵F1
        F2功能鍵F2
        F3功能鍵F3
        F4功能鍵F4
        F5功能鍵F5
        F6功能鍵F6
        F7功能鍵F7
 F8  功能鍵F8
 F9  功能鍵F9
 F10  功能鍵F10
 F11  功能鍵F11
 F12  功能鍵F12
 F13  功能鍵F13
 F14  功能鍵F14
 F15  功能鍵F15
 Alpha0 按鍵0
 Alpha1 按鍵1
 Alpha2 按鍵2
 Alpha3 按鍵3
 Alpha4 按鍵4
 Alpha5 按鍵5
 Alpha6 按鍵6
 Alpha7 按鍵7
 Alpha8 按鍵7
 Alpha9 按鍵9
 Exclaim ‘!’鍵
 DoubleQuote雙引號鍵
 Hash Hash鍵
 Dollar ‘$’鍵
 AmpersandAmpersand鍵
 Quote 單引號鍵
 LeftParen 左括號鍵
 RightParen右括號鍵
 Asterisk ‘ * ’鍵
 Plus  ‘ + ’鍵
 Comma ‘ , ’鍵
 Minus ‘ - ’鍵
 Period ‘ . ’鍵
 Slash ‘ / ’鍵
 Colon ‘ : ’鍵
 Semicolon‘ ; ’鍵
 Less  ‘ < ‘鍵
 Equals ‘ = ‘鍵
 Greater ‘ > ‘鍵
 Question ‘ ? ’鍵
        At  ‘@’鍵
 LeftBracket‘ [ ‘鍵
 Backslash ‘ \ ’鍵
 RightBracket‘ ] ’鍵
 Caret ‘ ^ ’鍵
 Underscore‘ _ ’鍵
 BackQuote‘ ` ’鍵
 A  ‘a’鍵
 B  ‘b’鍵
 C  ‘c’鍵
 D  ‘d’鍵
 E  ‘e’鍵
 F  ‘f’鍵
 G  ‘g’鍵
 H  ‘h’鍵
 I  ‘i’鍵
 J  ‘j’鍵
 K  ‘k’鍵
 L  ‘l’鍵
 M  ‘m’鍵
 N  ‘n’鍵
 O  ‘o’鍵
 P  ‘p’鍵
 Q  ‘q’鍵
 R  ‘r’鍵
 S  ‘s’鍵
 T  ‘t’鍵
 U  ‘u’鍵
 V  ‘v’鍵
 W  ‘w’鍵
 X  ‘x’鍵
 Y  ‘y’鍵
 Z  ‘z’鍵
 Numlock Numlock鍵
 Capslock 大小寫鎖定鍵
 ScrollLockScroll Lock鍵
 RightShift 右上檔鍵
 LeftShift 左上檔鍵
 RightControl右Ctrl鍵
 LeftControl左Ctrl鍵
 RightAlt 右Alt鍵
 LeftAlt 左Alt鍵
 LeftApple 左Apple鍵
 LeftWindows左Windows鍵
        RightApple右Apple鍵
 RightWindows右Windows鍵
 AltGr Alt Gr鍵
 Help  Help鍵
 Print  Print鍵
 SysReq Sys Req鍵
 Break Break鍵
 Mouse0 鼠標左鍵
 Mouse1  鼠標右鍵
 Mouse2 鼠標中鍵
 Mouse3 鼠標第3個按鍵
 Mouse4 鼠標第4個按鍵
 Mouse5  鼠標第5個按鍵
 Mouse6  鼠標第6個按鍵
 JoystickButton0手柄按鍵0
 JoystickButton1手柄按鍵1
 JoystickButton2手柄按鍵2
 JoystickButton3手柄按鍵3
 JoystickButton4手柄按鍵4
 JoystickButton5手柄按鍵5
 JoystickButton6手柄按鍵6
 JoystickButton7手柄按鍵7
 JoystickButton8手柄按鍵8
 JoystickButton9手柄按鍵9
 JoystickButton10手柄按鍵10
 JoystickButton11手柄按鍵11
 JoystickButton12手柄按鍵12
 JoystickButton13手柄按鍵13
 JoystickButton14手柄按鍵14
 JoystickButton15手柄按鍵15
 JoystickButton16手柄按鍵16
 JoystickButton17手柄按鍵17
 JoystickButton18手柄按鍵18
 JoystickButton19手柄按鍵19
 Joystick1Button0第一個手柄按鍵0
 Joystick1Button1第一個手柄按鍵1
 Joystick1Button2第一個手柄按鍵2
 Joystick1Button3第一個手柄按鍵3
 Joystick1Button4第一個手柄按鍵4
 Joystick1Button5第一個手柄按鍵5
 Joystick1Button6第一個手柄按鍵6
 Joystick1Button7第一個手柄按鍵7
 Joystick1Button8第一個手柄按鍵8
 Joystick1Button9第一個手柄按鍵9   
        Joystick1Button10第一個手柄按鍵10
 Joystick1Button11第一個手柄按鍵11
 Joystick1Button12第一個手柄按鍵12
 Joystick1Button13第一個手柄按鍵13
 Joystick1Button14第一個手柄按鍵14
 Joystick1Button15第一個手柄按鍵15
 Joystick1Button16第一個手柄按鍵16
 Joystick1Button17第一個手柄按鍵17
 Joystick1Button18第一個手柄按鍵18
 Joystick1Button19第一個手柄按鍵19
 Joystick2Button0第二個手柄按鍵0
 Joystick2Button1第二個手柄按鍵1
 Joystick2Button2第二個手柄按鍵2
 Joystick2Button3第二個手柄按鍵3
 Joystick2Button4第二個手柄按鍵4
 Joystick2Button5第二個手柄按鍵5
 Joystick2Button6第二個手柄按鍵6
 Joystick2Button7第二個手柄按鍵7
 Joystick2Button8第二個手柄按鍵8
 Joystick2Button9第二個手柄按鍵9
 Joystick2Button10第二個手柄按鍵10
 Joystick2Button11第二個手柄按鍵11
 Joystick2Button12第二個手柄按鍵12
 Joystick2Button13第二個手柄按鍵13
 Joystick2Button14第二個手柄按鍵14
 Joystick2Button15第二個手柄按鍵15
 Joystick2Button16第二個手柄按鍵16
 Joystick2Button17第二個手柄按鍵17
 Joystick2Button18第二個手柄按鍵18
 Joystick2Button19第二個手柄按鍵19
 Joystick3Button0第三個手柄按鍵0
 Joystick3Button1第三個手柄按鍵1
 Joystick3Button2第三個手柄按鍵2
 Joystick3Button3第三個手柄按鍵3
 Joystick3Button4第三個手柄按鍵4
 Joystick3Button5第三個手柄按鍵5
 Joystick3Button6第三個手柄按鍵6
 Joystick3Button7第三個手柄按鍵7
 Joystick3Button8第三個手柄按鍵8
 Joystick3Button9第三個手柄按鍵9
 Joystick3Button10第三個手柄按鍵10
 Joystick3Button11第三個手柄按鍵11
 Joystick3Button12第三個手柄按鍵12
 Joystick3Button13第三個手柄按鍵13
        Joystick3Button14第三個手柄按鍵14
 Joystick3Button15第三個手柄按鍵15
 Joystick3Button16第三個手柄按鍵16
 Joystick3Button17第三個手柄按鍵17
 Joystick3Button18第三個手柄按鍵18
 Joystick3Button19第三個手柄按鍵19
LightRenderMode
 Light如何被渲染。
 參見: light組件

◆ LightRenderMode.Auto
 描述: 自動選擇渲染模式。
 選擇是否渲染這個Light爲像素光或者頂點光源(建議缺省)。
 // 設置光源的渲染模式爲自動
 light.renderMode = LightRenderMode.Auto;
 參見: light組件
◆ LightRenderMode.ForcePixel
 描述: 強制Light爲像素光源。
 只將這個用於真正重要的光源,例如一個玩家的手電筒。
 // 強制光源爲像素光源
 light.renderMode = LightRenderMode.ForcePixel;
 參見: light組件
◆ LightRenderMode.ForceVertex
 描述: 強制Light爲頂點光源。
 這個選項對於背景光或遠處的光照是很是好的。
// 強制光源爲頂點光源
 light.renderMode = LightRenderMode.ForceVertex;
 參見: light組件
LightShadows
 Light的陰影投射選項。
 參見: light組件

◆ LightShadows.Hand
描述:投射「hard」陰影(沒有陰影過濾)
//設置光源爲投射硬陰影
Light.shadows=LightShadows.Hard;
參見:light component
◆LightShadows.None
描述:不投射陰影(默認)
//設置光源爲不投射陰影
Light.shadows=lightshadows.None;
參見:light component
 ◆LightShadows.Soft
描述:投射Soft陰影(帶有4倍PCF過濾)
//設置光源爲投射4倍過濾的軟陰影陰影
Light.shadows=lightshadows. Soft;
參見:light component
           LightType
Light的類型。
參見:Light.typelight component

◆LightType.Directional
描述:這個光源是一個直射光源。
參見:Light.type, light component
//製做一個直射光源
Light.type=LightType.Directional;
◆LightType.Point
描述:這個光源是一個點光源。
參見:Light.type,light component
//製做一個直射光源
Light.type=LightType.Point;
◆LightType.Spot
描述:這個光源是一個透射光源。
參見:Light.type, light component
//製做一個透射光源
Light.type=LightType.Spot;
                     MasterServerEvent

   RegistrationFailedGameName   註冊失敗,由於給出的遊戲名稱爲空。
   RegistrationFailedGameType    註冊失敗,由於給出的遊戲類型爲空。
   RegistrationFailedNoServer     註冊失敗,由於沒有服務器在運行。
   RegistrationSueceeded         註冊到主服務器成功,接受到確認。
   HostListReceived             從主服務器接受到一個主機列表 
NetworkConnectionError

 NoError
   RSAPublicKeyMismatch           咱們提供的RSA公匙與咱們所鏈接系統的不匹配。
   InvalidPassword                  服務器須要密碼而且拒絕咱們的連接,由於咱們沒有設置正確的密碼
   ConnecttionFailed                 鏈接失敗,可能由於內部鏈接性問題。
   TooManyConnectedPlayers          服務器到達最大限度,不能鏈接
   ConnectionBanned                 咱們被試圖鏈接到的系統禁止了(多是臨時的)
   AlreadyConnectedToAnotherServer   不能同時連接到兩個服務器,在再次鏈接以前關閉這個鏈接
   CreateSocketOrThreadFailure        試圖初始化網絡接口時出現內部錯誤,套接字可能已經被使用了
   IncorrectParameters                Connect函數具備不正確的參數
   EmptyConnectTarget               沒有給出連接目標
   InternalDirectConnectFailed         客戶端不能內部連接到位於相同網絡中的啓用了NAT的服務
   NATTargetNotConnected           咱們試圖鏈接到的NAT目標沒有鏈接到輔助服務器
   NATTargetConnectionLost          當試圖連接到NAT目標時,鏈接丟失

◆ ParticleRenderMode.Billboard
描述:做爲面向玩家的公告板渲染例子(默認)
◆ ParticleRenderMode.HorizentalBillboard
描述:做爲公告板渲染粒子,老是沿着Y軸
◆ ParticleRenderMode.SortedBillboard
描述:從後向前排序並做爲公告板渲染。
這個使用混合例子着色器看起來更好,可是由於排序邊得較慢
◆ ParticleRenderMode.Streteh
描述:在運動方向拉伸粒子
◆ ParticleRenderMode.VerticalBillboard
描述:做爲公告板渲染粒子,老是面向玩家,可是不沿着X軸旋轉
PhysicMaterialCombine
   描述:碰撞物體的物理材質如何被組合
參見:PhysicMaterial.InctionCombine,PhysicMaterial.boticeCombine

Average        平均兩個碰撞材質的摩擦/彈力
Multiply        兩個碰撞材質的摩擦/彈力相乘
Minimum       使用兩個碰撞材質的摩擦/彈力中較小的一個
Maximum       使用兩個碰撞材質的摩擦/彈力中較大的一個
PlayMode
   由Animation.Play函數使用

StopSameLayer    將中止在同一層上開始的全部動畫。當播放動畫的時候這個是默認值
   StopAll           中止全部由這個組件開始的動畫
PrimitiveType
   各類變量能夠經過使用GameObject.CreatePrimitive函數建立
   參見GameObject.CreatePrimitive

◆PrimitiveType Capsule
描述:膠囊幾何體
參見:GameObject.CreatePrimitive
//建立一個膠囊幾何體
functionsStart()}
var capsule=
GameObject.CreatePrimitive(PrimitiveType.Capsule);
}
◆PrimitiveType Cube
描述:立方體
參見:GameObject.CreatePrimitive
//建立一個立方體
functionsStart()}
var cube=
GameObject.CreatePrimitive(PrimitiveType.Cube);
}
◆PrimitiveType Cyhnder
描述:圓柱體
參見:GameObject.CreatePrimitive
//建立一個圓柱體
functionsStart()}
var cyhnder=
GameObject.CreatePrimitive(PrimitiveType.Cylinder);
}
◆PrimitiveType Plane
描述:平面幾何體
參見:GameObject.CreatePrimitive
//建立一個平面幾何體
functionsStart()}
var plane=
GameObject.CreatePrimitive(PrimitiveType.Plane);
}
◆PrimitiveType Sphere
描述:球形
參見:GameObject.CreatePrimitive
//建立一個球形
functionsStart()}
var sphere=
GameObject.CreatePrimitive(PrimitiveType.Sphere);
}
QualityLeve
   圖像質量等級
有六個質量等級能夠這樣,每一個等級的細節都在工程的Quality Sertings中設置
質量等級能夠在腳本中使用QualitySertings類來切換
參見:QualitySertings  currentlevel   QualityLeveSertings

◆QualityLeve.Beautiful
描述:「beautiful」質量等級
參見:QualitySertings  currentlevel   QualityLeveSertings
◆QualityLeve.Fantastic
描述:「fantastic」質量等級
參見:QualitySertings  currentlevel   QualityLeveSertings
◆QualityLeve.Fast
描述:「fast」質量等級
參見:QualitySertings  currentlevel   QualityLeveSertings
◆QualityLeve.Fastest
描述:「fastest」質量等級
參見:QualitySertings  currentlevel   QualityLeveSertings
◆QualityLeve.Good
描述:「good」質量等級
參見:QualitySertings  currentlevel   QualityLeveSertings
◆QualityLeve.Simple
描述:「simple」質量等級
參見:QualitySertings  currentlevel   QualityLeveSertings
QueueMode
   由Animation.Play函數使用

CompleteOmers    全部其餘動畫通知播放後開始播放
   PlayNow         馬上開始播放,若是你只是想開蘇建立一個複製動畫能夠使用這個
RPCmode
   用來選擇誰將接收這個RPC

Server            只發送到服務器
   Others            發送給全部人除了服務器   
   OthersBuffered     發送給每個,除了服務器,並添加到緩存
   All               發送到每一個人
   AllButFered        發送到每一個人並添加到緩存
RenderTextureFormat
   RenderTexture的格式
   參見:RenderTexture.fonmat,RenderTexture類

◆RenderTextureFormat ARGB32
描述:一個32位顏色的渲染紋理格式
   參見:RenderTexture,RenderTexture類
   ◆RenderTextureFormat.Depth
   描述:渲染紋理格式的深度
   深度格式用來渲染高精度「深度」值到一個渲染紋理,實際使用哪一個格式依賴於平臺,在OpenGL中,它是原始「深度組件」格式(一般是24或16位),在Direct3D9中它是32位浮點(R32F)格式,在編寫使用或渲染到深度紋理的shader時,必須確保它們可以工做在OpenGL和Direct3D中,參考depth textures documentation
   注意不是全部的顯卡支持深度紋理。使用SystemInfo supportsDepthRenderTextures來檢查是否支持
   參見:RenderTexture format,RenderTexture類,SystemInfo.supportsDepthRenderTextures
 
RigidbodyInterpolation
   Rigidbody插值模式
   對於那些被相機跟隨的主角色或交通工具,建議使用插值。對於任何其餘剛體建議不使用插值
   參見:RigidbodyInterpolation變量

◆RigidbodyInterpolation.Extrapolate
描述:外插值將基於當前速度預測剛體的位置
若是你有一個快速移動的物體,這個可以致使剛體在一幀中穿過碰撞器而後彈回
Rigidbody.interpolation=RigidbodyInterpolation.Extrapolate;
   參見:RigidbodyInterpolation變量
◆RigidbodyInterpolation.Interpolate
描述:插值老是有些以後可是比外插值更光滑
Rigidbody.interpolation=RigidbodyInterpolation. Interpolate;
   參見:RigidbodyInterpolation變量
◆RigidbodyInterpolation.None
描述:不插值
Rigidbody.interpolation=RigidbodyInterpolation.None;
   參見:RigidbodyInterpolation變量
RotationDriveMode
   用它本身的XYZ後者SlerpDrive控制ConfigurableJoint的旋轉

XYAndZ          使用XY&Z驅動
Slerp             使用Slerp驅動
RuntimePlatform
   應用程序運行的平臺。由Application platform返回

OSXEditor           OSX下Unity編輯器模式 
OSXPlayer            OSX上的播放器
WindowsPlayer        Windows上的播放器
OSXWebPlayer        OSX下的web播放器
OSXDashboard        OSX下Dashborard窗口
WindowsWebOlayer    Windows上的web播放器
WindowsEditor         Windows下Unity編輯器模式
ScaleMode
   繪製紋理的縮放模式


StretchToFill       縮放紋理以便徹底填充傳入GUI.DrawTexture的矩形
SealeAndCrop     縮放紋理,維持長寬比,這樣它徹底覆蓋傳遞到GUIDrawTexture的position矩形,若是紋理被描繪到具備不一樣長寬比的矩形上時,圖像被裁剪
ScaleToFit        縮放紋理,維持長寬比,這樣它徹底與傳遞到GUIDrawTexture的position矩形相匹配
SendMessageOptions
   如何發送一個消息的選項
   這個用在GameObject和Component的SendMessage和BroadcastMessage上

◆SendMessageOptions.DontRequireReceiver
描述:SendMessage不須要一個接收者
◆SendMessageOptions.RequireReceiver
描述:SendMessage須要一個接收者 
若是沒有找到接收者,將在控制檯上打印以錯誤(默認)
SkinQuality
   影響單個頂點的最大骨骼數量
   參見:SkinnedMeshRenderer.quality

Auto       從當前QualitySetings(默認)數中選擇骨骼數量
Bone1      僅使用1骨骼變形一個頂點,(最重要的骨骼被使用)
Bone2      僅使用2骨骼變形一個頂點,(最重要的骨骼被使用)
Bone4      僅使用4骨骼變形一個頂點
Space
   在那個座標空間中操做
   參見:Transform

World       相對於世界座標系統應用一個變換
Self         相對於局部座標系統應用一個變換
TerrainLighting
   Terrain光照模式
   參見:Treeainlighting,TerrainLightings,TerrainSettings

◆TerrainLighting Lightmap
描述:使用光照圖渲染地形
該地形只使用廣州圖,而且不會受到遊戲中光源的影響
參見:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings
◆TerrainLighting Pixel
描述:近處使用光源渲染地形,遠處使用高度圖
在遊戲中靠近觀察者的地形用光照,遠處使用高度圖混合,光源是頂點光照或像素光照模式,並可以有陰影
光照距離是(Terrain.treeBillboardDistance,QualitySettings.shadowDistance,Terrain.basemapDistance)的最小值
參見:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings
◆TerrainLighting Vertex
描述:使用頂點光照渲染地形
地形將以頂點光照模式被照亮,不使用光照貼圖,投射光源就像頂點光
參見:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings
TextAlignment
   多行文本應該如何被對齊
   這個是被GUIText.alignment屬性使用
   參見:GUI Text component

Left          文本行左對齊
Center        文本行居中對齊
Right         文本行右對齊
TextAnchor
   文本的錨點被放置在什麼位置
   這個是被GUIText.anchor屬性使用
   參見:GUI Text component

UpperLeft          文本被錨點在左上角
UpperCenter        文本被錨點在上邊,垂直居中
UpperRight         文本被錨點在右上角
MiddleLeft         文本被錨點在左邊,垂直居中
MiddleCenter       文本在水平和垂直方向上居中
MiddleRight        文本被錨點在右邊,垂直居中
LowerLeft          文本被錨點在左下角
LowerCenter        文本被錨點在下邊,垂直居中
LowerRight         文本被錨點在右上角
TextClipping
   GUI系統處理過大文本的以適合所分配矩形的方式

OverDow           文本隨意浮動在該元素以外
Clip               文本被裁剪以便放置在該元素以內
 
TextureFormat
   Texture的格式,從腳本建立紋理時使用這個。
   參見:Texture2D Texture2D,textureFormat

◆TextureFormat Alpha8
描述:只有alpha 的紋理格式
function Start(){
//建立一個新的只有alpha的紋理並將它賦予
//該渲染器材質
var texture=new Texture2D(128,128,TextureFormat,Alpht8,false),
rederer.material.mainTexture=texture;
}
參見:Texture2D Texture2D,textureFormat
◆TextureFormat ARGB32
描述:只有alpha 的彩色紋理格式
function Start(){
//建立一個新的紋理並將它賦予給渲染器材質
var texture=new Texture2D(128,128,TextureFormat,ARGB32,false),
rederer.material.mainTexture=texture;
}
參見:Texture2D Texture2D,textureFormat
◆TextureFormat DXT1
描述:一個壓縮的彩色紋理格式
參見:Texture2D Texture2D,textureFormat
◆TextureFormat DXT5
描述:帶有alpha通道的彩色壓縮紋理格式
參見:Texture2D Texture2D,textureFormat
◆TextureFormat RGB24
描述:一個彩色紋理格式
function Start(){
//建立一個新的紋理並將它賦予給渲染器材質
var texture=new Texture2D(128,128,TextureFormat,RGB32,false),
rederer.material.mainTexture=texture;
}
參見:Texture2D Texture2D,textureFormat
TextureWrapMode
   紋理的包裹模式,對應與texture inspector中的設置
   你能夠可以平鋪紋理(重複)或者映射一個紋理到物體上(裁剪) 
 
參見:Texture.wrapMode,texture assets

◆TextureFormat.Clamp
描述:裁剪紋理到邊界上最後一個像素
在映射一個紋理到物體上而且你不想紋理平鋪時,這個能夠避免包裹的不真實,UV座標將被裁剪到返回0….1.當UV大於1或小於0,將使用邊界上的最後一個像素
renderer.material.mainTexture.wrapMode=TextureWrapMode.Clamp;
參見:Texture.wrapMode,texture assets.
◆TextureWrapMode.Repear
描述:平鋪紋理,建立一個重複效果
當UV超出0….1範圍,整數部分將被忽略,這樣就建立了一個重複效果。
renderer.material.mainTexture.wrapMode=TextureWrapMode.Repear;
參見:Texture.wrapMode,texture assets.
WrapMode
   在沒有時間幀定義的地方如何對待時間

◆WrapMode.ClampForever
描述:播放動畫。當它到達末端時,它將保持在最後一幀但不會中止播放
這個可用於附加的動畫,當它們到達最大時不該該中止播放。
◆WrapMode.Default
描述:從動畫曲線中讀取重複模式,能夠被設置爲Loop或PingPong
◆WrapMode.Loop
描述:當時間到達動畫剪輯的末端,時間將從開始繼續。
動畫將不會中止播放
◆WrapMode.Once
描述:當時間到達動畫剪輯的末端,剪輯將自動中止播放
◆WrapMode.PingPong
描述:當時間到達動畫剪輯的末端時,時間將在開始和接受之間來回播放
動畫不會中止播放
3、 編輯器類
AnimationClipCurveData
   類
   一個AnimationClipCurveData對象包含全部在AnimationClip中表示一個特定曲線所須要的全部信息,這個曲線製做一個附加到遊戲物體/動畫骨骼上的組件/材質屬性的動畫。
  注意:這是一個編輯器類。爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
變量
◆ var curve:AnimationCurve
描述:實際的動畫曲線
◆ var path:string
描述:背動畫的遊戲物體/骨骼的路徑
◆ var propertyName:string
描述:被動畫的屬性的名稱
◆ var target:Object
描述:被動畫的組件/材質
◆ var type:Type
描述:被動畫的組件/材質類型
AnimationUtility
   類
   用於修改動畫剪輯的編輯器工具函數
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
類方法
◆ static funciton GetAllCurves(clip:AnimationClip,includeCurveData:boll=ture);
AmimationClipCurveData[]
描述:從一個特定的動畫剪輯上取回全部曲線
若是includeCurveData爲假,全部在返回結果中的動畫曲線將爲null,當你只想獲取曲線類型和名稱的列表時使用這個。
◆ static funciton GetAnimatableProperties(go:GameObject):AnimationClipCurveData[]
描述:取回附加在改遊戲物體上全部組件/材質上的全部可動畫的屬性
◆ static function GetEditorCurve(clip:AnimationClip,relativePath:string,type:Type,propertyName:string):AnimationCurve
描述:Unity自動在內部組合位置曲線,縮放曲線,選擇曲線
所以變換曲線老是組合的而且它們的關鍵幀老是全部關鍵幀點的聯合。在編輯器中動畫剪輯讓你指定特定的沒必要組合的編輯器曲線,所以它讓用戶以更直觀的方式編輯曲線。
◆ static function GetFloatValue(root:GameObject,relativePath:string,type:Type,propertyName:string,out data:float):bool
描述:經過採樣特定的遊戲對象上的一個曲線值獲得當前的浮點值
用來記錄關鍵幀
◆static function SetEditorCurve(clip:AnimationClip,relativePath:string,type:Type,propertyName:string,curve:AnimationClip):void
描述:Unity自動在內部組合位置曲線,縮放曲線,選擇曲線
所以變換曲線老是組合的而且它們的關鍵幀老是全部關鍵幀點的聯合。在編輯器中動畫剪輯讓你指定特定的沒必要組合的編輯器曲線,所以它讓用戶以更直觀的方式編輯曲線。
AssetDatabase
   類
   一個用來訪問資源並在資源上執行操做的接口
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
類方法
◆static funciton AddObjectToAsset(objectToAdd:bject,assetPath:string):vold
描述:添加objectToAdd到path上已有的資源中
請注意你應該只添加資源到asset資源,例如導入模型或紋理資源將丟失它們的數據
@MenuItem(」eObject/Create Matenal」)
satic function CreateMaterial(){
// 建立一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 給它添加一個動畫剪輯
var animationClip = new AnimationClip();
animationClip.name=「My Clip」;
AssetDatabase.AdObjectToAsset(animationClip,matcrial);
// 添加一個物體後重導入這個資源
// 不然這個改變只會顯示在保持工程的時候
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));
// 打印已建立資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆static funciton AddObjectToAsset(objectToAdd:Object,assetObject:Object):void
描述:添加objectToAdd到由assObject標識的已有資源中
請注意你應該只添加資源到asset資源,例如導入模型或紋理資源將在從新導入或退出時丟失它們的數據
@MenuItem(」GameObject/ Create Matenal」)
satic function CreateMaterial(){
// 建立一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 給它添加一個動畫剪輯
var animationClip = new AnimationClip();
animationClip.name=「My Clip」;
AssetDatabase.AdObjectToAsset(animationClip,matcrial);
// 添加一個物體後重導入這個資源
// 不然這個改變只會顯示在保持工程的時候
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));
// 打印已建立資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆ static funciton AddPathToGUID(path:string):string
描述:得到指定path上的資源GUID
◆ static funciton Contains(obj:Object):bool
◆ static funciton Contains(instanceID:int):bool
描述:對象是一個資源
當一個對象是一個資源的時候(對應與Assets文件夾中的一個文件)返回真,不然返回假(例如在場景中的物體,或在運行時建立的物體)
◆ static funciton CopyAsset(path:string,newPath:string):bool
描述:複製在path上的資源並將它存儲在newPaht
◆ static funciton CreateAsset(asset:Object,path:shring):void
描述:在路徑上建立一個新的資源,你必須確保路徑使用一個被支持的擴展名(材質用「mat」立方貼圖用「cubemap」皮膚用「GUISkin」動畫用「anim」而且其餘任意的資源用「asset」)
資源被建立後你能夠使用AssetDatabaseAddObjectToAsset添加更多資源到文件中,若是資源已經在path上,它將被刪除並建立新的資源
@MenuItem(」GameObject/ Create Matenal」)
satic function CreateMaterial(){
// 建立一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 打印已建立資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆ static funciton DeleteAsset(path:string):bool
描述:刪除路徑上的資源
若是資源被成功刪除返回真,若是它不存在或者不能被移除返回假
◆ static funciton GenerateUniqueAssetPath(path:string):string
描述:爲資源產生一個新的惟一路徑
◆ static funciton GetAssetPath(assetObject:Object):string
◆ static funciton GetAssetPath(instanceID:int):string
描述:返回相對於工程文件夾的路徑名,資源被存儲在哪裏
@MenuItem(」GameObject/ Create Matenal」)
satic function CreateMaterial(){
// 建立一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 打印已建立資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆ static funciton GetCachedIcon(path:string):Texture
描述:在給定的資源路徑中取回該資源的圖標
◆ static funciton GUIDToAssetPath(guid:string):string
描述:轉換GUID到它當前的資源路徑
◆ static funciton ImportAsset(path:string,options:ImportAssetOptions=ImportAssetOptions.Default):void
描述:導入路徑上的資源
◆ static funciton IsMainAsset(obj:Object):bool
描述:爲資源產生一個新的惟一路徑
◆ static funciton IsMainAsset(instaneeID:int):bool
描述:在工程窗口中,該資源是一個主資源
例如,一個導入的模型有一個遊戲物體做爲它的根,還有一些網格和子游戲物體,這個狀況下,根遊戲物體是一個主資源
◆ static funciton LoadAllAssetsAtPath(assetPath:string):boject
描述:返回assetPath上的全部資源物體的數值
某些資源文件也許包含多個物體(例如一個Maya文件可能包含多個網格和遊戲物體)assetPath是相對於工程文件夾的路徑
◆ static funciton LoadAllAssetsAtPath(assetPath:string,type:Type):Object
描述:返回給定路徑上的資源,若是它繼承自type
/assetPath是相對工程文件夾的路徑
◆ static funciton LoadMainAssetAtPath(assetPath:string):Object
描述:返回位於assetPath的主資源
/assetPath是相對工程文件夾的路徑
◆ static funciton MoveAsset(oldPath:string,newPath:string):string
參數
oldPath     這個資源的當前路徑
newPath    資源應該被移動到的路徑
返回:string  若是資源被成功移動這個是空字符串,不然是一個錯誤字符串
描述:從一個文件夾移動一個資源到另外一個文件夾
◆ static funciton MoveAssetToTrash(path:string):bool
描述:移動路徑上的資源到回收站
若是資源被成功移除返回真,不然爲假
◆static funciton OpenAsset(instanceID:int,lineNumber:int=-1):bool
◆static funciton OpenAsset(target:Object,lineNumber:int=-1):bool
描述:在外部編輯器中打開target資源,圖像處理程序或者建模工具,根據資源的類型
若是是一個文本文件,lineNumber指定文本編輯器選擇那一行
◆static funciton Refresh(options:ImportAssetOptions=ImportAssetOptions,Default):void
描述:導入任何改變的資源
導入任何已經改變了內容的或者被從工程文件夾中添加/移除的資源
◆ static funciton RenameAsset(pathName:string,newName:string)「string
參數
pathName             該資源的當前路徑
newName             該資源的新名稱
返回:string 若是資源被成功重命名,是一個空的字符串,不然是一個錯誤字符串
描述:重命名一個資源文件
◆static funciton SaveAssets():void
描述:將未保存的改變寫入磁盤
◆static funciton StartAssetEditing():void
描述:開始資源導入,這可讓你組織幾個資源導入爲一個更大的導入操做
◆static funciton StopAssetEditing():void
描述:中止資源導入,這可讓你組織幾個資源導入爲一個的導入操做
◆static funciton ValidateMoveAsset(oldPath:string,newPath:string):string
參數
oldPath              該資源的當前路徑
newName            這個資源應該被移動到的路徑
返回:string 若是資源被成功重命名,是一個空的字符串,不然是一個錯誤字符串
描述:檢查一個資源文件是否能夠被移動到另外一個文件夾(並不實際移動這個文件)
參加:AssetDatabase.MoveAsset
Assettlmporter
   類,繼承自Object
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
變量
◆var assetPath:string
描述:用於這個導入期的資源的路徑名
類方法
◆staric function GetAtPath(path:string):AssetImporter
描述:爲path處的資源收回資源導入期
參加:MobelImporter,TextmreLmporter,AudioImporter
繼承的成員
繼承的變量
Name             對象的名稱
hideFlags          該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstauceID      返回該物體的實例ID
繼承的類函數
Operatorbool       這個物體存在嗎
Instantlate         克隆original物體並返回這個克隆
Destroy           移除一個遊戲物體,組件或資源
DestryImnedinte    當即銷燬物體obj,強力建議使用Destroy代替
FindObjectsOFType 返回全部類型爲type的激活物體
FindObjectOFType  返回第一個類型爲type的激活物體
Operator==        比較兩個物體是否相同
Operator!=       比較兩個物體是否不相同
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷燬
AssetPostprocessor
   類
AssetPostprocessor讓你進入導入流水線而且在導入資源以前或以後運行腳本
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
   這樣你能夠在導入設置中重載缺省的值或者修改導入的數據,如紋理和網格
變量
◆var assetImporter:AssetImporter
描述:指向資源導入期
◆var assetPath:string
描述:被導入的資源的路徑名
◆var preview:Texture2D
描述:指定一個自定義的紋理到這個變量以便產生導入資源的預覽
函數
◆function GetPostprocessOrder():int
描述:重載導入期執行的順序
經過重載GetPostprocessOrder你可以排列後期處理執行的順序,優先級較小的將首先載入
◆function LogError(warning:string,context:Object=null):vold
描述:記錄一個導入錯誤到控制檯
傳遞一個資源做爲第二個參數來鏈接這個錯誤到編輯器中的資源
參見:DebugLogError
◆function LogWarning(warning:string,context:Object=null):vold
描述:記錄一個導入警告道控制檯
傳遞一個資源做爲第二個參數來鏈接這個警告到編輯器中的資源
參見:DebugLogError
消息傳遞
◆function OnAssignMaterialModer(renderer:Renderer):Material
描述:取得源材質
返回的材質將被賦予給渲染器,若是返回null,Unity將使用它的缺省材質找到產生方法來分配材質。soureeMaterial在模型導入並將被銷燬前,OnAssignMaterial以後直接從模型生成。
class MyMeshPostprocessor extends AssetPostprocessor {
    function OnAssignMaterialModel (material : Material, renderer : Renderer) : Material
    {
        var materialPath = "Assets/" + material.name + ".mat";
        // 查找在材質路徑上是否有一個材質
        // 關閉這個以便老是產生新材質
        if (AssetDatabase.LoadAssetAtPath(materialPath))
            return AssetDatabase.LoadAssetAtPath(materialPath);   
        // 使用specular shader建立一個新的資源
        // 其餘默認值來自模型
        material.shader = Shader.Find("Specular");
        AssetDatabase.CreateAsset(material, "Assets/" + material.name + ".mat");
        return material;
    }
}
◆function OnPostprocessAllAssets(importedAssets:string[],deletedAssets:string[],movedAssets:string[],movedFromPath:string[]):void
描述:OnPostprocessAllAssets在一些資源被導入後調用(資源進度欄到達末端)
class MyAllPostprocessor extends AssetPostprocessor {
    static function OnPostprocessAllAssets (
        importedAssets : String[],
        deletedAssets : String[],
        movedAssets : String[],
        movedFromAssetPaths : String[])
    {
        for (var str in importedAssets) {
            Debug.Log("Reimported Asset: " + str);
        }
        for (var str in deletedAssets) {
            Debug.Log("Deleted Asset: " + str);
        }
        for (var i=0;i<movedAssets.Length;i++) {
            Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]); 
        }
    }
}
◆ function OnPostprocessAudio (clip:AudioClip):void
描述:
◆ function OnPostprocessModel  (root:GameObject):void
描述:在子類中重載這個函數以便在模型徹底導入後得到通知
在一個預設被生成爲遊戲物體層次前,root是導入模型的根物體
class MyModelPostprocessor extends AssetPostprocessor {
    function OnPostprocessModel (g : GameObject) {
        Apply(g.transform);
    }
    // 添加網格碰撞器到每一個名稱中包含collider的遊戲物體上       
    function Apply (transform : Transform)
    {
        if (transform.name.ToLower().Contains("collider"))
        {
            transform.gameObject.AddComponent(MeshCollider);
        }
        
        // 循環
        for (var child in transform)
            Apply(child);
    }
}
◆ function OnPostprocessTexture  (texture:Teture2D):void
描述:在子類中重載這個函數以便在紋理被徹底導入並被存儲到磁盤上以前獲取一個通知
//後期處理全部防止文件夾
// "invert color" 中的文件,反轉他們的顏色
class InvertColor extends AssetPostprocessor {
    // 使用這個初始化
    function OnPostprocessTexture (texture : Texture2D) {
        // 後期處理之災文件夾
        // "invert color" 或它的子文件夾中的文件
        // var lowerCaseAssetPath = assetPath.ToLower();
        // if (lowerCaseAssetPath.IndexOf ("/invert color/") == -1)
         //return;
        for (var m=0;m<texture.mipmapCount;m++)
        {
            var c : Color[] = texture.GetPixels(m);
            for (var i=0;i<c.Length;i++)
            {
                c[i].r = 1 - c[i].r;
                c[i].g = 1 - c[i].g;
                c[i].b = 1 - c[i].b;
            }
            texture.SetPixels(c, m);
        }
        // 不須要設置每一個 mip map 等級圖片的像素你也能夠只修改最高mip等級的像素並使用texture.Apply(TRUE);來產生較低mip等級
    }
}
◆ function OnPreprocessAudio ():void
描述:
◆ function OnPreprocessModel():void
描述:在子類中重載這個函數以便在模型被導入前得到一個通知
這個可讓你爲模型的導入設置默認值
class MyMeshPostprocessor extends AssetPostprocessor {
    function OnPreprocessModel () {
        // 禁用材質生成,若是文件包含@號,代表他是動畫
        if (assetPath.Contains("@")) {
            var modelImporter : ModelImporter = assetImporter;
            modelImporter.generateMaterials = 0;
        }
    }
}
◆ function OnPostprocessTexture():void
描述:在子類中重載這個函數以便在紋理導入器運行前得到一個通知,
這個可讓你導入設置爲默認值
// Postprocesses all textures that are placed in a folder
// "invert color" to have their colors inverted.
class InvertColor extends AssetPostprocessor {
    // Use this for initialization
    function OnPostprocessTexture (texture : Texture2D) {
        // Only post process textures if they are in a folder
        // "invert color" or a sub folder of it.
//            var lowerCaseAssetPath = assetPath.ToLower();
//            if (lowerCaseAssetPath.IndexOf ("/invert color/") == -1)
//                return;
        for (var m=0;m<texture.mipmapCount;m++) {
            var c : Color[] = texture.GetPixels(m);
            for (var i=0;i<c.Length;i++)
            {
                c[i].r = 1 - c[i].r;
                c[i].g = 1 - c[i].g;
                c[i].b = 1 - c[i].b;
            }
            texture.SetPixels(c, m);
        }
        // Instead of setting pixels for each mip map levels, you can also
        // modify only the pixels in the highest mip level. And then simply use
        // texture.Apply(true); to generate lower mip levels.
    }
}
AudioImporter
   類
繼承自AssetImporter
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
  這個類的設置於Audio Import Settings中相同
變量
◆var channels:AudioImporterChannels
描述:導入音頻的聲道數
參見:AudioImporterChannels.
◆var compressionBitrate:float

描述:Ogg Verbix 壓縮比特率
這個值以比特率爲對單位,例如:128000應該是128kbps
◆var decompressOnLoad:bool
描述:Ogg Verbix音頻應該在加載時解壓
◆var format:AudioImporterFormat.
描述:導入音頻的格式
參見:AudioImporterFormat.
繼承的成員
繼承的變量
assetPath
name                       對象的名稱
hideFlags                    該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstanceID                返回該物體的實例ID
繼承的類函數
GetAtpath                  爲path處的資源取回資源導入器
Operatorbool                這個物體存在嗎
Instannate                  克隆original物體並返回這個克隆
Desiroy                    移除一個遊戲物體,組件或資源
DestroyImmediate           當即銷燬物體obj,強力建議使用Destroy代替
FindObjectsOFType         返回全部類型爲type的激活物體
FindObjectOFType          返回第一個類型爲type的激活物體
Operator==                比較兩個物體是否相同
Operator!=               比較兩個物體是否不相同
DontDestroyOnLoad        加載新場景時確保物體target不被自動銷燬
ModelImporter
   類
繼承自AssetImporter
ModerlImporter讓你從腳本編輯器中修改model的導入設置
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
  這個類的設置與Mesh Import Settings中相同
變量
◆var addCollider:bool
描述:爲導入的網格添加網格編輯器
◆var bakeIK:bool
描述:導入時烘焙IK
◆var clipAnimations:ModelImporterClipAnimation[]
描述:風格動畫獲得的動畫剪輯
參見splitAnimation,ModelImporterClipAnimation
◆var generateAnimations:ModelImporterGenerateAnimations
描述:動畫生成選項
參見ModelImporterGenerateAnimations
◆var generateMaterials:ModelImporterGenerateMaterials
描述:材質生成選項
參見ModelImporterGenerateMaterials
◆var globalScale:float
描述:用於導入的全局縮放因子
◆var normalSmoothingAngle:float
描述:平滑角度來計算髮現
計算法線時,尖銳的邊緣怎樣被變成一個硬邊
參見:recalculateNormals
◆var recalculateNormals:bool
描述:導入時是否從新計算法線
參見:normalSmoothingAngle
◆var reduceKeyframes:bool
描述:爲動畫執行關鍵幀縮減
◆var splitAnimations:bool
描述:導入時動畫是否應嘎被分割爲多個剪輯
參見:clipAnimations
◆var splitTangentsAcrossSeams:bool
描述:切線是否跨越uv接縫分割
◆var swapUVChannels:bool
描述:導入時切換主副UV通道
繼承的成員
繼承的變量
assetPath
name                       對象的名稱
hideFlags                    該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstanceID                返回該物體的實例ID
繼承的類函數
GetAtpath                  爲path處的資源取回資源導入器
operatorbool                這個物體存在嗎
Instannate                  克隆original物體並返回這個克隆
Desiroy                    移除一個遊戲物體,組件或資源
DestroyImmediate           當即銷燬物體obj,強力建議使用Destroy代替
FindObjectsOFType         返回全部類型爲type的激活物體
FindObjectOFType          返回第一個類型爲type的激活物體
Operator==                比較兩個物體是否相同
Operator!=               比較兩個物體是否不相同
DontDestroyOnLoad        加載新場景時確保物體target不被自動銷燬
TextureImporter
   類
繼承自AssetImporter
紋理導入器可讓你從編輯器腳本中修改Texture2D的導入設置
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
  這個類的設置與Texture Import Settings.中相同
變量
◆var borderMipmap:bool
描述:保持產生mipmap時的相同紋理邊界
◆var convertToNormalmap:bool
描述:轉化高度圖爲法線貼圖
◆var correetGamma:bool
描述:mipmap應使用伽馬校訂生成
參見:mipmapEnabled
◆var fadeout:bool
描述:淡出mip等級爲灰色
參見:mipmapEnabled
◆var generateCubemap:TextureImporterGeneraterCubemap
描述:立方貼圖生成模式
參見:TextureImporterGeneraterGubemap
◆var grayscaleToAlpha:float
描述:從灰度生成alpha通道
◆var heightmapScal:int
描述:最大紋理尺寸
較大的紋理將在導入時被縮小
◆var mipmapEnabled:bool
描述:爲這個紋理生成Mipmap
◆var mipmapFadeDistanceEnd:float
描述:紋理徹底淡出的mip等級
參見:mipmapEnabled,fadeout,mipmapFadeDist, anceStart
◆var mipmapFadeDistanceStart:float
描述:紋理開始淡出的mip等級
參見:mipmapEnabled,fadeout,mipmapFadeDistanceStart
◆var mipmapFilter:TextureImporterMipFilter
描述:Mipmap過濾模式
參見:TextureImporterNormalFilter,mipmapEnabled
◆var normalmapFilter: TextureImporterNormalFilter
描述:法線圖過濾模式
參見:TextureImporterNormalFilter,convertTONormalmap
◆var npotSeale:TextureImporterNPOTScale
描述:非2的幕次尺寸紋理的縮放模式
參見:TextureImporterNPOTScale
◆var recommendedTextureFormat:TextureImporterFormat
描述:自動決定最好的紋理格式(只讀)
參見:TextureImporterFormat
◆var textureFormat:TextureImporterFormat
描述:導入紋理的格式      參見:TextureImporterFormat
繼承的成員
繼承的變量
assetPath
name                       對象的名稱
hideFlags                    該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstanceID                返回該物體的實例ID
繼承的類函數
GetAtpath                  爲path處的資源取回資源導入器
operatorbool                這個物體存在嗎
Instannate                  克隆original物體並返回這個克隆
Desiroy                    移除一個遊戲物體,組件或資源
DestroyImmediate           當即銷燬物體obj,強力建議使用Destroy代替
FindObjectsOFType         返回全部類型爲type的激活物體
FindObjectOFType          返回第一個類型爲type的激活物體
Operator==                比較兩個物體是否相同
Operator!=               比較兩個物體是否不相同
DontDestroyOnLoad        加載新場景時確保物體target不被自動銷燬
AssetPostprocessor
   類
AssetPostprocessor讓你進入導入流水線並在導入資源以前或以後運行腳本
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
  這樣你能夠在導入設置中重載缺省的值或則修改導入的數據,如貼圖和網格
變量
◆var assetImporter:AssetImporter
描述:指向資源導入器
◆var assetPath:string
描述:被導入的資源的路徑名
◆var preview:Texture2D
描述:指定一個自定義的紋理到這個變量以便產生導入資源的預覽
函數
◆function GetPostprocessOrder():int
描述:重載導入器執行的順序
經過重載GetPostprocessOrder你可以排列後期處理執行的順序,優先級較小的將首先載入
◆function LogError(warning:string,context:Object=null):vold
描述:記錄一個導入錯誤到控制檯
傳遞一個資源做爲第二個參數來鏈接這個錯誤到編輯器中的資源
參見:DebugLogError
◆function LogWarning(warning:string,context:Object=null):vold
描述:記錄一個導入警告道控制檯
傳遞一個資源做爲第二個參數來鏈接這個警告到編輯器中的資源
參見:DebugLogError
消息傳遞
◆function OnAssignMaterialModer(renderer:Renderer):Material
描述:取得源材質
返回的材質將被賦予給渲染器,若是返回null,Unity將使用它的缺省材質找到產生方法來分配材質。soureeMaterial在模型導入並將被銷燬前,OnAssignMaterial以後直接從模型生成。
class MyMeshPostprocessor extends AssetPostprocessor {
    function OnAssignMaterialModel (material : Material, renderer : Renderer) : Material
    {
        var materialPath = "Assets/" + material.name + ".mat";

        // 查找在材質路徑上是否有一個材質
        // 關閉這個以便老是產生新材質
        if (AssetDatabase.LoadAssetAtPath(materialPath))
            return AssetDatabase.LoadAssetAtPath(materialPath);
        
        // 使用specular shader建立一個新的資源
        // 其餘默認值來自模型
        material.shader = Shader.Find("Specular");
        AssetDatabase.CreateAsset(material, "Assets/" + material.name + ".mat");
        return material;
    }
}
◆function OnPostprocessAllAssets(importedAssets:string[],deletedAssets:string[],movedAssets:string[],movedFromPath:string[]):void
描述:OnPostprocessAllAssets在一些資源被導入後調用(資源進度欄到達末端)
class MyAllPostprocessor extends AssetPostprocessor {
    static function OnPostprocessAllAssets (
        importedAssets : String[],
        deletedAssets : String[],
        movedAssets : String[],
        movedFromAssetPaths : String[])
    {
        for (var str in importedAssets) {
            Debug.Log("Reimported Asset: " + str);
        }
        for (var str in deletedAssets) {
            Debug.Log("Deleted Asset: " + str);
        }
        for (var i=0;i<movedAssets.Length;i++) {
            Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]);
        }
    }
}
◆ function OnPostprocessAudio (clip:AudioClip):void
描述:
◆  function OnPostprocessGameObjectWithUserProperties (root : GameObject, propNames : string[], values : object[]) : void

描述:在導入文件時,爲每一個至少附加了一個用戶屬性的遊戲物體調用
propNames是一個string[ ],其中包含了全部找到的屬性的名稱,該值是一個object[ ],包含了全部實際的值,這個能夠是Vector4, bool, string, Color, float, int.類型
典型的運用是從存儲在3dmax中的對象中讀取「用戶數據」基於什麼用戶數據被寫入到對象,你能夠決定以不一樣的方式來後處理遊戲物體。下面的列子中,若是用戶數據字符串包含「addboxcollider」添加一個簡單的BoxCollider組件
lass MyPostprocessor extends AssetPostprocessor {
    function OnPostprocessGameObjectWithUserProperties (
        go : GameObject,
        propNames : String[],
        values : System.Object[]
        )
    {
        for (var i : int =0; i!= propNames.Length; i++)
        {     
            var propName : String = propNames[i];
            var value : Object = values[i];
            Debug.Log("Propname: "+propName+" value: "+values[i]);
            if (value.GetType() == String)
            {
                var s : String = value;
                if (s.Contains("addboxcollider")) go.AddComponent(BoxCollider);
            }  
            if (value.GetType() == Vector4)
 {
                var v : Vector4 = value;
                // do something useful.
            }
            if (value.GetType() == Color)
            {
                var c : Color = value;
                // do something useful.
            }
            if (value.GetType() == int)
            {
                var myInt : int = value;
                // do something useful.
            }
            if (value.GetType() == float)
            {
                var myFloat : float = value;
                // do something useful.
            }
        }
    }
}
◆ function OnPostprocessModel  (root:GameObject):void
描述:在子類中重載這個函數以便在模型徹底導入後得到通知
在一個預設被生成爲遊戲物體層次前,root是導入模型的根物體
class MyModelPostprocessor extends AssetPostprocessor {
    function OnPostprocessModel (g : GameObject) {
        Apply(g.transform);
    }
    // 添加網格碰撞器到每一個名稱中包含collider的遊戲物體上       
    function Apply (transform : Transform)
    {
        if (transform.name.ToLower().Contains("collider"))
        {
            transform.gameObject.AddComponent(MeshCollider);
        }
        // 循環
        for (var child in transform)
            Apply(child);
    }
}
◆ function OnPostprocessTexture  (texture:Teture2D):void
描述:在子類中重載這個函數以便在紋理被徹底導入並被存儲到磁盤上以前獲取一個通知
//後期處理全部放置文件夾
// "invert color" 中的文件,反轉他們的顏色
class InvertColor extends AssetPostprocessor {
    // 使用這個初始化
    function OnPostprocessTexture (texture : Texture2D) {
        // 後期處理只在文件夾
        // "invert color" 或它的子文件夾中的文件
 // var lowerCaseAssetPath = assetPath.ToLower();
        // if (lowerCaseAssetPath.IndexOf ("/invert color/") == -1)
         //return;
        for (var m=0;m<texture.mipmapCount;m++)
        {
            var c : Color[] = texture.GetPixels(m);
            for (var i=0;i<c.Length;i++)
            {
                c[i].r = 1 - c[i].r;
                c[i].g = 1 - c[i].g;
                c[i].b = 1 - c[i].b;
            }
            texture.SetPixels(c, m);
        }
        // 不須要設置每一個 mip map 等級圖片的像素你也能夠只修改最高mip等級的像素並使用texture.Apply(TRUE);來產生較低mip等級
    }
}
◆ function OnPreprocessAudio ():void
描述:
◆ function OnPreprocessModel():void
描述:在子類中重載這個函數以便在模型被導入前得到一個通知
這個可讓你爲模型的導入設置默認值
class MyMeshPostprocessor extends AssetPostprocessor {
    function OnPreprocessModel () {
        // 禁用材質生成,若是文件包含@號,代表他是動畫
        if (assetPath.Contains("@")) {
            var modelImporter : ModelImporter = assetImporter;
            modelImporter.generateMaterials = 0;
        }
    }
}
◆ function OnPostprocessTexture():void
描述:在子類中重載這個函數以便在紋理導入器運行前得到一個通知,
這個可讓你導入設置爲默認值
class MyTexturePostprocessor extends AssetPostprocessor
{
    function OnPreprocessTexture () {
        // 自動轉化任何文件名中帶有 "_bumpmap"的紋理文件爲法線貼圖
        
        if (assetPath.Contains("_bumpmap")) {
            var textureImporter : TextureImporter = assetImporter;
            textureImporter.convertToNormalmap = true;
        }
    }
}
BuildPipeline

類方法
◆ static function BuildAssetBundle (mainAsset : Object, assets; Object[].pathName : string,options ; BuildAssetBundleOptions = BuildAssetBundleOptions CollectDependencies
BuildAssetBundleOptionsCompleteAssets) : bool
描述:構建資源bundle(Unity Pro only).
   建立一個包含assets集合的壓縮Unity3D文件。AssetBundles能夠包含工程文件夾中的任何資源,這可讓你流式下載任何類型的資源數據,完整設置的預設,紋理,網格,動畫,顯示在工程窗口中的任何類型的資源。mainAsset 讓你指定一個特定的物體,它能夠方便地使用AssetBundle.mainAsset取回。這個壓縮的資源bundle文件將被存儲在pathName.options容許你自動地包含依賴性或者老是包含完整的資源而不只僅是引用的對象。
參見:AssetBundle 類,WWW.assetBundle.
◆ Static function BuildPlayer (levels : string[],locationPathName : string,target:BuildTarget,
Options : BuildOptions) : string.
描述:構建播放器(Unity Pro only).
/levels/是被包含在構建中的場景,(若是 levels 爲空,當前打開的場景將被構建)locationPathName 是應用程序將被保存的路徑,target 是將被構建的 BuildTarget, options是一些額外的選項,如紋理壓縮,調試信息剝離。
◆ Static function PopAssetDependencies():void
描述:讓你管理不一樣資源bundle和播放器構建之間的交叉引用和依賴性,
若是一個資源bundles依賴於另外一個資源dundles,確保依賴的資源bundles經過
WWW類加載是你的責任。
當你放入資源依賴性時它將共享那個層上的全部資源,放入遞歸地繼承前一個依賴關係,PushAssetDependencies和PopAssetDependencies必須成對出現。
@\lenulten(「Assets/Auto Build Asset Bundles」)
Static function ExportResource(){
    //對全部下面的資源bundles文件啓用交叉引用直到//咱們調用PopAssetDependencies
QuikPipcliPushAssetDcpenclencies();
Var options=
     BuildAssetBundleOptions CollectDependencies]
     BuildAssetBundleOptions CompleteAssets;
//全部後續資源共享這個資源bundles中的資源
//它是由你來確保共享的資源bundle
//優先於其餘資源加載
Buldpipeline.BuldAssertBundle(
AssetDatabase.LoadMainAssetAtPath(「assets/artwork/lerpzuv.tif」,
null,」Sharde.unity3d」,options);
//經過收入和彈出資源bundle,這個文件
//將共享資源,可是後面的資源bundle將不會共享這個資源中的資源
BuildPipeline.PushAssetDependencies();
BuildPipeline.PushAssetBundle(
AssetDatabaseLoadMainAssetAtPath(「Asset Artwork/Lerpztbx’),
Null,」Lerpz.unity3d」,options);
BuildPipeline.PushAssetDependencies();
BuildPipeline.PushAssetDependencies();
BuildPipeline.PushAssetDependencies();
}
參見:PushAssetDependencies,BuidAssetBundle.
DragAndDrop

編輯器拖放操做。
注意:這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」using UnityEditor,」。
類變量
◆ Static var activeControlID : int
描述:
◆ Static var objectReferences :Object[]
描述:被拖動的objects的引用。
沒有返回null,若是沒有物體引用可用返回一個空的數組。
參見:paths,PrepareStartDrag,StartDrag,
◆ Static var paths :string[]
描述:被拖放的文件名
沒有返回null。若是沒有路徑可用返回一個空的數組。
參見: objectReferences, PrepareStartDrag,StartDrag,.
◆ Static var visualMode:DragAndDropVisualMode
描述:拖放的視覺標誌
默認爲DragAndDropVisualMode Link
function OnGUI ()
{
var eventType = Event.current.type;
if (eventType == EventType.DragUpdated || eventType == EventType.DragPerform)
{
// Show a copy icon on the drag
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
if (eventType == EventType.DragPerform)
DragAndDrop.AcceptDrag();
Event.current.Use();
}
}
類方法
◆ Static function AcceptDrag() : void
描述:接收拖動操做。
◆ Static function GetGenericData(type : string) : object
描述:
◆ Static function PrepareStartDrag() : void 
描述:清除拖放數據。
清楚全部存儲在拖放物體中的數據並準備它,這樣你能夠爲初始化一個拖動操做寫入它。
參見:StartDrag,paths,objectReferences.
function OnGUI ()
{
if (Event.current.type == EventType.MouseDrag)
{
// 清除拖動數據
DragAndDrop.PrepareStartDrag ();
// 設置咱們須要拖動什麼
DragAndDrop.paths = { "/Users/joe/myPath.txt" };
// 開始拖動
DragAndDrop.StartDrag ("Dragging title");
// 確保咱們以後沒有人使用這個事件
Event.current.Use();
}
}
◆ Static function SetGenericData(type:string,data:object) : void 
描述:
◆ Static function StartDrag(title:string): void 
描述:開始拖動操做。
用當前拖動物體狀態初始化一個拖動操做。使用paths和/或objectReferences來設置拖動狀態。
參見:PrepareStartDrag,paths,objectReferences.
function OnGUI ()
{
if (Event.current.type == EventType.MouseDrag)
{
// 清除拖動數據
DragAndDrop.PrepareStartDrag ();
// 設置咱們須要拖動什麼
DragAndDrop.paths = { "/Users/joe/myPath.txt" };
// 開始拖動
DragAndDrop.StartDrag ("Dragging title");
// 確保咱們以後沒有人使用這個事件
Event.current.Use();
}
}
DrawGizmo
類,繼承自System Attribute
DrawGizmo屬性容許你爲任何類型的Compartent提供一個gizmo渲染器。
注意:這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」using UnityEditor」.
  目前,z你只能爲引擎組件提供gizmo繪製,全部的gizmo繪製方法須要是靜態的,
//若是這個光源沒有被選擇將調用RenderLightGizmo函數
//當拾取時gizmo被繪製
@DrawGizmo (GizmoType.NotSelected | GizmoType.Pickable)
static function RenderLightGizmo (light : Light, gizmoType : GizmoType)
{
var position = light.transform.position;
// 繪製光源圖標
// 在內置的光源Gizmo上面一點)
Gizmos.DrawIcon (position + Vector3.up, "Light Gizmo.tiff");
// 咱們選擇了嗎? Draw a solid sphere surrounding the light
if ((gizmoType & GizmoType.SelectedOrChild) != 0)
{
// 使用一個較爲明亮的顏色代表這是一個活動對象.
if ((gizmoType & GizmoType.Active) != 0)
Gizmos.color = Color.red;
else
Gizmos.color = Color.red * 0.5;
Gizmos.DrawSphere (position, light.range);
}
}
/*
//若是它被選擇或者它的子被選擇繪製這個gizmo.
// 這是最經常使用的渲染一個gizmo的方法
@DrawGizmo (GizmoType.SelectedOrChild)
//只有它是激活物體時繪製這個gizmo.
@DrawGizmo (GizmoType.Active)]
*/
/// C# 例子
using UnityEditor;
using UnityEngine;
class GizmoTest
{
/// 若是這個光源沒有被選擇調用RenderLightGizmo函數.
/// 當拾取時gizmo被繪製.
[DrawGizmo (GizmoType.NotSelected | GizmoType.Pickable)]
static void RenderLightGizmo (Light light, GizmoType gizmoType)
{
Vector3 position = light.transform.position;
// 繪製光源圖標
// (在內置的光源Gizmo上面一點)
Gizmos.DrawIcon (position + Vector3.up, "Light Gizmo.tiff");
// 咱們選擇了嗎?圍繞光源繪製一個球體
if ((gizmoType & GizmoType.SelectedOrChild) != 0)
{
//使用一個較爲明亮的顏色代表這是一個活動對象.
if ((gizmoType & GizmoType.Active) != 0)
Gizmos.color = Color.red;
 
else
Gizmos.color = Color.red * 0.5F;
Gizmos.DrawSphere (position, light.range);
}
}
}
/*
//若是它被選擇或者它的子被選擇繪製這個gizmo.
// 這是最經常使用的渲染一個gizmo的方法
 [DrawGizmo (GizmoType.SelectedOrChild)]
//只有它是激活物體時繪製這個gizmo.
[DrawGizmo (GizmoType.Active)]
*/
構造函數
◆ Static function DrawGizmo(gizmo: GizmoType): DrawGizmo
描述:定義什麼時候Gizmo應該被調用以便繪製。
參見: GizmoType
◆ Static function DrawGizmo(gizmo: GizmoType,drawnGizmoType:Type):DrawGizmo
描述:同上,drawnGizmoType決定要繪製的Gizmo物體是什麼類型的。
若是drawnGizmoType爲null,這個類型將由該函數的第一個參數決定。
Editor
類,繼承自ScriptableObject
一個基類,能夠從它派生自定義的編輯器,使用這個給你的物體建立自定義的檢視面板和編輯器。
注意:這是一個編輯器類。爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」using UnityEditor,」。
經過使用CustomEditor屬性能夠附加Editor到一個自定義的組件。
JavaScript例子:
//這個例子爲一個」MyPlayer」物體顯示一個自定義的檢視面板。
它有兩個變量,speed和ammo.
@CustomEditor(MyPlayer)
class MyPlayerEditor extends Editor
{
function OnInspectorGUI()
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.PrefixLabel("Speed");
target.speed = EditorGUILayout.Slider(target.speed, 0, 100);
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
EditorGUILayout.PrefixLabel("Ammo");
target.ammo = EditorGUILayout.IntField(target.ammo);
EditorGUILayout.EndHorizontal();
}

變量
◆ Var target:Object
描述:被檢視的對象
消息傳遞
◆ Function OnInspectorGUI():void
描述:實現這個函數來製做一個自定義的檢視面板。
◆ Function OnSceneGUI() : void
描述:在場景視圖中讓編輯器處理一個事件。
在OnSceneGUI中你能夠作,例如網格編輯,地形繪製或高級的gizmos,若是調用Eventcurrent,Use(),該事件將被編輯處理並不會被場景視圖使用。
繼承的成員
繼承的變量
name                       對象的名稱
hideFlags                    該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstanceID                返回該物體的實例ID
繼承的消息傳遞
OnEnable                    物體被加載時調用該函數
OnDisable                   當可編輯物體超出範圍時調用這個函數
繼承的類函數
CreateInstance               使用className建立一個可編程物體的實例。
operatorbool                這個物體存在嗎
Instannate                  克隆original物體並返回這個克隆
Destroy                    移除一個遊戲物體,組件或資源
DestroyImmediate           當即銷燬物體obj,強力建議使用Destroy代替
FindObjectsOFType         返回全部類型爲type的激活物體
FindObjectOFType          返回第一個類型爲type的激活物體
Operator==                比較兩個物體是否相同
Operator!=               比較兩個物體是否不相同
DontDestroyOnLoad        加載新場景時確保物體target不被自動銷燬。
EditorApplication

注意:這是一個編輯器類。爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」using UnityEditor,」。
類變量
◆ Static var applicationContentsPath:string
描述:Unity編輯器內容文件的路徑(只讀)
這個內容文件夾包含用來構建播放器的一些內部文件。
◆ Static var applicationPath:string
描述:返回Unity編輯器的路徑(只讀)
參見:applicationContentsPath
◆ Static var currentScene:string
描述:用戶當前打開的場景的路徑(只讀)。
◆ Static var isPaused : bool
描述:編輯器當前暫停?
可編輯地改變暫停狀態,就像按下主工具欄上的Pause按鈕。
參見:isPlaying.
◆ Static var isPlaying : bool 
描述:編輯器當前處於播放模式?
isPaying的設置會延遲直到到該幀中全部的腳本代碼已經完成。
◆ Static var isPlayingOrWillChangePlaymode : bool 
描述:編輯器當前處於播放模式,或者將切換到播放模式?(只讀)
當編輯器在完成某些任務(例如,在腳本被重編譯以後)後將切換到播放模式時,這個將返回真。
參見:isPlaying,isCompiling.
類方法
◆ Static function Beep():void
描述:播放系統嗶嗶聲
//在鼠標按下事件中播放聲音
Function OnGUI(){
  if (Event.current.type == EventType.MouseDrag)
       EditorApplication.Bceo();
}
◆ Static function Exit(returnValue:int):void
描述:退出Unity編輯器。
調用這個函數將當即退出,不會詢問保存改變,所以你將丟失數據!
◆ Static function LockReloadAssemblies():void
描述:當不方便的時候阻止部件的加載。
例如,在拖動操做的時候,你也許想阻止部件的重加載以便在拖動過程當中不會丟失狀態。
每一個LockReloadAssemblies必須與UnLockReloadAssemblies匹配,不然腳本將不會被卸載。Unity自動在鼠標按下的時候阻止重加載。
參見:EditorApplication. UnLockReloadAssemblies
◆ Static function NewScene():void
描述:建立新的場景。
◆ Static function OpenScene(path:string):bool
描述:打開位於Path的場景。
當前打開的場景不會被保存,使用SaveSceneIfUserWantsTo來作這個。
◆ Static function OpenSceneAdditive(path:string):void
描述:打開位於path的附加場景。
◆ Static function SaveAssets ():void
描述:保存全部尚未寫到磁盤的可序列化資源(例如,材質)
也確保資源數據庫被寫入。
◆ Static function SaveCurrentSceneIfUserWantsTo():bool
描述:詢問用戶是否要保存打開的場景。
你可能想在打開其餘場景或建立一個新的場景時調用這個函數。返回真表示你想繼續。返回爲假表示用戶要取消這個操做,所以不該該打開其餘場景。
◆ Static function SaveScene(path:string):bool
描述:保存場景到path.
◆ Static function Step():voidl
描述:執行單幀步進。
就像你按下了主打工具欄上的Step按鈕。
◆ Static function UnLockReloadAssemblies ():voidl
描述:必須在LockReloadAssemblies以後調用,來重啓用集合的加載。
參見:EditorApplication, LockReloadAssemblies
                  EditorGUILayout
     類
     EditorGUI的自動佈局版本
 注意:這是一個編輯器類。爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」using UnityEditor,」。
類方法
◆ Static function BeginHorizontal(params options:GUILayoutOption[]):Rect
◆ Static function BeginHorizontal(style:GUIStyle, params options:GUILayoutOption[]):Rect
參數
Style             可選的GUIStyle
Options           一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置
            參見:GUIlayout,Width,GUILayout,Height,GUILayout MinWidth,
                  GUILayout MaxWidth, GUILayout MinHeight, GUILayout MaxHeight
                  GUILayout ExpandWidth, GUILayout ExpandHeight,
描述:開始一個水平組並獲取它的矩形。
這是GUILayout BeginHorizontal的擴展,用來製做組合控件。
//組合按鈕
Rect r = EditorGUILayout.BeginHorizontal ("Button");
if (GUI.Button (r, GUIContent.none))
Debug.Log ("Go here");
GUILayout.Label ("I'm inside the button");
GUILayout.Label ("So am I"); 
EditorGUILayout.EndHorizontal ();
◆ Static function BeginScrollView (scrollPosition : Vector2,  params options:GUILayoutOption[]):Vector2

◆ Static function BeginScrollView (scrollPosition : Vector2,  alwaysShowHorizontal:bool,alwaysShowVertical:bool, params options:GUILayoutOption[]):Vector2

◆ Static function BeginScrollView (scrollPosition : Vector2,  horizontalScrollbar::GUIStyle,verticalScrollbar:GUIStyle, params options:GUILayoutOption[]):Vector2
 
static function BeginScrollView (scrollPosition : Vector2, alwaysShowHorizontal : bool, alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle, params options : GUILayoutOption[]) : Vector2
參數
scrollPosition              用來顯示的位置
alwaysShowHorizontal       可選的參數用來老是顯示水平滾動條,若是爲黑線留空,它就只在ScrollView中的內容比滾動提升時顯示。
alwaysShowVertical         可選的參數用來老是顯示垂直滾動條,若是爲黑線留空,它就只在ScrollView中的內容比滾動提升時顯示。
horizontalScrollbar          用於水平滾動條的可選GUIStyle,若是不設置,將使用當前GUISkin的horizontalScrollbar
verticalScrollbar               用於垂直滾動條的可選GUIStyle,若是不設置,將使用當前GUISkin的verticalScrollbar風格。
返回:Vector2,修改過的scrollPosition,回傳這個變量,以下的例子。
描述:開始有個自動佈局滾動條。
這個就像GUILayout BeginScrollView同樣,可是更像應用程序且應該在編輯器中使用。
◆ static function BeginToggleGroup (label : string, toggle : bool) : bool
◆ static function BeginToggleGroup (label : GUIContent, toggle : bool) : bool
參數
label           顯示在開關控件上的標籤
toggle          開關組的啓用狀態
返回bool – 用戶選擇的啓用狀態。
描述:開始一個帶有開關的組,以便一次啓用或禁用其中的全部控件。
參見:EndToggleGroup
// 設置
settingsOn = EditorGUILayout.BeginToggleGroup("Settings", settingsOn);
backgroundColor = EditorGUILayout.ColorField(backgroundColor);
soundOn = EditorGUILayout.Toggle(soundOn, "Turn on sound"); 
EditorGUILayout.EndToggleGroup();
◆ static function BeginVertical (params options : GUILayoutOption[ ]) : Rect
◆ static function BeginVertical (style : GUIStyle, params options : GUILayoutOption[ ]) :Rect
參數
Style               可選的GUIStyle
Options             一個可選的佈局選項的列表,它用來指定程序的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
                    參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
描述:開始一個垂直組並獲取它的矩形。
這是GUILayout.BeginVertical的擴展,用來製做組合控件。
// 組合按鈕
Rect r = EditorGUILayout.BeginVertical ("Button");
if (GUI.Button (r, GUIContent.none))
Debug.Log ("Go here");
GUILayout.Label ("I'm inside the button");
GUILayout.Label ("So am I"); 
EditorGUILayout.EndVertical ();
◆ static function ColorField (value : Color, params options : GUILayoutOption[ ]) : Color
◆ static function ColorField (label : string, value : Color, params options : GUILayoutOption[ ]) : Color
◆ static function ColorField (label : GUIContent, value : Color, 
params options : GUILayoutOption[ ]) : Color
參數
Label          顯示在該域前面的可選標籤。
Value          用於編輯的顏色
Options        一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置。
               參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回:Color- 用戶選擇的顏色
描述:製做一個用來選擇Color的域
◆ static function EndHorizontal () : void
描述:關閉一個開始於BeginHorizontal的組
◆ static function EndScrollView () : void
描述:結束開始於BeginScrollView的滾動視。
◆ static function EndToggleGroup () : void
描述:關閉一個開始於BeginToggleGroup
// Settings
settingsOn = EditorGUILayout.BeginToggleGroup("Settings", settingsOn);
backgroundColor = EditorGUILayout.ColorField(backgroundColor);
soundOn = EditorGUILayout.Toggle(soundOn, "Turn on sound"); 
EditorGUILayout.EndToggleGroup();
◆ static function EndVertical () : void
描述:關閉一個開始於BeginVertical的組
◆ static function EnumPopup (selected : System.Enum, params options : GUILayoutOption[]) : System.Enum
◆ static function EnumPopup (selected : System.Enum, style : GUIStyle, params options : GUILayoutOption[ ]) : System.Enum
◆ static function EnumPopup (label : string, selected : System.Enum, params options : GUILayoutOption[ ]) : System.Enum
◆ static function EnumPopup (label : string, selected : System.Enum, style : GUIStyle, 
params options : GUILayoutOption[ ]) : System.Enum
◆ static function EnumPopup (label : GUIContent, selected : System.Enum, params options : GUILayoutOption[ ]) : System.Enum
◆ static function EnumPopup (label : GUIContent, selected : System.Enum, style : GUIStyle, params options : GUILayoutOption[ ]) : System.Enum
參數
label         該域前面可選的標籤  
selected      該域顯示的選項
style          可選的GUIStyle  
options        一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由Sryle定義的設置。
              參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回:floar-被用戶選擇的選項
描述:製做一個彈出式選擇域
使用當前選擇的值做爲參數並返回用戶選擇的值。
◆ static function FloatField (value : float, params options : GUILayoutOption[]) : float
◆ static function FloatField (value : float, style : GUIStyle, params options : GUILayoutOption[]) : float
◆ static function FloatField (label : string, value : float, params options : GUILayoutOption[]) : float
◆ static function FloatField (label : string, value : float, style : GUIStyle, params options : GUILayoutOption[]) : float
◆ static function FloatField (label : GUIContent, value : float, params options : GUILayoutOption[]) : float
◆ static function FloatField (label : GUIContent, value : float, style : GUIStyle, params options : GUILayoutOption[]) : float
參數
Label             顯示在浮點域前面的可選標籤。
Value             用於編輯的值
Style              可選的GUIStyle
Options            一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
                   參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回:float – 用戶輸入的值
描述:製做一個文本域以便輸入浮點數。
◆ static function Foldout (foldout : bool, content : string, style : GUIStyle = EditorStyles.foldout) : bool
◆ static function Foldout (foldout : bool, content : GUIContent, style : GUIStyle = EditorStyles.foldout) : bool
 
參數
Foldout                顯示摺疊狀態
Content             顯示的標籤
Style                可選的GUIStyle
返回:bool – 用戶選擇的摺疊狀態,若是爲真,應該渲染子對象。
描述:製做一個左側帶有摺疊箭頭的標籤。
這能夠用來建立一個樹或文件夾結構,這裏子對象只在夫展開的時候顯示
◆ static function InspectorTitlebar (foldout : bool, targetObj : Object) : bool
參數
Foldout                   摺疊狀態用這個箭頭顯示。
targetObj                  使用該標題欄的對象(例如組件)
返回:bool – 用戶選擇的摺疊狀態
描述:製做一個檢視窗口標題欄
該標題欄有一個摺疊箭頭,一個幫助圖標和一個設置菜單,設置菜單依賴於所提供的對象的類型。
◆ static function IntField (value : int, params options : GUILayoutOption[ ]) : int
◆ static function IntField (value : int, style : GUIStyle, params options : GUILayoutOption[ ]) : int
◆ static function IntField (label : string, value : int, params options : GUILayoutOption[ ]) : int
◆ static function IntField (label : string, value : int, style : GUIStyle, params options : GUILayoutOption[ ]) : int
◆ static function IntField (label : GUIContent, value : int, params options : GUILayoutOption[ ]) : int
◆ static function IntField (label : GUIContent, value : int, style : GUIStyle, params options : GUILayoutOption[ ]) : int
參數
Label                        顯示在該整型域前面的可選標籤。
Value                        用於編輯的值
Style                         可選的GUIStyle
Options                      一個可選的佈局選項的列表,它用來指定額外的佈局
                             屬性。任何在這裏設置的值將覆蓋由style定義的設置
                             參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回:int – 用戶輸入的值。
描述:製做一個文本域以便輸入整數。
◆  static function IntPopup (selectedValue : int, displayedOptions : string[ ], optionValues : int[ ], params options : GUILayoutOption[ ]) : int 
◆  static function IntPopup (selectedValue : int, displayedOptions : string[ ], optionValues : 
int[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆  static function IntPopup (selectedValue : int, displayedOptions : GUIContent[ ], optionValues : int[ ], params options : GUILayoutOption[ ]) : int 
◆  static function IntPopup (selectedValue : int, displayedOptions : GUIContent[ ], optionValues : int[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆  static function IntPopup (label : string, selectedValue : int, displayedOptions : string[ ], optionValues : int[ ], params options : GUILayoutOption[ ]) : int 
◆  static function IntPopup (label : string, selectedValue : int, displayedOptions : string[ ], optionValues : int[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆  static function IntPopup (label : GUIContent, selectedValue : int, displayedOptions : GUIContent[ ], optionValues : int[ ], params options : GUILayoutOption[ ]) : int 
◆  static function IntPopup (label : GUIContent, selectedValue : int, displayedOptions : GUIContent[ ], optionValues : int[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
         參數
         Label                該域前面可選的標籤。
         selectedValue        該域顯示的選項的值
         displayedOptions     一個帶有顯示X顯示選項的數組,用戶能夠從中選擇。
         optionValues         一個爲每一個選項存儲值得數組。
         Style                可選的GUIStyle
          Options             一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
                               參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
           返回:int – 被用戶選擇的選項的值
           描述:製做一個整形彈出式選擇域
           使用當前選擇的整數做爲參數並返回用戶選擇的整數。
◆  static function IntSlider (value : int, leftValue : int, rightValue : int, params options : GUILayoutOption[ ]) : int 
◆  static function IntSlider (label : string, value : int, leftValue : int, rightValue : int, params options : GUILayoutOption[ ]) : int 
◆ static function IntSlider (label : GUIContent, value : int, leftValue : int, rightValue : int, params options : GUILayoutOption[ ]) : int 
     參數
     Label                     該滑桿前面可選的標籤。
     Value                     滑桿顯示的值。這個決定可拖動滑塊的位置。
     leftValue                  滑桿左端的值
 
     rightValue                 滑桿右端的值
     options                    一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置
                               參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
      返回:int – 被用戶設置的值
      描述:製做一個用戶能夠拖動到滑桿能夠在min和max以前改變一個整數值。
◆ static function LabelField (label : string, label2 : string, params options : GUILayoutOption[ ]) : void
參數
Label                      該域前面的標籤
Label2                     顯示在右側的標籤
Options                     一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
                           參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
描述:製做一個標籤域(用來顯示只讀信息)
◆   static function LayerField (layer : int, params options : GUILayoutOption[ ]) : int 
◆   static function LayerField (layer : int, style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆   static function LayerField (label : string, layer : int, params options : GUILayoutOption[ ]) : int 
◆   static function LayerField (label : string, layer : int, style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆   static function LayerField (label : GUIContent, layer : int, params options : GUILayoutOption[ ]) : int 
◆   static function LayerField (label : GUIContent, layer : int, style : GUIStyle, params options : GUILayoutOption[ ]) : int 
      參數
      Label                       該域前面可選的標籤
      Layer                       顯示在該域中的層
      Style                        可選的GUIStyle
      Options                      一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
                                   參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
        返回:int – 用戶選擇的層
 
        描述:製做一個層選擇域
◆ static function ObjectField (obj : Object, objType : System.Type, params options : GUILayoutOption[ ]) : Object 
◆ static function ObjectField (label : string, obj : Object, objType : System.Type, params options : GUILayoutOption[ ]) : Object
◆ static function ObjectField (label : GUIContent, obj : Object, objType : System.Type, params options : GUILayoutOption[ ]) : Object
參數
Label                           該域前面可選的標籤
Obj                             該域顯示的對象
objType                         對象的類型
options                          一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置。
                                       參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight  
     返回:Object – 被用戶設置的對象
     描述:製做一個物體放置槽域
◆   static function PasswordField (password : string, params options : GUILayoutOption[ ]) : string 
◆   static function PasswordField (password : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
◆   static function PasswordField (label : string, password : string, params options : GUILayoutOption[ ]) : string 
◆   static function PasswordField (label : string, password : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
◆   static function PasswordField (label : GUIContent, password : string, params options : GUILayoutOption[ ]) : string 
◆   static function PasswordField (label : GUIContent, password : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
      參數
      Label                顯示在該密碼域前面的可選標籤
      Password          用於編輯的密碼
      Style               可選的GUIStyle
      Options             一個可選的佈局選項的列表,它用來指定額外iad佈局屬性
任何在這裏設置的值將覆蓋由style定義的設置
參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, 
 
GUILayout.ExpandWidth, GUILayout.ExpandHeight
       返回:string – 用戶輸入的密碼
       描述:製做一個用戶能夠輸入密碼的文本域
         這個就像GUILayoutPasswordField,可是正確的響應全部選擇,在編輯器中,能夠有一個可選的標籤在前面。
◆   static function Popup (selectedIndex : int, displayedOptions : string[ ], params options : GUILayoutOption[ ]) : int 
◆   static function Popup (selectedIndex : int, displayedOptions : string[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆   static function Popup (selectedIndex : int, displayedOptions : GUIContent[ ], params options : GUILayoutOption[ ]) : int 
◆   static function Popup (selectedIndex : int, displayedOptions : GUIContent[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆   static function Popup (label : string, selectedIndex : int, displayedOptions : string[ ], params options : GUILayoutOption[ ]) : int 
◆   static function Popup (label : string, selectedIndex : int, displayedOptions : string[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆   static function Popup (label : GUIContent, selectedIndex : int, displayedOptions : GUIContent[], params options : GUILayoutOption[ ]) : int

◆ static function Popup (label : GUIContent, selectedIndex : int, displayedOptions : GUIContent[ ], style : GUIStyle, params options : GUILayoutOption[ ]) : int 
◆ 
       參數
       Label       ,            該域前面可選的標籤
      selectedIndex           該域顯示的選項的索引
      displayedOptions        顯示在彈出菜單中的選項數組
      style                   可選的GUIStyle
      options                 一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置
                              參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
       返回:int – 被用戶選擇的選項的索引
       描述:製做一個通用的彈出式選擇域
       使用當前選擇的索引做爲參數並返回用戶選擇的索引
◆   static function PrefixLabel (label : string, followingStyle : GUIStyle = "Button") : void 
◆   static function PrefixLabel (label : string, followingStyle : GUIStyle, labelStyle : GUIStyle) : void 
◆   static function PrefixLabel (label : GUIContent, followingStyle : GUIStyle = "Button") : 
void 
◆   static function PrefixLabel (label : GUIContent, followingStyle : GUIStyle, labelStyle : GUIStyle) : void 
       參數
       Label                  顯示在控件前面的標籤
       描述:在一些控件前面製做一個標籤。
       GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
◆   static function RectField (value : Rect, params options : GUILayoutOption[ ]) : Rect
◆   static function RectField (label : string, value : Rect, params options : GUILayoutOption[ ]) : Rect 
◆   static function RectField (label : GUIContent, value : Rect, params options : GUILayoutOption[ ]) : Rect 
     參數
     Label                    顯示在該域上的標籤
     Value                    用於編輯的值
     Options                  一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置
                              參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
      返回:Rect – 用戶輸入的值
      描述:製做一個X,Y,W&H域以便輸入一個Rect。
◆ static function Separator () : void
描述:在前一個控件和後面的控件以前製做一個小的分隔符。
◆  static function Slider (value : float, leftValue : float, rightValue : float, params options : GUILayoutOption[ ]) : float 
◆  static function Slider (label : string, value : float, leftValue : float, rightValue : float, params options : GUILayoutOption[ ]) : float 
◆  static function Slider (label : GUIContent, value : float, leftValue : float, rightValue : float, params options : GUILayoutOption[ ]) : float 
     參數
     Label                 該滑桿前面可選的標籤
     Value                 滑桿顯示的值,這個決定可拖動滑塊的位置。
     leftValue              滑桿左端的值
     rightValue             滑桿右端的值
     options                一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置 
參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
    返回:float – 被用戶設置的值
    描述:一個用戶能夠拖動到滑桿,能夠在min和max以前改變一個值。
◆ static function Space():void
描述:在前一個控件和後面的控件之間製做一個小的空格。
◆   static function TagField (tag : string, params options : GUILayoutOption[ ]) : string 
◆   static function TagField (tag : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
◆   static function TagField (label : string, tag : string, params options : GUILayoutOption[ ]) : string 
◆   static function TagField (label : string, tag : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
◆   static function TagField (label : GUIContent, tag : string, params options : GUILayoutOption[ ]) : string 
◆   static function TagField (label : GUIContent, tag : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
      參數
      Label                 該域前面可選定標籤
      Tag                   該域顯示的標籤
      Style                  可選的GUIStyle
      Options               一個可選的佈局選項的列表,它用來指定額外的佈局屬性。任何在這裏設置的值將覆蓋由style定義的設置。
                             參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
        返回:string – 用戶選擇的標籤
        描述:製做一個標籤選擇域

◆   static function TextArea (text : string, params options : GUILayoutOption[ ]) : string 
◆  static function TextArea (text : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
      參數
      Text                   用於編輯的文本
      Style                   可選的GUIStyle
      Options                一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
                             參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
        返回:string – 用戶輸入的文本
        描述:製做一個文本區域
        這個就像GUIlayout。TextArea同樣。可是正確地響應全選,拷貝,粘帖等。在編輯器中
◆    static function TextField (text : string, params options : GUILayoutOption[ ]) : string 
◆    static function TextField (text : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
◆    static function TextField (label : string, text : string, params options : GUILayoutOption[ ]) : string 
◆    static function TextField (label : string, text : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
◆    static function TextField (label : GUIContent, text : string, params options : GUILayoutOption[ ]) : string 
◆    static function TextField (label : GUIContent, text : string, style : GUIStyle, params options : GUILayoutOption[ ]) : string 
        參數
        Label                 顯示在該文本前面的可選標籤
        Text                   用於編輯的文本
      Style                   可選的GUIStyle
      Options                一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
                             參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
        返回:string – 用戶輸入的文本
        描述:製做一個文本區域
        這個就像GUIlayout。TextField同樣。可是正確地響應全選,拷貝,粘帖等。在編輯器中,能夠有一個可選的標籤在前面
◆    static function Toggle (value : bool, params options : GUILayoutOption[ ]) : bool 
◆    static function Toggle (label : string, value : bool, params options : GUILayoutOption[ ]) : bool 
◆    static function Toggle (label : GUIContent, value : bool, params options : GUILayoutOption[ ]) : bool 
       參數
       Label                 該開關前面可選的標籤
       Value                 這個開關的顯示狀態
       Options               一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
 
                             參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
       返回: bool – 這個開關的顯示狀態
       描述: 製做一個開關
◆    static function Vector2Field (label : string, value : Vector2, params options : GUILayoutOption[ ]) : Vector2
       參數
       Label                 顯示在該域上的標籤
       Value                 用於編輯的值
       Options               一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
       參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
       返回:Vector2 – 用戶輸入的值
       描述:製做一個X&Y域以便輸入一個Vector2
◆    static function Vector3Field (label : string, value : Vector3, params options :          GUILayoutOption[ ]) : Vector3
       參數
       Label                 顯示在該域上的標籤
       Value                 用於編輯的值
       Options               一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
           參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
       返回:Vector3 – 用戶輸入的值
       描述:製做一個X&Y域以便輸入一個Vector3
◆    static function Vector4Field (label : string, value : Vector4, params options :          GUILayoutOption[ ]) : Vector4
       參數
       Label                 顯示在該域上的標籤
       Value                 用於編輯的值
       Options               一個可選的佈局選項的列表,它用來指定額外的佈局屬性,任何在這裏設置的值將覆蓋由style定義的設置
                             參見:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
       返回:Vector4 – 用戶輸入的值
       描述:製做一個X&Y域以便輸入一個Vector4
    EditorGUIUtility
   類,繼承自GUIUility
用戶EditorGUI的各類輔助函數
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
變量
◆statie var systemCopyBuffer:string
描述:系統拷貝緩存
使用這個使拷貝和粘貼爲你本身的數據工做
◆statie var whiteTexture:Texture2D
描述:獲取一個白色紋理
類方法
◆statie function AddCursorRect(position:Rect,mouse:MouseCursor):void
參數
position                 顯示控件的矩形
mouse                  使用鼠標光標
描述:添加一個自定義的鼠標光標到一個控件
function OnGUI()
{
    // 當鼠標懸停在這個矩形上時,顯示「link」光標
    EditorGUIUtility.AddCursorRect (Rect(10,10,100,100), MouseCursor.Link);        
}
◆static function DrawColorSwatch (position : Rect, color : Color) : void
參數
position                 繪製樣板顏色的矩形。Color繪製顏色
描述:繪製一個顏色樣本
◆static function FindTexture (name : string) : Texture2D
 描述:從源文件名獲取一個紋理
◆static function HasObjectThumbnail (objType : Type) : bool
描述:給定的類有對象有小物體
◆static function Load (path : string) : Object
描述:加載一個內置資源
這個函數將在Assets/Editor Default Resources/ + path中查找資源,若是沒有,它將按照名稱嘗試內置的編輯器資源
var handleMaterial : Material = EditorGUIUtility.Load (Load("HandleMaterial.mat"));
◆static function LoadRequired (path : string) : Object
描述:加載位於路徑上的內置資源
這個函數將在Assets/Editor Default Resources/ + path中查找任何資源。
var handleMaterial : Material = EditorGUIUtility.Load (Load("HandleMaterial"));
◆ static function LookLikeControls (labelWidth : float = 100, fieldWidth : float = 70) : void
◆ 
參數
labelWidth  用於前綴標籤的寬帶
fieldWidth     文本條目的寬度。參見:LookLikeInspector
描述:使全部ref::EditorGUI外觀像普通控件
這將使EditorGUI::ref::使用默認風格,看起來想控件(例如e.g. EditorGUI.Popup成爲一個徹底是彈出菜單)
◆  static function LookLikeInspector () : void
描述:使全部ref::EditorGUI外觀像簡化邊框的視控件
這個將使EditorGUI使用的默認風格的外觀就像它在檢視面板中同樣
參見:LookLikeControls
◆  static function ObjectContent (obj : Object, type : System.Type) : GUIContent
描述:返回一個帶有名稱和圖標的GUIContent物體
若是物體爲空,圖標將根據類型選擇
◆  static function PingObject (obj : Object) : void
描述:Ping窗口中的一個對象,就像在檢視面板中點擊它
◆  static function QueueGameViewInputEvent (evt : Event) : void
描述:發送一個輸入事件到遊戲
◆ static function RenderGameViewCameras (cameraRect : Rect, statsRect : Rect, stats : bool, gizmos : bool) : void
cameraRect  用於渲染全部遊戲相機的設備座標
statsRect      統計應該顯示的地方
stats          疊加顯示統計數據
gizmos      也顯示gizmos
描述:渲染全部遊戲內的相機
繼承的成員
繼承的類變量
hotControl          當前具備熱點的控件controlID 
keyboardControl  具備鍵盤焦點控件的controlID 
繼承的類函數
GetControlID      爲一個控件獲取惟一ID
GetStateObject      從一個 controlID.獲取一個狀態
QueryStateObject  從一個 controlID.獲取一個存在的狀態物體
MoveNextAndScroll  只容許從 OnGUI內部調用GUI函數
GUIToScreenPoint  將一個點從GUI位置轉化爲屏幕空間
ScreenToGUIPoint  將一個點從屏幕空間轉化爲GUI位置
RotateAroundPivot  使GUI圍繞一個點選擇的輔助函數
ScaleAroundPivot  
EditorGUI

只用於編輯器GUI的類,這個類包含了附加到UnityGUI的通用2D元素
   注意:這是一個編輯器類。爲了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
   這些工做的很是像普通的GUI函數,在EditorGUILayout中也有相同實現
類變量
static var actionKey : bool
描述:平臺相關的"action"調整鍵被按下(只讀)
Mac OS X爲 Command, Windows上爲Control
類方法
◆static function ColorField (position : Rect, value : Color) : Color
◆static function ColorField (position : Rect, label : string, value : Color) : Color
◆static function ColorField (position : Rect, label : GUIContent, value : Color) : Color
  參數
  position      屏幕上用於域的矩形區域
label      顯示在該域前面的可選標籤
value      用於編輯的顏色
返回:Color – 用戶選擇的顏色
描述:製做一個用來選擇Color的域
◆static function DrawTextureAlpha (position : Rect, image : Texture, scaleMode : ScaleMode = ScaleMode.StretchToFill, imageAspect : float) : void
參數
position     屏幕上用來繪製紋理的矩形區域
image     顯示的Texture
scaleMode 當紋理的長寬比不適合繪製的長寬比時如何縮放這個圖片
alphaBlend 是否用 alpha 混合顯示圖片(默認)若是爲假,圖片將繪製到屏幕
imageAspect 用於源圖像的寬高比,若是爲0(默認),使用來自圖片的寬高比
描述:在一個矩形中繪製紋理的alpha通道
參見: GUI.color, GUI.contentColor
◆static function EnumPopup (position : Rect, selected : System.Enum, style : GUIStyle = EditorStyles.popup) : System.Enum
◆static function EnumPopup (position : Rect, label : string, selected : System.Enum, style : GUIStyle = EditorStyles.popup) : System.Enum
◆static function EnumPopup (position : Rect, label : GUIContent, selected : System.Enum, style : GUIStyle = EditorStyles.popup) : System.Enum
參數
position     屏幕上用來繪製紋理的矩形區域
label         該域前面可選的標籤
selected     該域顯示的選項
style         可選的GUIStyle.
返回:float-   被用戶選擇的選項
描述:製做一個彈出式選擇域
使用當前選擇的值做爲參數並返回用戶選擇的值
◆static function FloatField (position : Rect, value : float, style : GUIStyle = EditorStyles.numberField) : float
◆static function FloatField (position : Rect, label : string, value : float, style : GUIStyle = EditorStyles.numberField) : float
◆static function FloatField (position : Rect, label : GUIContent, value : float, style : GUIStyle = EditorStyles.numberField) : float
參數
position     屏幕上用來浮點值的矩形區域
label         顯示在浮點域前面的可選標籤
value       該域顯示的選項
style         可選的GUIStyle.
返回:float-   被用戶輸入的值
描述:製做一個文本域以便輸入浮點值
◆static function Foldout (position : Rect, foldout : bool, content : string, style : GUIStyle = EditorStyles.foldout) : bool
◆static function Foldout (position : Rect, foldout : bool, content : GUIContent, style : GUIStyle = EditorStyles.foldout) : bool
參數
position     屏幕上用於箭頭和標籤的矩形區域
foldout       顯示摺疊狀態
content       顯示的標籤
style         可選的GUIStyle.
返回:bool-   用戶選擇的摺疊狀態,若是爲真,應該渲染子對象
描述:製做一個左側帶有摺疊箭頭的標籤
這個能夠用來建立一個樹或則文件夾結構,這裏子對象只在父展開的時候顯示
◆ static function InspectorTitlebar (position : Rect, foldout : bool, targetObj : Object) : bool
參數
position     屏幕上用於標題欄的矩形區域
foldout       顯示摺疊狀態
targetObj   使用該標題欄的對象
返回:bool-   用戶選擇的摺疊狀態
描述:製做一個檢視窗口標題欄
該標題欄有一個摺疊箭頭,一個幫助圖標和設置菜單,設置菜單以來於所提供對象類型
◆static function IntField (position : Rect, value : int, style : GUIStyle = EditorStyles.numberField) : int
◆static function IntField (position : Rect, label : string, value : int, style : GUIStyle = EditorStyles.numberField) : int
◆static function IntField (position : Rect, label : GUIContent, value : int, style : GUIStyle = EditorStyles.numberField) : int
參數
position     屏幕上用於整型域的矩形區域
label         顯示在該整型域前面的可選標籤
value       用於編輯的值
style         可選的GUIStyle.
返回:int-  用戶輸入的值
描述:製做一個文本域以便輸入整數
◆static function IntPopup (position : Rect, selectedValue : int, displayedOptions : string[], optionValues : int[], style : GUIStyle = EditorStyles.popup) : int
◆static function IntPopup (position : Rect, selectedValue : int, displayedOptions : GUIContent[], optionValues : int[], style : GUIStyle = EditorStyles.popup) : int
◆static function IntPopup (position : Rect, label : string, selectedValue : int, displayedOptions : string[], optionValues : int[], style : GUIStyle = EditorStyles.popup) : int
◆static function IntPopup (position : Rect, label : GUIContent, selectedValue : int, displayedOptions : 
GUIContent[], optionValues : int[], style : GUIStyle = EditorStyles.popup) : int
參數
position             屏幕上用於域的矩形區域
label                 可選標籤
selectedValue       顯示的選項的值
displayedOptions       一個帶有顯示X選項的數組,用戶能夠選擇
optionValues           一個爲每一個選項存儲值的數組
style                 可選的GUIStyle.
返回:int- 被用戶選擇的值
描述:製做一個整形彈出式選擇域
只用當前選擇的整數做爲參數並返回用戶選擇的整數
◆static function IntSlider (position : Rect, value : int, leftValue : int, rightValue : int) : int
◆static function IntSlider (position : Rect, label : string, value : int, leftValue : int, rightValue : int) : int
◆static function IntSlider (position : Rect, label : GUIContent, value : int, leftValue : int, rightValue : int) : int
參數
position     屏幕上用於滑竿的矩形區域
label         該滑竿前面可選擇的標籤
value         滑竿顯示的值
leftValue     滑竿左端值
rightValue    滑竿右端值
返回:int-   用戶設置的值
描述:製做一個能夠拖動的滑竿,能夠在min和max之間設置參數
◆ static function LabelField (position : Rect, label : string, label2 : string) : void
參數
position     屏幕上用於標籤域的矩形區域
label         前面的標籤
label         右側的標籤
描述:製做一個標籤域(用來顯示只讀信息)
◆static function LayerField (position : Rect, layer : int, style : GUIStyle = EditorStyles.popup) : int
◆static function LayerField (position : Rect, label : string, layer : int, style : GUIStyle = EditorStyles.popup) : int
◆static function LayerField (position : Rect, label : GUIContent, layer : int, style : GUIStyle = EditorStyles.popup) : int
◆ staticfunctionLayerField(position:Rect,label:GUIContent,Layer:ini,styleGUIStyle=EditorStyles.popup):int
參數
Position    屏幕上用於域的矩形區域
Label      該域前面可選的標籤
layer      顯示在該域中的層
返回:int 用戶選擇的層
描述:製做一個層選擇域
◆ static function ObjectField(position : Rect,obj : Object,objType : System Type) : Object
◆ Static function ObjectField (position : Rect, label : string, obj : Object, objType System.Type) : Object
◆ Static function ObjectField(position : Rect,label : GUIContent,obj : Object,objType : System.Type):Object
參數
Position    屏幕上用於域的矩形區域
Label      該區前面可選的標籤
Obj       該域顯示的對象
objType    對象的類型
返回:Object  被用戶設置的對象
描述:製做一個物體放置的槽域
◆ Static function PasswrodField (position : Rect,password : string,style : GUIStyle= EditorStyles.textField) : string
◆ Static function PasswordField (position : Rect,label : string,password : string,style : GUIStyle=EditorStyles.textField) : string
◆ Siatic function PasswordField(position : Rect,label:GUIConient,password : string,style : GUIStyle = EditorStyle.textField) 「 string
參數
Position     屏幕上用於密碼域的矩形區域
Label       顯示在該密碼域前面的可選標籤
Password    用於編輯的密碼
Style        可選的GUIStyle
返回:string- 用戶輸入的密碼
描述:製做一個用戶能夠輸入密碼的文本域
這個就像GUI.PasswordField, 可是正確的響應全部選擇,在編輯器中,能夠有一個可選的標籤在前面。
◆ static function Popup (position : Rect, selectedIndex : int, displayedOptions : string[], style : GUIStyle = EditorStyles.popup) : int 
◆ static function Popup (position : Rect, selectedIndex : int, displayedOptions : GUIContent[], 
◆ style : GUIStyle = EditorStyles.popup) : int 
static function Popup (position : Rect, label : GUIContent, selectedIndex : int, displayedOptions : GUIContent[], style : GUIStyle = EditorStyles.popup) : int 
參數
Position           屏幕上用於域的矩形區域
Label             該域前面可選的標籤
selectedIndex      該域顯示的選項的索引
displayedOptions   顯示在彈出菜單中的選項數組
style             可選的GUIStyle
返回:int-被用戶選擇的選項的索引
描述:製做一個哦他可以用的彈出式選擇域
使用當前選擇的索引做爲參數並返回用戶選擇的索引
◆ Static function PrefixLabel(totalPosition:Rect,id:int,label:GUIContent):Rect
參數
totaIPosition      用於標籤和控件的屏幕上的矩形
id               空間的惟一ID
label            顯示在控件前面的標籤
返回:Rect 屏幕上的矩形,只用於控件自身
描述:在一些空間前面製做一個標籤
static function RectField (position : Rect, value : Rect) : Rect 
static function RectField (position : Rect, label : string, value : Rect) : Rect 
static function RectField (position : Rect, label : GUIContent, value : Rect) : Rect 
參數
position 
屏幕上用於域的矩形區域 
label 顯示在該域上的可選標籤
value 用於編輯的值 
返回:Rect –用戶輸入的值描述:製做一個X.Y W&H域以便輸入一個Rect
◆ static function Slider (position : Rect, value : float, leftValue : float, rightValue : float) : float 
◆ static function Slider (position : Rect, label : string, value : float, leftValue : float, rightValue : float) : float 
◆ static function Slider (position : Rect, label : GUIContent, value : float, leftValue : float, rightValue : float) : float 
參數
position 
屏幕上用於滑竿的矩形區域 
label 該滑竿前面可選的標籤 
value 滑竿顯示的值。這個決定可拖動滑塊的位置。. 
leftValue 滑竿左端的值. 
rightValue 滑竿右端的值
返回:float- 被用戶設置的值
描述:一個用戶能夠拖動的滑竿,能夠在min和max之間改變的一個值
◆ static function TagField (position : Rect, tag : string, style : GUIStyle = EditorStyles.popup) : string 
◆ static function TagField (position : Rect, label : string, tag : string, style : GUIStyle = EditorStyles.popup) : string 
◆ static function TagField (position : Rect, label : GUIContent, tag : string, style : GUIStyle = EditorStyles.popup) : string 
參數
position 
屏幕上用於域的矩形區域
label 該域前面可選的標籤
tag 該域顯示的標籤 
style 可選的GUIStyle
返回:string- 用戶選擇的標籤
描述:製做一個標籤選擇域
◆ static function TextArea (position : Rect, text : string, style : GUIStyle = EditorStyles.textField) : string 
參數
position 
屏幕上用於文本的矩形區域
text 用於編輯的文本
style 可選的GUIStyle. 返回:string- 用戶輸入的文本
描述:製做一個文本域
這個就像GUITextField同樣,可是正確的響應全選,拷貝,粘貼等,在編輯器中。
◆ static function TextField (position : Rect, text : string, style : GUIStyle = EditorStyles.textField) : string 
◆ static function TextField (position : Rect, label : string, text : string, style : GUIStyle = EditorStyles.textField) : string 
◆ static function TextField (position : Rect, label : GUIContent, text : string, style : GUIStyle = EditorStyles.textField) : string 
參數
position 屏幕上用於開關的矩形區域. 
label 顯示在該文本域前面的可選標籤
text 用於編輯的文本.
Style             可選的GUIStyle
返回:string- 用戶輸入的文本
描述:製做一個文本域
這個就像GUITextField,可是正確的響應全部選擇,拷貝,粘貼等等,在編輯器中,能夠有一個可選的標籤在前面。
◆ static function Toggle (position : Rect, value : bool) : bool 
◆ static function Toggle (position : Rect, label : string, value : bool) : bool 
◆ static function Toggle (position : Rect, label : GUIContent, value : bool) : bool 
參數
position 屏幕上用於開關的矩形區域. 
label 該開關前面可選的標籤
value 這個開關的顯示狀態 
返回:bool – 這個開關的顯示狀態
描述:製做一個開關
static function Vector2Field (position : Rect, label : string, value : Vector2) : Vector2 
參數
position 屏幕上用於域的矩形區域 
label 顯示在該域上的標籤
value 用於編輯的值
返回:Vector2- 用戶輸入的值
描述:爲Vector2製做一個X,Y域
◆ static function Vector3Field (position : Rect, label : string, value : Vector3) : Vector3 
參數 
position 屏幕上用於域的矩形區域 
label 顯示在該域上的標籤
value 用於編輯的值
返回:Vector3 – 用戶輸入的值
描述:製做一個X,Y  Z域以便輸入一個Vector3
◆ static function Vector4Field (position : Rect, label : string, value : Vector4) : Vector4 
參數 
position 屏幕上用於域的矩形區域
label 顯示在該域上的標籤
value 用於編輯的值 
返回:Vector4 – 用戶輸入的值
描述:製做一個X,Y  Z&W域以便輸入一個Vector4
                              EditorPrefs

在儲存並訪問Unity編輯器的首選項
注意:這是一個編輯器類,爲了使用它你必須房子腳本到工程文件夾的Assets/Editor
描述:設置由Key肯定的值
描述:設置由Key肯定的值
                              EditorStyles

用於EditorGUI控件的通用GUIStyle經過調用EditorGUIUtility.LookLikeInspector和EditorGUIUtility.LookLikeControls.來設置
注意:這是一個編輯器類,爲了使用它你必須設置腳本的工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加"using UnityEditor;"
類變量
Label                         用於全部EditorGUI前部標籤的風格
textField                      用於EditorGUI.TextField的風格
popup                        用於EditorGUI.Popup, EditorGUI.EnumPopup的風格
structHeadingLabel                 用於結構標題的風格(Vector3,Rect,等)
objectField                         用於對象域標題的風格
objectFieldThunmb             用於對象域中選擇按鈕標題的風格
colorField                     用於顏色域標題的風格
layerMaskField                用於層蒙板標題的風格
toggle                        用於EditorGUI.Toggle的風格
foldout                       用於EditorGUI.Foldout的風格
toggleGroup                  用於EditorGUILayout.BeginToggleGroup.的風格
standardFont                      標準字體
boldFont                          黑體字體
                                   EditorUtility

編輯器工具函數
注意:這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editior中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」using UnityEditor」
類方法
◆ Static function ClearProgressBar():void
描述:移除工具條
參見:DisplayPrograssBar函數
◆ Static function CloneComponent(c:Component):Component
描述:複製一個組件
◆ Static function CollectDependencies(roots:Object[]):Object[]
描述:計算並返回全部roots依賴的資源
◆ Static function CreateEmptyPrefab(path:srting):Object
描述:在路勁上建立一個空的預設,若是在路徑上已經有一個預設,他將被刪除並用一個空的預設替換
返回該預設的一個引用
◆ Static functionCreateGameObjectWithHideFlags(name:string,flags:HideFlags,prarmscomponents:Type[]):GameObject
描述:建立一個遊戲物體並附加特定的組件
◆ staticfunctionDisplayDialog(title:string,massage:srting,ok:string,cancel:srting=」」):bool
描述:顯示一個模式對話框
使用它來在編輯器中顯示信息框
Ok和cancel是顯示在對話框按鈕上的標籤,若是cancel是空(默認),那麼只有一個按鈕被顯示,若是OK按鈕被按下DisplayDialog返回true
◆ staticfunctionDisplayDialogComplex(title:srting,massage:string,ok:srting,cancel:string,alt:string):int
描述:顯示一個帶有三個按鈕的模式對話框
使用它來在編輯器中顯示信息框
與DisplayDialog相似,只是這個版本顯示帶有三個按鈕的對話框,ok,cancel和alt是顯示在按鈕上的標籤,DisplayDDialogComplex返回一個證書,0,1和2對應的ok,cancel和alt按鈕
◆ Static function DisplayPopupMenu(position:Rect,menuItemPath:string,command:MenuCommand):void
描述 顯示一個彈出菜單
菜單顯示在pos處,從一個由menuItemPath指定的子菜單生成,使用MenuCommand做爲菜單上下文
var evt = Event.current; 
var contextRect = Rect(10,10,100,100);
if(evt.type == EventType.ContextClick) 
{
var mousePos = evt.mousePosition;
if (contextRect.Contains (mousePos)) {
EditorUtility.DisplayPopupMenu 
(Rect (mousePos.x,mousePos.y,0,0), "Assets/", null);
evt.Use();
}
}
◆ static function DisplayProgressBar (title : string, info : string, progress : float) : void
描述:顯示或更新一個進度條
窗體標題欄被設置爲title信息被設置爲info.進度應該被設置爲0.0到1.0之間的值,0表示沒有作任何事,1.0意味着100%完成
在編輯器腳本或嚮導中執行任何長的操做並想通知用戶關於這個操做的進度時,這個是很是有用的!
參見:ClearProgressBar函數
◆ static function ExtractOggFile (obj : Object, path : string) : bool
描述:在路徑處找到一個資源
路徑名必須包含文件擴展名,它不該該用」Assets」作前綴,這個只返回在工程試圖中可見的資源
參見GetAssetPath函數
◆ static function FormatBytes (bytes : int) : string
描述:將字節數返回爲一個文本
print (EditorUtility.FormatBytes(100)); // prints "100 bytes"
print (EditorUtility.FormatBytes(2048)); 
// prints "2.0 KB"
Static function GetAssetPath(asset: Objct):string\
描述:返回一個資源的路徑名
與EditonUityFindAssent相反
參見:GetAssentPath函數
◆ Function GetDsconnectedPrefabParent(source: Object):Object
描述:返回source最後連接到遊戲物體父,若是沒有返回null
Static function GetObjectEnabled(target: Object):int
描述:物體是否啓用(0 禁用 1 啓用 -1 沒有啓用按鈕)
◆ Static function GetPrefabParent(source:Object):Object
描述:返回source的遊戲物體父,若是沒有發現返回null
◆ Static function GetPrefabType(targe:Object):Prelabtype
描述:
◆ Static function InstanceIDtoObject(instanceID:int):Object
描述:轉化實例ID爲對象的引用
若是對象沒有從磁盤加載,加載它
◆ Static function InstantiatePrefab(target:Object):Object
描述:實例化給定預設
這個累死與Instantiated但它建立一個到預設的預設鏈接
◆ Static function IsPersistent(target:Object):bool
描述:決定一個對象是否存儲在磁盤上,典型資源如:預設,紋理,音頻剪輯,動畫,材質
若是一個物體在場景中返回假,典型的如一個遊戲物體成組,可是它也能夠是一個從代碼中建立的材質,並且該材質沒有存儲在資源中而是存儲在場景中!
◆ Stiatc function OpenFilePanel(title:string directory:srring,exlension:string):string
描述,顯示「打開文件」對話框並返回選中的路徑名
參見SaveFilePanel函數
static function ReconnectToLastPrefab (go : GameObject) : bool
描述
◆ StaticfunctionReplacePrefab(go:GameObject,targetPrefab:Object,connecToPrefab:bool=false):GameObject
描述:用一個遊戲物體GO替換targetPetPrefab
◆ static function SaveFilePanel (title : string, directory : string, defaultName : string, 
◆ extension : string) : string
描述:顯示「保存文件」對話框並返回選中的路徑名
參見:OpenFilePanel函數
◆ static function SetDirty (target : Object) : void
描述:標記target物體爲髒
Unity內部使用髒標記來查看資源什麼時候被改變,並被保存到硬盤上,例如,若是你改變一個預設的MonoBehaviour或ScriptabieObject變量,你必須告訴Unity這個值被改變了,Unity內置組件內會在一個屬性改變後調用SetDirty,MonoBehaviour或ScriprableObject不會自動調用,所以若是你想改變的值被保存,你須要調用SetDirty
◆ static function SetObjectEnabled (target : Object, enabled : bool) : void
描述:設置物體的啓用狀態
◆ Static function SmartResetGameObjectToPrefabState(go:GameObject):bool
描述
◆ Static functionSmartResetToPrefabState(obj:Object):bool
描述
                                        EditorWindow
類:繼承自ScriptableObject
注意:這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor
中,編輯器類位於UnityEditor命名空間此對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」
建立你本身的自定義窗口,能夠自由的浮動並描寫,就像Unity自身的窗口同樣
編輯器窗口典型地使用一個菜單項打開
JAVAScript例子
class MyWindow extends EditorWindow {
var myString = "Hello 
World";
var groupEnabled = false;
var myBool = 
true;
var myFloat = 1.23;
// Add menu named "My Window" to the Window menu
@MenuItem ("Window/My 
Window")
static function Init () {
// Get 
existing open window or if none, make a new one:
var window : MyWindow 
= EditorWindow.GetWindow 
(MyWindow);
window.Show ();
function OnGUI () {
GUILayout.Label ("Base Settings", EditorStyles.boldLabel);
myString = EditorGUILayout.TextField 
("Text Field", myString);
groupEnabled = EditorGUILayout.BeginToggleGroup 
("Optional Settings", groupEnabled);
myBool = EditorGUILayout.Toggle 
("Toggle", myBool);
myFloat = EditorGUILayout.Slider 
("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup 
C#例子
using UnityEngine;
using UnityEditor;
public 
class MyWindow : EditorWindow {
string myString = "Hello 
World";
bool groupEnabled;
bool myBool = true;
float myFloat = 1.23f;
// 
Add menu named "My Window" to the Window menu
[MenuItem ("Window/My 
Window")]
static void Init () {
// Get existing 
open window or if none, make a new one:
MyWindow window = (MyWindow)EditorWindow.GetWindow (typeof 
(MyWindow));
window.Show ();
}
void 
OnGUI () {
GUILayout.Label ("Base Settings", EditorStyles.boldLabel);
myString 
= EditorGUILayout.TextField 
("Text Field", myString);
groupEnabled = EditorGUILayout.BeginToggleGroup 
("Optional Settings", groupEnabled);
myBool = EditorGUILayout.Toggle 
("Toggle", myBool);
myFloat = EditorGUILayout.Slider 
("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup 
();
}
}
變量
◆ Var autoRepaintOnSceneChange:bool
描述:當場景更新時窗口自動重繪嗎?
◆ Var position:Rect
描述:屏幕上的像素位置
設置這個將更鎖定的窗口解鎖定
◆ Var wantsMouseMove:bool
描述:在這個編輯器窗口中的GUI須要MouseMove事件嗎?
函數
◆ Function Close():void
描述:關閉編輯器窗口
這將銷燬編輯器窗口
◆ Function Focus()」void
描述:移動鍵盤焦點到這個EditorWindow
參見:focusWindow
Function Repaint():void
描述:使窗口重繪
◆ Function SendEvent(e:Event):bool
描述:發送一個事件到窗口
Var win:
EditorWindow
//發送一個粘貼事件到EditorWindow,就像從Edit菜單中選擇Paste
◆ Function Show (immediateDisplay:bool=false):void
描述:顯示編輯器窗口
Function Show Unity():void
描述:EditorWindow顯示爲一個浮動工具窗口
工具窗口老是在普通窗口的前面,而且當用戶切換到其餘應用程序時被隱藏。
//MyWindow是EditorWindow的簽名
Varwindow:MyWindow=new MyWindow():
Window.ShowUtility():
消息傳遞
◆ Function OnDestroy():void
描述:當窗口被關閉時調用
◆ Funciton OnGUI():void
描述:在這裏實現你本身的GUI
◆ Function OnFocus():void
描述:當窗體得到鍵盤焦點時調用
◆ Function OnHierarchyWindowChange():void
描述:當場景層次改變時被調用
當transform.parent改變,gameObject.name建立一個新遊戲物體時,等等
◆ Function OnInspectorUpdate():void
描述:OnInspectorUpdate以10幀每秒被調用,以便給檢視面板更新的機會
◆ Function OnLostFocus():void
描述:當窗體失去鍵盤焦點時被調用
◆ Function OnProjectWindowChange():void
描述:當選擇改變時被調用
◆ Function Update():void
描述:在全部可視的窗口z中每秒被調用100次
類變量
◆ Static var focusedWindow:EditorWindow
描述:哪一個編輯器窗體當前具備焦點(只讀)
若是沒有窗體具備焦點/focusedWindow/可爲null
參見:mostseOverWindow,Focus
◆ Static var mouseOverWindow:EditorWindow
描述:那個編輯器窗體當前位於鼠標之下(只讀)
若是沒有窗體位於鼠標之下/mouseOverWindow/可爲null
參見:focusedWindow
類函數
◆ Static function GetWindow(t:System,Type,utility:bool=false,title,string null):
EditorWindow
t        窗體的類型,必須從EditorWindow派生
utility    設置這個爲真以便建立一個浮動的窗體,若是爲假將建立一個普通窗體
title     若是GetWindow建立一個新的窗體,它將使用這個標題,若是這個值爲null,使用類做爲標題
描述:返回當前屏幕上第一個類型爲T的EditorWindow
◆ StaticfunctionGetWindowWithRect(t:System.Type,reet:Rect,utility:bool=falsei,title:string=null):EditorWindow
參數
T      窗體的類型,必須從EditorWindow派生
Rect   新建立的窗體將顯示在屏幕上的位置
Utility  設置這個爲真以便建立一個浮動的窗體,若是爲假將建立一個普通窗體
Title   若是GetWindow建立一個新的窗體,它將使用這個標題,若是這個值爲null,使用類名做爲標題
描述:返回當前屏幕上第一個類型爲t的EditorWindow
若是沒有,在位置rect建立並顯示新窗體而後返回它的實例
繼承的成員
繼承的變量
Name                   對象的名稱
hideFlags                該物體是否被隱蔽,保存在場景中或被用戶修改
繼承的函數
GetInstanceID            返回該物體的實例id
繼承的消息傳遞
OnFnable                物體被加載時調用該函數
OnDisable               當可編程物體超出範圍時調用這個函數
繼承的類函數
CreateInstance            使用className建立一個可編程物體的實例
Operator bool             這個物體存在嗎
Instantiate                克隆original物體並返回這個克隆
Destroy                  移除一個遊戲物體,組件或資源
DestroyImmediate          當即銷燬物體obj.強烈建議使用Destroy代替
FindObjectsOftype          返回全部類型爲type的激活物體
FindObjectOfType          返回第一個類型爲type的激活物體
Operator                 比較兩個物體是否相同
Operator                 比較兩個物體是否不相同
DontDestroyOnLoad        加載新場景時確保物體target不被自動銷燬                        
FileUtil
類 
注意:這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」usingUnityEditor」
類方法
◆ Static function CopyFileOrDirectory(from:string,to:string):void
描述:
Static function CopyFileOrDirectoryFollowSymlinks(from:string,to:string):void
描述:
◆ Static function DeleteFileOrDirectory(path:string):bool
描述
◆ Static function MoveFileOrDirectory(from:string,to:string):void
描述                      
HandleUtility

用於場景試圖類型3DGUI的輔助函數
注意,這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」usingUnityEditor」
類變量
◆ Static var acccleration:float
描述:爲拖動值獲取一個標準的加速度(只讀)
一般的加速度爲1.0 當shift被按下,它是4.0  當ALT被按下,加速度是0.25
參見:niceMouseDalta
◆ Static var handleMaterial:Matenal
描述:
◆ Static var nearestControl:int
描述
◆ Static var niceMouseDelta:float
描述:取一個好的鼠標增值用於拖動浮點數(只讀)
這將自動檢測用戶對X/Y軸拖動的設置並返回一個相應的浮點數,這個也能夠正確的處理調整鍵,該增值已經被乘
參見:
◆ Static var niceMouseDeltaZoom:float
描述:取一個好的鼠標增值用於縮放(只讀)
這將自動檢測用戶對X/Y軸拖動的設置並返回一個相應的浮點數,這個也能夠正確的處理調整鍵,該增值已經被乘
參見:
類方法
◆ static function AddControl(controlld:int,distance:float):void
描述:記錄一個從手柄到這裏的距離
全部的手柄在佈局時,使用它們的controIID調用這個,而後使用nearestControl來檢查它們是否獲得mouseDown
◆ Static function AddDefaultControl(controlld:int):void
描述:爲一個默認的控件添加ID,若是沒有其餘被選擇,這個將被選中
◆  StaticfunctionCalcLineTranslation(src:vector2,dest:vector2.srcPosition:Vector3.constraintDir:Vector3):float
參數
Sre                拖動的源點
Dest               拖動的目標點
srcPosition          在sre射線上拖動物體的3D位置
constraintDir        約束移動的3D方向
返回:float-沿着constraintDir移動的距離
Staic function ClosestPointToAre(center:Vector3,normal:Vector3,from:Vector3,angle:float,rablus:float):Vector3
描述:獲取最接近的3D點
◆ Static function ClosetPointToDise(center:Vector3,normal:Vector3,radius:float):Vector3
描述:獲取最接近的3D點
◆ Static function ClosestPointToPolyLine(params vertices:Vector3):Vector3
描述:獲取最接近的3D點
◆ static function DistancePointLine (point : Vector3, lineStart : Vector3, lineEnd : Vector3) : float
描述:計算點和線之間的距離
參見:ProjectPointLine
◆ static function DistanceToArc (center : Vector3, normal : Vector3, from : Vector3, angle : float, radius : float) : float
描述:從鼠標指針到圓盤3D部分的距離
在計算鼠標指針到圓盤部分的屏幕空間距離,這個圓盤在世界空間的position的位置上,並有給定的radius和normal圓盤部分由from向量和angle角度定義
參見:DistanceToDisc, DistanceToCircle.
◆ static function DistanceToCircle (position : Vector3, radius : float) : float
描述:從鼠標指針到相機朝向的圓的像素距離
在計算鼠標指針到圓的屏幕空間距離,這個圓在世界空間的position的位置上,並有給定的radius,該圓被假定是朝向相機的
使用當前相機定義距離
參見:DistanceToDise
◆ static function DistanceToDisc (center : Vector3, normal : Vector3, radius : float) : float
描述:從鼠標指針到一個3D圓盤的像素距離
在計算鼠標指針到圓盤(圓)的屏幕空間距離,這個圓盤(圓)在世界空間的position的位置上,並有給定的radius和normal
使用當前相機定義距離
參見:DistancetoCircle
◆ static function DistanceToLine (p1 : Vector3, p2 : Vector3) : float
描述:從鼠標指針到一個直線的像素距離
計算從鼠標指針到一條直線的距離空間距離,該直線從p1到p2世界空間點,使用當前相機定義距離
◆ static function DistanceToPolyLine (params points : Vector3[]) : float
描述:從鼠標指針到一個折線的像素距離
計算從鼠標指針到穿過給定世界空間點的多段直線的屏幕空間距離
使用當前相機定義距離
參見:DistanceToLine
◆ Static function FindPrefabRoot(source:GameObject):GameObject
描述:輔助函數用來周到一個物體的預設根(用來精確的選擇)
◆ Static function GetHandleSize(position:Vector3):float
描述:在給定的位置上獲取操做器手柄的世界空間尺寸
使用當前相機計算什麼時候的尺寸
◆ Static function GUIPointToWorldRay(position:Vector2):Ray
描述:轉化2DGUI位置到一個世界空間射線
使用當前相機計算射線
參見:WorldToGUIPoint
◆ Static function PickGameObject(position:Vector2):GameObject
描述:
◆ Static function PopCamera(camera:Camera):void
描述:取回全部的相機設置
◆ Static function ProjectPointLine(point:Vector3,lineStart:Vector3,lineEnd:Vector3):Vector3
描述:投影point到一個直線
參見:DistancePointLine
◆ Static function PushCamera(camera:Camera):void
描述:
保存全部的相機設置
◆ Static function RaySnap(ray:Ray):object
返回:object 一個裝箱的RaycastHit,若是沒有碰到它爲null
描述:當raysnapping時忽略的物體(典型的是當物體被手柄拖動的時候)
朝着屏幕投射ray
◆ Static function Repaint():void
描述:重繪當前試圖
◆ Static function WorldPointToSizedReet(position:Vector3,content:GUIContent,style:GUIStyle):Rect
參數
Position        使用的世界空間位置
C, ontent        讓出空間顯示的內容
Style           使用的風格,該風格的對齊
描述:在3D空間中制定一個矩形來顯示一個2DGUI元素
◆ Static function WorldToGUIPoint(world:Vector3):Vector2
描述:轉化世界空間點到2DGUI位置
使用當前相機計算投影
參見:GUIPointToWorldRay
                               Handles

各類繪製物
注意:這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」using UnityEditor
變量
◆ Var currentCamera:Camera
描述:用來決定3D處理結束的相機
類變量
◆ Static var color:Color
描述:handles的顏色
◆ Static var lighting:bool
描述:在處理光照?
類方法
◆ Static function BeginGUI():void
描述:在3DhandleGUI中開始一個2DGUI塊
在當前處理相機的頂部開始一個2DGUI塊
參考:EndGUI
◆ Static function BeginGUI(position:Rect):void
描述:在3DhandleGUI中開始一個2DGUI塊
用來製做一個輸入GUI
參考:EndGUI
◆ Static function Button(position:Vector3,direction:Quaternion,size:float,pickSize:float,capFune:Handles,DrawCapFunction):bool

描述:製做一個3D按鈕這個就像一個普通的GUIButton,可是它有一個3D位置並經過一個處理函數繪製。◆ Static function ClearCamera(position:Rect,camera:Camera):void描述:◆ static function Disc (rotation : Quaternion, position : Vector3, axis : Vector3, size : float,cutoffPlane : bool, snap : float) : Quaternion 參數rotation 圓盤的旋轉position 圓盤的中心 axis 旋轉的軸 size 在世界空間中圓盤的尺寸參考:HandleUtility.GetHandleSizecutoffPlane 若是爲真,以後前半部分的圓被繪製/可拖動,當你用許多重疊的旋轉軸時(就像在默認的旋轉工具中同樣),這個可用來避免混亂! 描述:製做一個能夠用鼠標拖動的3D圓盤◆ static function DrawArrow (controlID : int, position : Vector3, rotation : Quaternion, size : float) : void描述:繪製一個像移動工具使用箭頭!◆ static function DrawCamera (position : Rect, camera : Camera, renderMode : int) : void參數Position                  在GUI座標下繪製這個相機的區域Camera                  須要繪製的相機描述:在矩形內繪製一個相機這個函數也設置Camera.current爲camera,並設置它的pixelrect◆ static function DrawCone (controlID : int, position : Vector3, rotation : Quaternion, size : float) : void描述:繪製一個球體,傳遞這個處處理函數◆ static function DrawCube (controlID : int, position : Vector3, rotation : Quaternion, size : float) : void描述:繪製以立方體,傳遞這個處處理函數◆ static function DrawCylinder (controlID : int, position : Vector3, rotation : Quaternion, size : float) : void描述:繪製一個圓柱,傳遞這個處處理函數◆ static function DrawLine (p1 : Vector3, p2 : Vector3) : void描述:從p1到p2繪製線◆ static function DrawPolyLine (params points : Vector3[]) : void描述:繪製穿過points列表中全部點的線◆ static function DrawRectangle (controlID : int, position : Vector3, rotation : Quaternion, size : float) : void描述:繪製一個朝向相機的矩形,傳遞這個處處理函數◆ static function DrawSolidArc (center : Vector3, normal : Vector3, from : Vector3, angle : float, radius : float) : void參數center 圓的中心 normal 圓的法線 from 圓周上點的方向,相對於中心,區域開始的位置 angle 扇形的角度radius 圓的半徑 描述:在3D空間中繪製一個圓的區域(餅狀)◆ static function DrawSolidDisc (center : Vector3, normal : Vector3, radius : float) : void 參數center 圓盤的中心normal 圓盤的法線 radius 圓盤的半徑描述:在3D空間中繪製一個平的實體圓盤◆ static function DrawSphere (controlID : int, position : Vector3, rotation : Quaternion, size : float) : void描述:繪製一個球體,傳遞這個處處理函數◆ static function DrawWireArc (center : Vector3, normal : Vector3, from : Vector3, angle : float, radius :float) : void 參數center 圓的中心normal 圓的法線 from 圓周上點的方向,相對於中心,圓弧開始的位置angle 圓弧的角度radius 圓的半徑描述:在3D空間繪製一個圓弧◆ static function DrawWireDisc (center : Vector3, normal : Vector3, radius : float) : void參數center 圓盤的中心 normal 圓盤的法線radius 圓盤的半徑 描述:在3D空間中繪製一個平的圓盤輪廓◆ static function EndGUI () : void描述:結束2DGUI塊並返回主3D句柄類型須要,是它正確地從相機恢復◆ static function FreeMoveHandle (position : Vector3, rotation : Quaternion, size : floatsnap : Vector3, capFunc : DrawCapFunction) : Vector3參數position 手柄的位置 rotation 手柄的旋轉,這個能夠用raysnapping改變 size 手柄的尺寸capFunc 這個函數用來繪製手柄,例如Handles.DrawRectangle描述:製做一個未約束耳朵移動手柄這個能夠在全部方向上移動,在場景中按下CMD以便raysnap碰撞器static function FreeRotateHandle (rotation : Quaternion, position : Vector3, size : float) : Quaternion描述:◆ static function Label (position : Vector3, text : string) : void ◆ static function Label (position : Vector3, image : Texture) : void ◆ static function Label (position : Vector3, content : GUIContent) : void ◆ static function Label (position : Vector3, text : string, style : GUIStyle) : void ◆ static function Label (position : Vector3, content : GUIContent, style : GUIStyle) : void 參數position 3D空間中的位置就像從當前處理相機中看到的同樣text 顯示在該標籤上的文本image 顯示在標籤上的紋理 content 用於這個標籤的文本,圖形和提示style 使用的風格,若是不設置,將使用當前的GUISkin的label描述:在3D空間中製做一個定位文本標籤標籤沒有用戶交互,不會獲取鼠標點擊並老是以普通風格渲染,若是你想製做一個可視化響應用戶輸入的空間,使用一個BOX空間◆ static function PositionHandle (position : Vector3) : Vector3◆ static function PositionHandle (position : Vector3, rotation : Quaternion) : Vector3參數rotation 手柄的朝向,若是提供,它將決定位置手柄的朝向,這個可以經過snapping改變,所以它必須是一個引用position 在3D空間中手柄的中心返回:Vector3 修改過的旋轉描述:製做一個3D場景視位置句柄就像內置的移動哦給你根據同樣工做,若是你已經賦值了某些東西到Undo.SetSnapshotInfo,它將徹底能夠Undo,若是你已經賦了一個非Null值到ignoreRaycastObjects,居中手柄將安全支持raycast定位◆ static function RotationHandle (rotation : Quaternion, position : Vector3) : Quaternion參數rotation 手柄的朝向position 在3D空間中手柄的中心返回:Quaternion修改後的旋轉描述:製做一個3D場景視旋轉手柄就像內置的旋轉工具同樣工做,若是你已經賦值了某些東西到Undo.SetSnapshotInfob,它將徹底能夠Undo◆ static function ScaleHandle (scale : Vector3, position : Vector3, rotation : Quaternion, size : float) : Vector3 參數 scale 縮放調整position 手柄的位置rotation 手柄的旋轉返回:Vector3 新縮放向量描述:製做一個3D場景視縮放手柄就像內置的縮放工具同樣工做static function ScaleSlider (scale : float, position : Vector3, direction : Vector3, rotation : Quaternion, size : float, snap : float) : float 參數scale 用戶能夠修改的值position 手柄的位置 direction 手柄的方向 rotation 整個物體的旋轉 size 手柄的尺寸 snap 用戶修改它後的新值描述:製做一個方向縮放滑塊◆ static function ScaleValueHandle (value : float, position : Vector3, rotation : Quaternion, size : float, capFunc : DrawCapFunction, snap : float) : float 參數value 用戶能夠修改的值position 手柄的位置 rotation 手柄的旋轉 size 手柄的尺寸 Snap 用戶修改它後的新值描述:製做一個可拖動浮點數的手柄這個用來製做中心縮放手柄,用戶能夠點擊並上下拖動一個浮點值◆ static function SetCamera (camera : Camera) : void ◆ static function SetCamera (position : Rect, camera : Camera) : void 描述:設置當前相機,這樣全部的手柄和Gizmos都和用它的設置來繪製設置Cameracurrent爲camera並設置它的pixeRect這個不繪製相機,只設置它爲激活,使用DrawCamera.繪製它,它也爲手柄工具函數設置Event.current.mouseRay和Event.current.lastMouseRay◆ static function Slider (position : Vector3, direction : Vector3) : Vector3 ◆ static function Slider (position : Vector3, direction : Vector3, size : float, drawFunc :DrawCapFunction, snap : float) : Vector3 參數position 當前點的位置 direction 滑動的方向 float 手柄的3D尺寸 HandleUtility.GetHandleSize(位置)drawFunc 調用這個函數來實際繪製,默認地,它的Handles.DrawArrowc可是能夠使用任何具備相同名稱的函數描述:製做一個3D滑塊這將在屏幕上繪製一個3D可拖動的手柄,這個手柄被約束爲沿着3D空間中一個方向向量滑動                                  Help用來訪問Unity文檔的輔助類注意,這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加「usingUnityEditor」類方法◆ Static function BrowseURL.(url:string):void描述:在默認瀏覽器中打開url◆ Static function HasHelpForObject(obj:Object):bool描述:這個對象有幫助文件嗎?◆ Static function ShowHelpForObject(obj:Object):void描述:爲這個物體顯示幫助文件◆ Static function ShowHelpPage(page:string):void描述:顯示幫助頁Page應該是幫助頁的URL,一般用file://開頭,若是page用file:///unity/開始,而後它指向Unity半年關注。//打開腳本參考Help.ShowHelpPage ("file:///unity/ScriptReference/index.html");參見:Help.ShowHelpForObject                       MenuCommand類用來爲一個MenuItem提取向下問,MenuCommand對象被傳遞到自定義菜單項函數中,這個函數是使用MenuItem屬性定義的注意:這是一個編輯器類,爲了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間所以對於C#腳本你須要在腳本開始位置添加」usingUnityEditor// 添加名爲 "Do Something" 的上下文菜單@MenuItem ("CONTEXT/Rigidbody/Do Something")static function DoSomething (command : MenuCommand) {var body : Rigidbody = command.context;body.mass = 5;}變量◆ Var context:Object描述:上下文是菜單命令的目標對象一般調用上下文菜單時,上下文是當前選擇的或鼠標之下的項目◆ Var userData:int描述:一個整數用於傳遞自定義信息到一個菜單項構造函數◆ static function MenuCommand (inContext : Object, inUserData : int) : MenuComman

相關文章
相關標籤/搜索