unity碰撞检测识别对象的几种方法,刚体篇

这篇具有很好参考价值的文章主要介绍了unity碰撞检测识别对象的几种方法,刚体篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、 指定碰撞层级

可以在物体的Collider组件中设置碰撞层级,只有属于指定层级的物体才会响应碰撞事件。例如,我们可以将敌人设置为一个单独的层级,然后在玩家的脚本中检测碰撞时,只响应属于敌人层级的物体。

void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.layer == LayerMask.NameToLayer("Enemy"))
    {
        // 碰撞到敌人,执行相应操作
    }
}

二、 指定Collider组件的标签

可以在物体的Collider组件中设置标签,然后在脚本中检测碰撞时,只响应标签为指定值的物体。例如,我们可以将敌人的Collider组件设置为"Enemy"标签,然后在玩家的脚本中检测碰撞时,只响应标签为"Enemy"的物体。

void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.CompareTag("Enemy"))
    {
        // 碰撞到敌人,执行相应操作
    }
}

三、 判断物体的类型

可以使用GetComponent方法获取碰撞到的物体的组件,然后判断组件类型是否为目标类型。例如,我们可以在敌人脚本中检测碰撞时,只响应玩家的物体。

void OnCollisionEnter(Collision collision)
{
    Player player = collision.gameObject.GetComponent<Player>();
    if (player != null)
    {
        // 碰撞到玩家,执行相应操作
    }
}

四、 判断物体的名字

你可能指的是通过识别对象的名称来进行碰撞检测。文章来源地址https://www.toymoban.com/news/detail-515524.html

 void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.name == "Enemy")
    {
        // 碰撞到敌人,执行相应操作
    }
}

到了这里,关于unity碰撞检测识别对象的几种方法,刚体篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity中获取游戏对象的几种方式

    在学习如何获取物体和组件时先明白说明什么是物体,组件和对象。 物体:unity中在层级显示的东西都可以叫做物体 组件:unity中提供了大量已经写好的组件,比如刚体,碰撞体等,自己 编写的脚本也是一种组件类 对象:挂载到物体上的脚本是一个实例化的组件,也就是一

    2024年01月17日
    浏览(39)
  • Unity日记18(刚体、获取碰撞物的信息、铰链、弹簧)

    目录 刚体 刚体 重力 isKinematic 碰撞检测 变换限制 ​编辑 碰撞  获取到碰撞物的实体,输出它的某个信息。  碰撞和触发器的区别 铰链 锚点和轴 弹簧组件 固定关节组件 定制摩擦力面 添加了好像不能禁用。 重力,顾名思义。 禁用重力,不受重力影响。当有物体撞击,猜测

    2024年02月07日
    浏览(38)
  • Unity设置了刚体和碰撞体却仍旧会穿墙的原因

            自己在做2D游戏练习的时候,发现给僵尸设置了碰撞体和刚体,它却仍然可以穿墙来追我的主角,简直太可怕了,然后我就开始网上找各种可能情况。          首先看了一眼Edit--projectSetting--Physics中有没有勾选他俩的碰撞。          发现不是这个的原因,就又

    2024年02月11日
    浏览(76)
  • Unity常用方法-- Collision碰撞检测

    LayerMask 描述 指定要在 Physics.Raycast 中使用的层。 代码 Physics2D.Raycast 函数结构 public static RaycastHit2D Raycast  (Vector2 origin,  Vector2 direction, float distance= Mathf.Infinity, int layerMask= DefaultRaycastLayers, float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity); 参数 origin 射线在 2D 空间中的

    2024年02月03日
    浏览(44)
  • JavaScript判断对象是否为空对象的几种方法

    目录 1、空对象对应的字符串为 \\\"{}\\\" 2、for in 3、jquery 的 isEmptyObject()方法 4、Object.getOwnPropertyNames() 5、ES6 的 Object.keys() JSON.stringify()扩展 1、第一大特性 小结 2、第二大特性 3、第三大特性 4、第四大特性 5、第五大特性 6、第六大特性 7、第七大特性 8、第八大特性 var data = {}; v

    2024年01月16日
    浏览(88)
  • JVM 创建对象时分配内存的几种方法、分配方法的选择

            假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一边,空闲的内存被放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那 个指针向空闲空间方向挪动一段与对象大小相等的距离。         如果Java堆中的内存并不是规

    2024年02月10日
    浏览(45)
  • Unity读取Json的几种方法

    目录 存入和读取JSON工具 读取本地Json文件 1、unity自带方法 类名:JsonUtility          序列化:ToJson()                    反序列化:FromJson()         用于接收的JSON实体类需要声明 [Serializable]  序列化 实体类中的成员变量要是字段而不是属性{get;set;} 处理数组的话,外

    2024年01月21日
    浏览(43)
  • Unity——延时执行的几种方法

    延时执行的函数,可以自己设定延时要执行的函数和具体延时的时间,是Monobehaviour基类中实现好的方法 在Update等刷新函数内计时,timer += Time.deltaTime 当时间达到预期,执行需要延时的方法。需要注意的是,增量时间Time.deltaTime是每帧都不同的浮点数。计时器不能用 == 去判断

    2024年02月11日
    浏览(38)
  • 前端文件上传识别文件类型的几种方法,快看你是哪个?

    在我们的日常开发过程中,我们会经常接触到一些文件上传的事情,其中在前端这边识别识别文件类型的是非常常见的功能,例如来限制文件上传的类型,接下来我们来了解一下最常见的几种方式。 最简单快捷的方法就是 hiyaJavaScript 获取文件名的扩展名,对比扩展名来判断

    2024年02月20日
    浏览(46)
  • 【图文详解】Unity存储游戏数据的几种方法

    在Unity中,常用的数据存储方法包括PlayerPrefs、ScriptableObject、JSON、XML和数据库等。 PlayerPrefs是Unity自带的一种简单的键值存储系统,适合存储一些简单的游戏数据。ScriptableObject是一种Unity类,可用于创建可序列化的对象并存储数据。JSON和XML是轻量级的数据交换格式,可以通过

    2023年04月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包