Unity 中動態修改碰撞框(位置,大小,方向)


 在Unity中,玩家處於不同的狀態,要求的碰撞框的 位置/大小/方向 會有所改變,怎么動態的修改碰撞框呢?

下面是Capsure Collider(膠囊體)的修改:

CapsuleCollider.direction=0,1 or 2;

這里0,1,2,分別對應X,Y,Z方向

怎么將中心/半徑/高度/方向一起修改呢?這里我設置了一個方法

    /// <summary>
    /// 改變碰撞框的大小和位置 /// </summary>
    /// <param name="center">中心</param>
    /// <param name="radius">半徑</param>
    /// <param name="hight">高度</param>
    /// <param name="direction">方向</param>
    private void ChangeRunColliderEvent(Vector3 center, float radius,float hight,int direction) { capsuleCollider.center = center; capsuleCollider.radius = radius; capsuleCollider.height = hight; capsuleCollider.direction = direction; }

好了,方法設置完之后,只需要根據玩家所要求的狀態就可以調用這個方法來修改碰撞框了


if (ani.IsPlaying("slide"))
{
ChangeRunColliderEvent(new Vector3(0.11f, -6.19f, -2.11f), 3.08f, 13.09f,2);
}
else
{
ChangeRunColliderEvent(new Vector3(0.69f, -2.50f, -2.81f), 4.05f, 13.69f,1);
}

程序運行結果顯示:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM