Unity3D物理系统碰撞

目录

一、如何让两个游戏物体之间产生碰撞

二、物理碰撞检测响应函数

1. OnCollisionEnter(Collision collision)

2.碰撞结束分离时 会自动执行的函数

3.两个物体相互摩擦时  会不断执行的函数

三.触发器检测响应函数

1.触发器的作用是什么

2.触发开始的函数 当第一次接触会自动调用

3.触发结束的函数 当水乳交融的状态结束时 会调用一次

4.当两个对象 水乳交融时 会不停调用

四. 要明确什么时候会响应函数

1.只要挂在的对象 能和别的物体产生碰撞或者触发 那么对应的这6个函数是就能被响应

2.6个函数不是说 我都得写 我们一般时根据需求来进行选择书写

3.如果时一个异型物体。刚体在父对象上,如果你想通过子对象上挂脚本检测是不行的 必须得挂在这个刚体的父对象上

4.要明确物理碰撞和触发器碰撞响应的区别 

总结


一、如何让两个游戏物体之间产生碰撞

必备条件至少一个刚体和两个碰撞器

二、物理碰撞检测响应函数

1. OnCollisionEnter(Collision collision)

代码如下(示例):

   private void OnCollisionEnter(Collision collision)
    {
        //Collision类型的参数包含了 碰到自己的对象的相关信息

        //关键参数
        //1.碰撞到的对象碰撞器的信息
        //collision.collider

        //2.碰撞对象的依附对象(gameobject)
        //collision.gameObject

        //3.碰撞对象的依附对象的位置信息
        //collision.transform

        //4.接触点数相关
        //collision.contactCount
        //接触点 具体的坐标
        //ContactPoint[] pos=collision.contactCount;
        print(this.name + "被" + collision.gameObject.name + "碰撞");
        //只要得到 了碰撞对象的一个信息,就能得到他的所有信息
    }

2.碰撞结束分离时 会自动执行的函数

代码如下(示例):

private void OnCollisionExit(Collision collision)
    {
        print(this.name + "和" + collision.gameObject.name + "分离");
    }

3.两个物体相互摩擦时  会不断执行的函数

   private void OnCollisionStay(Collision collision)
    {
        print(this.name + "被" + collision.gameObject.name + "摩擦");
    }

三.触发器检测响应函数

1.触发器的作用是什么

让两个物体碰撞时没有物理效果,只进行碰撞处理

2.触发开始的函数 当第一次接触会自动调用

   private void OnTriggerEnter(Collider other)
    {
        
    }

3.触发结束的函数 当水乳交融的状态结束时 会调用一次

    private void OnTriggerExit(Collider other)
    {
        
    }

4.当两个对象 水乳交融时 会不停调用

  private void OnTriggerStay(Collider other)
    {
        
    }

四. 要明确什么时候会响应函数

1.只要挂在的对象 能和别的物体产生碰撞或者触发 那么对应的这6个函数是就能被响应


2.6个函数不是说 我都得写 我们一般时根据需求来进行选择书写


3.如果时一个异型物体。刚体在父对象上,如果你想通过子对象上挂脚本检测是不行的 必须得挂在这个刚体的父对象上

4.要明确物理碰撞和触发器碰撞响应的区别 


总结


例如:本篇文章介绍了unity3d碰撞检测函数的基本使用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值