Unity3D脚本中文系列教程(六)

http://dong2008hong.blog.163.com/blog/static/469688272014031943118/

Unity3D脚本中文系列教程(五)

变量

◆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布局代码

上一篇:【es6】class


下一篇:ios 设置亮度、声音;调用发短信、邮件、打电话