關鍵變數:
private
bool isonground;
//是否在地面
public
layermask groundlayer;
//地面層級
public
float groundcheckradius;
//用於檢測是否發生重疊的圓的半徑
public
float raylength;
//射線的長度
public
transform groundcheckpositon;
//檢測點資訊
判斷是否在地面:
方法一:區域重疊判斷方式,返回值為collider2d型別,可用bool作簡單接收,以下只用圓形和方形作示例,還有許多其他形狀。
//圓形區域
physics2d.
overlapcircle
(groundcheckpositon.position,groundcheckradius, groundlayer)
;//方形區域,第二個引數為vector2型別,第三個引數為旋轉角度,在大多數場景下方形區域更加適用
physics2d.
overlapbox
(groundcheckpositon.position,groundchecksquare,
0, groundlayer)
;
方法二:射線檢測判斷方式,返回值為raycasthit2d型別,raycasthit2d的point屬性輸出的是檢測到的第乙個碰撞點位置,可用bool作簡單接收
physics2d.
raycast
(groundcheckpositon.position,
-transform.up, raylength,groundlayer)
;
視覺化檢測區域:
為方便檢測區域的視覺化可使用以下方法進行視覺化,方便檢查及調整。
方法一:對應於區域重疊判斷方式,該繪製**需要在該放方法中宣告,也擁有多種形狀,以下示例為正方體,第二各引數為vector3型別,本次傳入的是vector2型別繪製了乙個方形。繪製wirecube等wire型別的形狀只會描繪邊界,不會填充各個面,便於檢查及調整。
private
void
ondrawgizmos()
方法二:對應於射線檢測判斷方式(也可採用gizmos繪製)。
1.繪製線,第乙個和第二個引數為vector3型別引數代表起始點與終點,第三個是繪製線的顏色,繪製的終點可以起點加上射線方向的射線長度,用於檢視設定的射線情況。或者使用射線返回值raycasthit2d中的point屬性,顯示射線實際發射的狀態。
debug.
drawline
(startpoint,endpoint,color)
;
2.繪製射線,第乙個引數,第二個引數均為vector3型別,分別代表射線的長度與方向向量(方向與長度),因此前兩個引數可以與,第三個引數為顏色。
debug.
drawray
(startpoint,direction*length,color)
;
在跳躍中可能遇到的問題,也是我在執行過程中遇到的,雖然很簡單的問題,但是確實也煩了好一會,希望新開發者看到後可以避免。 Unity遊戲開發 Unity物理引擎
詳細講解unity的物理引擎系統以及物理元件的應用及注意事項。學習剛體rigidbody和碰撞體collider元件的工作方式和應用場景。我們設計了非常高效的教學路徑,讓你快速入門unity物理元件的設定方式及操作流程。同時我們也對所有物理元件進行了非常詳細的講解及實操演示。帶你全面深度了解rigi...
Unity遊戲開發背景知識
一 unity 1.支援的ide 整合開發環境 monodevelop 適用於windows mac linux,主要用於mac visual studio 適用於microsoft支援的所有平台 二 visual studio基本使用 1.vs使用基本要求 1.新建和儲存專案 2.了解vs介面,學...
C 開發Unity遊戲教程之Unity中方法的引數
出現在指令碼中的方法,無論是在定義的時候,還是使用的時候,後面都跟著一對括號 有意義嗎?看起來最多也就是起個快速識別方法的作用吧。既然c 的語法規定方法就應該這麼寫,肯定是有一定道理的。如果是上公升到戰略意義的道理,連作者也不是很明白,但是作者知道這對括號裡可以新增 引數 要說明引數的作用,就必須從...