自学内容网 自学内容网

Unity(第十八部)物理力学,碰撞,触发等

1、重力

刚体组件

英文中文描述
RigidBody刚体组件physics->rigidbody ,刚体组件使一个物体有了质量,重力等。,use gravity 勾选后,物体才会受到重力,会自动下落,取消勾选就不会。,,is kinematic 表示运动学刚体,此时物体质量为0,就不会受重力的影响。
 1. 质量
 2. 阻力
 3. 角阻力
 4. 使用重力(取消后,只是不受重力影响,阻力等还是受影响的)
 5. Is Kinematic(是运动学的,勾选后,不受物理影响)
 6. 插值(一般不用修改,插值是按照上一帧做插值,外推是按照下一帧做插值)
 7. 碰撞检测(离散的节省性能非连续检测高速物体检测不到,持续和连续动态是相对的快速的物体是连续动态不动的选择持续比较好但是浪费性能,没有翻译的Co...是连续检测性能低于持续和连续高于离散)
 8. Constraints(冻结位置是值某个方向不能运动,冻结旋转同理) 

2、碰撞的产生和监听

在这里插入图片描述

英文中文描述
Mesh Collider网格碰撞器
Sphere Collider球体碰撞器
  1. 碰撞中心(修改了碰撞中心会发生偏移)
  2. 碰撞半径(大了会间隔碰撞,下了会穿透一部分)

碰撞组件实际碰撞发生的是碰撞线框
碰撞条件

  1. 至少有一个物体有刚体组件
  2. 只有物体都有碰撞器的时候才会发生碰撞
//设置一个爆炸的预设体
public gameObject Prefab;
//监听发生碰撞
 private void OnCollisionEnter(Collision collision)
    { 
    //创建一个新的爆炸物体
    Instantiate(Prefab, transform.position, Quaternion.identity)
    //销毁自身(火焰物体) 
Destroy(gameObject); 
        //碰撞到的物体信息
        Debug.Log(colision.gameObject.name);
        Debug.Log("碰撞发生!");
    }
//持续碰撞中
 private void OnCollisionStay(Collision collision)
    { 
        Debug.Log("持续碰撞中!");
    }
//结束碰撞
 private void OnCollisionExit(Collision collision)
    { 
        Debug.Log("结束碰撞!");
    }

3、触发

触发条件 和碰撞器一样
在这里插入图片描述

  1. 至少有一个物体有刚体组件
  2. 只有物体都有碰撞器的时候才会发生碰撞,只是其中一个碰撞器设置成触发器;一般触发器设置成看不见的

可移动的游戏物体脚本

void Update()
{
//水平轴
float horizontal = Input.GetAxis("Horizontal");
//垂直轴
float vertical = Input.GetAxis("Vertical");
//创建成一个方向向量
Vector3 dir = new Vector3(horizontal, 0, vertical);
//朝向量方向移动Translate是平移,*Time.dalteTime是指每秒
transform.Translate(dir*Time.dalteTime);
}

触发器物体的脚本
物体Cube (1)是墙壁,触发后执行的物体,下面代码是触发后Cube (1)墙体消失

    private void OnTriggerEnter(Collider other)
    {
        GameObject cube = GameObject.Find("Cube (1)");
        if (cube != null)
        {

            cube.SetActive(false);
        }
    }
    private void OnTriggerStay(Collider other)
    {
    }
    private void OnTriggerExit(Collider other)
    {

    }

4、物理关节(铰链,弹簧等)
敬请期待

5、物理材质
敬请期待
6、


原文地址:https://blog.csdn.net/wangzhae/article/details/136360654

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!