Unity 3D 腳本教學 (六)

上一篇主題 下一篇主題 向下

Unity 3D 腳本教學 (六)

發表  aaa1218bbb 于 周五 11月 25, 2011 2:11 pm

變量
◆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,cg,cb,ca):在其他圖形中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
描述:設置當前紋理坐標(vx,vy,vz)實際的紋理單元。
在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
描述:為所有紋理單元設置當前紋理坐標(vx, vy, vz)
這個對應於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(vx, vyvz); 在其他圖形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佈局代碼

_________________
歡迎大家多多交流~


aaa1218bbb
社員
社員

文章數 : 65
積分 : 2084
注冊日期 : 2011-11-22

檢視會員個人資料 http://design.gugebb.com

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章