遊戲設計社
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Unity 3D 腳本教學 (十一)

向下

Unity 3D 腳本教學 (十一) Empty Unity 3D 腳本教學 (十一)

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

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 horizo​​ntalVelocity=controller.velocity;
horizo​​ntalVelocity=0;
//xz平面上的速率,忽略其他任何速率
var horizo​​ntalSpeed​​= horizo​​ntalVelocity.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("Horizo​​ntal"), 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 ("Horizo​​ntal") * 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之間,該值是相對於場景第一次加載時重心
aaa1218bbb
aaa1218bbb
社員
社員

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

https://design.666forum.com

回頂端 向下

Unity 3D 腳本教學 (十一) Empty 回復: Unity 3D 腳本教學 (十一)

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

◆ 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 AddRelativeFor​​ce(force: Vector3, mode: ForceMode=ForceMode.Force): void
描述:相對於它的坐標系統添加一個力到剛體。
作為結果剛體將開始移動。
//沿著自身z軸向前移動剛體
function FixedUpadate(){
rigidbody.AddRelativeFor​​ce(Vector3.forward*10);
}
◆ function AddRelativeFor​​ce(x: float, y: float, z: float, mode: ForceMode=
ForceMode.Force): void
描述:相對於它的坐標系統添加一個力到剛體。
作為結果剛體將開始移動。
//沿著自身z軸向前移動剛體
function FixedUpadate(){
rigidbody.AddRelativeFor​​ce(0,0,10);
}
如果你想在多幀中使用力,你應該在FixedUpdate中而不是Update使用使用它。
◆ function AddRelativeTorque(torque: Vector3, mode: ForceMode=ForceMode.Force):
void
描述:相對於剛體自身的坐標系統,添加一個力矩到剛體。
剛體將繞著torque軸旋轉。
//繞著全局y軸旋轉剛體
function FixedUpadate(){
rigidbody.AddRelativeFor​​ce(Vector3.up*10);}
◆ function AddRelativeTorque(x: float, y: float, z: float, mode: ForceMode=
ForceMode.Force): void
描述:相對於剛體自身的坐標系統,添加一個力矩到剛體。
剛體將繞著torque軸旋轉。
//繞著自身y軸旋轉剛體
function FixedUpadate(){
rigidbody.AddRelativeFor​​ce(0,10,0);}
如果你想在多幀中使用力,你應該在FixedUpdate中而不是Update使用使用它。
◆ function AddTorque((torque: Vector3, mode: ForceMode=ForceMode.Force): void
描述:為剛體添加一個力矩。
剛體將繞著torque軸旋轉。
//繞著全局y軸旋轉剛體
function FixedUpadate(){
rigidbody.AddTorque(Vector3.up*10);
}
如果你想在多幀中使用力,你應該在FixedUpdate中而不是Update使用使用它。
◆ function AddTorque(x: float, y: float, z: float, mode: ForceMode=ForceMode.Force):
void
描述:為剛體添加一個力矩。
剛體將繞著torque軸旋轉。
/繞著全局y軸旋轉到剛體
function FixedUpadate(){
rigidbody.AddTorque(0,10,0);
}
◆ function ClosestPointOnBounds(position: Vector3): Vector3
描述:到碰撞器包圍盒上最近點。
這可以用來計算受到爆炸傷害時的傷害點數。或計算作用到剛體表面上一個點的爆炸
力。
var hitPoints=10.0;
function ApplyHitPoints(explostionPos: Vector3, radius: float){
//從爆炸位置到剛體表面的距離
var ClosestPoint=rigidbody.ClosestPointOnBounds(explosionPos);
var distance=Vector3f.Distance(closestPoint, explosionPos);
//傷害點數隨著到傷害的距離而降低
var damage=1.0-Mathf.Cllamp01(distance/radius);
//這是我們要用的最終傷害點數。 10 at maximum
damage*=10;
//應用傷害
hitPoints=damage;
}
◆ function GetPointVelocity(worldPoint: Vector3): Vector3
描述:剛體在世界空間中worldPoint點處的速度.
GetPointVelocity在計算速度的時候將考慮剛體的angularVelocity。
//打印車輪的速度
point=transform.InverseTransformPoint(Vector3(0,-2,0));
var velocity=rigidbody.GetPointVelocity(point);
print(velocity.magnitude);
◆ function GetRelativeVelocity(relativePoint: Vector3): Vector3
描述:相對於剛體在relativePoint處的速度。
GetRelativePointVelocity在計算速度的時候將考慮剛體的angularVelocity。
//打印車輪的速度
var relativeVelocity=rigidbody.GetRelativePointVelocity(Vector3(0,-2,0));
print(relativeVelocity.magnitude);
◆ function IsSleeping(): bool
描述:剛體處於休眠?
參考Rigidbody Sleeping獲取更多信息。
if(rigidbody.IsSleeping())
print("Sleeping");
◆ function MovePosition(position: Vector3): void
描述:移動剛體到position.
對於運動學剛體,它基於剛體的運動應用摩擦力。這個讓你模擬剛體位於移動平台之
上的情況。如果你想其他的剛體與運動學剛體交互,你需要在FixedUpdate函數中移動它。
var speed=Vector3(3,0,0);
function FixedUpdate()
{
rigidbody.MovePosition(rigidbody.position+speed*Time.deltaTime);
}
◆ function MoveRotation(rot: Quaternion): void
描述:旋轉剛體到rotation.
對於運動學剛體,它基於剛體的運動應用摩擦力。這個讓你模擬剛體位於移動/旋轉平
台之上的情況。如果你想其他的剛體與運動學剛體交互,你需要在FixedUpdate函數中移
動它。
var eulerAngleVelocity=Vector3(0,100,0);
function FixedUpdate()
{
var deltaRotation=Quaternion.Euler(eulerAngleVelocity*Time.deltaTime);
rigidbody.MoveRotation(rigidbody.rotation*deltaRotation);
}
◆ function SetDensity(density: float): void
描述:基於附加的剛體和固定的密度設置質量。
這個可以用來設置質量為隨著碰撞器的尺寸而縮放。
rigidbody.SetDensity(1.5);
◆ function Sleep(): void
描述:強制剛體休眠至少一幀
一個常見的使用是從Awake中調用它以便使剛體在啟用的時候休眠。參考Rigidbody
Sleeping獲取更多信息。
rigidbody.Sleeping()

◆ function WakeUp(): void
描述:強制剛體甦醒
rigidbody.WakeUp()
參考Rigidbody Sleeping獲取更多信息。
消息傳遞
◆ function OnCollisionEnter(collisionInfo: Collision): void
描述:當這個碰撞器/剛體開始碰撞另一個剛體/碰撞器時OnCollisionEnter被調用。
相對於OnTriggerEnter,OnCollisionEnter傳遞Collision類而不是Collider.Collision類包
含接觸點,碰撞速度等細細。如果在函數中不使用collisionInfo,省略collisionInfo參數以避
免不必要的計算。主要如果碰撞器附加了一個非動力剛體,也只發送碰撞事件。
function OnCollisionEnter(collision:Collision){
//調試繪製所以的接觸點和法線
for(var contact:ContactPoint in collision.contacts){
Debug.DrawRay(contact.point, contact.normal, Color.white);
}
//如果碰撞物體有較大的衝勁就播放聲音
if(collision.relativeVelocity.magnitude>2)
audio.Play();
}
//一枚手榴彈
//-在擊中一個表面時初始化一個爆炸預設
//-然後銷毀它
var explosionPrefab: Transform;
function OnCollisionEnter(collision: Collision){
//旋轉這個物體使y軸面向沿著表面法線的方向
var contact-collision.contacts[0];
var rot=Quaternion.FormToRotation(Vector3.up, contact.mormal);
var pos=contact.point;
Instantiate(explosionPrefab, pos, rot);
//銷毀這個發射物
Destroy(gameObject);
}
◆ function OnCollisionExit(collisionInfo: Collision): void
描述:當這個碰撞器/剛體停止碰撞另一個剛體/碰撞器時OnCollisionExit被調用。
相對於OnTriggerExit,OnCollisionExit傳遞Collision類而不是Collider.Collision類包含
接觸點,碰撞速度等細細。如果在函數中不使用collisionInfo,省略collisionInfo參數以避免
不必要的計算。主要如果碰撞器附加了一個非動力剛體,也只發送碰撞事件。
function OnCollisionExit(collision:Collision){
print("No longer in contact with "+collisionInfo.transform.name);
}
◆ function OnCollisionStay(collisionInfo: Collision): void
描述:對於每個與剛體/碰撞器相觸碰的碰撞器/剛體,OnCollisionStay將在每一幀中被調
用。
相對於OnTriggerStay,OnCollisionStay傳遞Collision類而不是Collider.Collision類包含
接觸點,碰撞速度等細細。如果在函數中不使用collisionInfo,省略collisionInfo參數以避免
不必要的計算。主要如果碰撞器附加了一個非動力剛體,也只發送碰撞事件。
function OnCollisionStay(collision:Collision){
function OnCollisionEnter(collision:Collision){
//調試繪製所以的接觸點和法線
for(var contact:ContactPoint in collision.contacts){
Debug.DrawRay(contact.point, contact.normal, Color.white);
}
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(如果沒有為null)。
rigidbody 附加到這個GameObject的Rigidbody(如果沒有為null)。
camrea 附加到這個GameObject的Camera(如果沒有為null)。
light 附加到這個GameObject的Light(如果沒有為null)。
animation 附加到這個GameObject的Animation(如果沒有為null)。
constantForce 附加到這個GameObject的ConstantForce如果沒有為null)。
renderer 附加到這個GameObject的Renderer(如果沒有為null)。
audio 附加到這個GameObject的AudioSource(如果沒有為null)。
guiText 附加到這個GameObject的GUIText(如果沒有為null)。
networkView 附加到這個GameObject的NetworkView(只讀)。 (如果沒有為null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。 (如果沒有為null)。
collider 附加到這個GameObject的Collider(如果沒有為null)。
hingeJoint 附加到這個GameObject的HingeJoint(如果沒有為null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(如果沒有為null)。
gameObject 這個組件所附加的遊戲物體。一個組件總是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,如果遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回所以type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上所以type類型的組件。
CompareTag 這個遊戲物體被標籤為tag?
SendMessageUpwards 在這個遊戲物體的每個MonoBehaviour和該行為的祖先
上調用名為methodName方法。
SendMessage 在這個遊戲物體上的每個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 立即銷毀物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回所有類型為type的激活物體。

FindObjectsOfType 返回第一個類型為type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷毀。
TextMesh
類,繼承自Component
text mesh component的腳本接口
參見:text mesh component.
變量
◆ var font: Font
描述:使用的Font.
參見:text mesh component.
//設置附加的文本網格的文本
var newFont: Font;
GetComponent(TextMesh).font=newFont;
◆ var font: string
描述:顯示的文本.
參見:text mesh component.
//設置附加的文本網格的文本
GetComponent(TextMesh).text="Hello World";
繼承的成員
繼承的變量
transform 附加到這個GameObject的Transform(如果沒有為null)。
rigidbody 附加到這個GameObject的Rigidbody(如果沒有為null)。
camrea 附加到這個GameObject的Camera(如果沒有為null)。
light 附加到這個GameObject的Light(如果沒有為null)。
animation 附加到這個GameObject的Animation(如果沒有為null)。
constantForce 附加到這個GameObject的ConstantForce如果沒有為null)。
renderer 附加到這個GameObject的Renderer(如果沒有為null)。
audio 附加到這個GameObject的AudioSource(如果沒有為null)。
guiText 附加到這個GameObject的GUIText(如果沒有為null)。
networkView 附加到這個GameObject的NetworkView(只讀)。 (如果沒有為null)。
guiTexture 附加到這個GameObject的GUITexture(只讀)。 (如果沒有為null)。
collider 附加到這個GameObject的Collider(如果沒有為null)。
hingeJoint 附加到這個GameObject的HingeJoint(如果沒有為null)。
particleEmitter 附加到這個GameObject的ParticleEmitter(如果沒有為null)。
gameObject 這個組件所附加的遊戲物體。一個組件總是附加到一個遊戲物體。
tag 這個遊戲物體的標籤。
name 對象的名稱。
hideFlags 該物體是夠被隱藏,保存在場景中或被用戶修改?
繼承的函數
GetComponent 返回type類型的組件,如果遊戲物體上附加了一個,如
果沒有返回null。
GetComponentInChildren 返回type類型的組件,這個組件位於GameObject或任何
它的子物體上,使用深度優先搜索。
GetComponentsInChildren 返回所以type類型的組件,這些組件位於GameObject或
任何它的子物體上。
GetComponents 返回GameObject上所以type類型的組件。
CompareTag 這個遊戲物體被標籤為tag?
SendMessageUpwards 在這個遊戲物體的每個MonoBehaviour和該行為的祖先
上調用名為methodName方法。
SendMessage 在這個遊戲物體上的每個MonoBehaviour上調用
methodName方法。
BroadcastMessage 在這個遊戲物體或其任何子上的每個MonoBehaviour上
調用methodName方法。
GetInstanceID 返回該物體的實例id。
繼承的類函數
operator bool 這個物體存在嗎?
Instantiate 克隆original物體並返回這個克隆。
Destroy 移除一個遊戲物體,組件或資源。
DestroyImmediate 立即銷毀物體obj。強烈建議使用Destroy代替。
FindObjectsOfType 返回所有類型為type的激活物體。
FindObjectsOfType 返回第一個類型為type的激活物體。
operator== 比較兩個物體是否相同。
operator != 比較兩個物體是否不相同。
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷毀。
Transform
類,繼承自Behaviour,可計數
物體的位置,旋轉和縮放。
場景中的每個物體都有一個變換。這個用來存儲並操作物體的位置,旋轉和縮放,每
個變換可以有一個父,它允許你層次地應用位置,旋轉和縮放。這個是可以在層次面板中
看到的層次,它們也支持計數器,這樣你可以循環所以使用的子:
//變量的所有子像是移動10個單位!
for(var child: Transform in transform){
child.position+=Vector3.up*10.0;
}
參見:The component reference, Physics類.
變量
◆ var childCount: int
描述:變化的子的數量。
//打印子物體的數量
print(transform.childCount);
◆ var eulerAngles: Vector3
描述:旋轉作為歐拉角度。
僅僅使用這個變量來讀取和設置絕對值角度。不要遞增它們,因為當該角度超過360
度時它將失敗。使用Transform.Rotate代替.
//打印繞著全局x軸的旋轉角度
print(transform.eulerAngles.x);
//打印繞著全局y軸的旋轉角度
print(transform.eulerAngles.y);
//打印繞著全局z軸的旋轉角度
print(transform.eulerAngles.z);
//使用eulerAngles賦值絕對旋轉
var yRotation=5.0;
function Update()
{
yRotation+=Input.GetAxis("Horizo​​ntal");
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("Horizo​​ntal")*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(如
aaa1218bbb
aaa1218bbb
社員
社員

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

https://design.666forum.com

回頂端 向下

回頂端


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