1. 程式人生 > >Unity3D筆記第十二天——滑鼠事件、物理類、射線

Unity3D筆記第十二天——滑鼠事件、物理類、射線

滑鼠事件
OnMouseDown:滑鼠在GUIElement或Collider之上,按下滑鼠,該事件即被觸發
OnMouseDrag:滑鼠在GUIElement或Collider之上,按下滑鼠並保持按下狀態,該事件即被觸發
OnMouseEnter:在使用者移動滑鼠進入GUIElement或Collider區域的時候,該事件被觸發
OnMouseExit:在使用者移動滑鼠移出GUIElement或Collider區域的時候,該事件被觸發
OnMouseOver:滑鼠處於GUIElement或Collider之上時,每幀都會呼叫該事件
OnMouseUp:當滑鼠彈起的時候,該事件被觸發呼叫
OnMouseUpAsButton:僅僅在滑鼠在同一個GUIElement or Collider上按下又彈起的情況下會觸發呼叫該事件


射線
射線是一個無窮的線,開始於origin並沿著direction方向。
origin:射線的起點
direction:射線的方向


Physics類屬性
gravity:場景中應用到所有剛性物體的重力。 
minPenetrationForPenalty:兩個物體接觸碰撞時,物體間最小滲透(穿透)深度值。預設0.05.取值範圍從0到無窮大。必須是正數。
bounceThreshold:兩個碰撞物體的相對速度如果在這個設定值之下,不會反彈。預設值2.。取值範圍0到無窮大。必須為正數。 
sleepVelocity:如果物體的線速度在這個速度設定值之下,物體將進入靜止狀態。預設0.15。取值範圍0到無窮大。必須為正數。
sleepAngularVelocity:如果物體的角速度在這個速度設定值之下,物體將進入靜止狀態。預設0.14。 取值範圍0到無窮大。必須為正數。 
maxAngularVelocity:物體的最大角速度值。預設是7。必須為正數。 
solverIterationCount:預設的求解迭代次數允許使用任意剛體(預設為7)。必須為正數。 


Physics類方法
Raycast:在場景中投下可與所有碰撞器碰撞的一條光線。 
RaycastAll:投射一條光線並返回所有碰撞。 
Linecast:從開始位置到結束位置做一個光線投射,如果與碰撞體互動,返回真。 
OverlapSphere:返回球型半徑之內(包括半徑)的所有碰撞體 collider[]。 
CapsuleCast:對場景中的碰撞體進行膠囊的投射,如果相交,返回碰撞體的raycasthit資訊。 
SphereCast:投射球型物體來判斷是否與場景中物體互動,返回 Raycasthit 資訊。 
CapsuleCastAll:和Physics.CapsuleCast 不同的是這個函式返回所有互動的碰撞體資訊。 
SphereCastAll:和Physics.SphereCast 不同的是這個函式返回所有互動的碰撞體資訊。


Physics.Raycast應用
在場景中投下可與所有碰撞器碰撞的一條射線,然後判斷此射線是否與場景中的碰撞體碰撞,碰撞則返回true,沒有則返回false。
判斷從origin發出direction方向,長distance的線段是否與指定層中的碰撞體發生了相交,如果有,返回true值,否則返回false值。