打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
BeiTown's Coder 编码之源 ? Unity3D碰撞检测及Trigger触发器的使用及注意事项
userphoto

2014.04.12

关注

首先新建一个Cube,其本身就已自带了碰撞器Collider,如图

要使用Trigger检测物体进入,则需要勾选Is Trigger选项
碰撞检测触发器Trigger 有别于碰撞检测器 Collision,其可以不受物理效果影响,一些可穿透区域的碰撞检测,可以使用Trigger来进行碰撞检测
常用方法如下:
OnTriggerEnter 进入时
OnTriggerExit 离开时
OnTriggerStay 处于时

同上碰撞检测器 Collision 也有3个方法:
OnCollisionEnter
OnCollisionExit
OnCollisionStay

这里我们需要为跑道添加一个终点撞线的机制,所以使用可穿透的碰撞检测触发器Trigger

代码如下:

1
2
3
4
5
    void OnTriggerEnter(Collider collider)
    {
        print(collider.gameObject.name + ":" + Time.time);
     
    }

OnTriggerEnter传入的参数必须为Collider,故能触发该函数的对象必须具有Collider组建。这里我们用的是角色控制器Character Controller 自带了Collider组建
此时每当有角色撞线时即会打印角色名及系统时间

接下来我们使用碰撞检测器 Collision 来进行一个碰撞检测
首先取消被撞击对象上的Is Trigger选项,并添加脚本代码如下

1
2
3
4
5
    void OnCollisionEnter(Collision collision)
    {
        print(collision.gameObject.name + ":" + Time.time);
     
    }

此时用例为两个cube,需要注意的是,撞击者cube均要添加刚体组件,否则无效,Trigger同理。
同时cube的长宽高,不能为0,否则无法触发。
另一问题是角色控制器的胶囊体与Cube Collider碰撞不激活碰撞检测,但是手动往前推动一下就会触发,该问题目前尚未解决,有知道的朋友欢迎留言讨论。

本篇疑问尚且留存,待解决后更正。

BeiTown
2013.03.09

1

本文链接:Unity3D碰撞检测及Trigger触发器的使用及注意事项

转载声明:BeiTown原创,转载请注明来源:BeiTown's Coder 编码之源,谢谢


Tags: , , ,

This entry was posted on 星期六, 三月 9th, 2013 at 14:08 and is filed under Unity3D. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed. 31 views    

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Unity3d碰撞检测中碰撞器与触发器的区别
游戏开发中的物理之使用KinematicBody2D
Unity零基础到入门 | Unity中必备组件技能学习!
Physics 物理
Ovarian collision tumor | Radiology Reference Article | Radiopaedia.org
Unity3D 之射线检测
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服