Unity3D脚本中文系列教程(十一)
http://dong2008hong.blog.163.com/blog/static/4696882720140313058768/
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属性.