您的位置:首页 > 移动开发 > Unity3D

Unity3D脚本中文系列教程(十一)

2012-09-17 18:18 465 查看
BoxCollider

类,继承自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.enabled=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。

//打印车轮的速度

var point : Vector3;

var velocity : Vector3;

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);

//////////////////////////////////////////

var point : Vector3;

var velocity : Vector3;

point = transform.InverseTransformPoint(Vector3(0,
-.2, 0));

velocity = rigidbody.GetPointVelocity(point);

print(velocity.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 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不被自动销毁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: