zoukankan      html  css  js  c++  java
  • 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);
    }

    程序运行结果显示:

     

     

  • 相关阅读:
    归并排序
    快速排序
    希尔排序
    插入排序
    选择排序
    冒泡排序
    排序算法
    Win10 家庭版升级到专业版报错
    WPF 原生Style
    在线图片转换
  • 原文地址:https://www.cnblogs.com/lk95/p/10302876.html
Copyright © 2011-2022 走看看