Unity2d碰撞触发器你不知道的事情

本文通过实例演示了Unity2D中碰撞器触发的基本条件,包括Collider2D的使用、Rigidbody2D的配置及IsTrigger选项的重要性。文章详细介绍了如何设置才能使两个物体正确触发碰撞器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   博主上一篇贴子有讲到Unity3d的碰撞器触发的条件(f附上链接https://blog.youkuaiyun.com/qq_37055562/article/details/82730378),那么Unity2d碰撞器触发的条件和Unity3d的触发条件是一样的吗?

那么大家一起来看一下,我先在场景中创建两只乌龟

左边的乌龟就叫做会动的乌龟挂上一个MoveTo脚本

 public GameObject Target;
	// Use this for initialization
	void Start ()
    {
		
	}
	
	// Update is called once per frame
	void Update ()
    {
        transform.position = Vector3.MoveTowards(transform.position, Target.transform.position, 5 * Time.deltaTime);
	}
    void OnTriggerEnter2D(Collider2D collision)
    {
        Debug.Log("true");
    }

右边的乌龟叫不会动的乌龟挂上脚本Test

// Use this for initialization
	void Start ()
    {
		
	}
	
	// Update is called once per frame
	void Update ()
    {
		
	}
    void OnTriggerEnter2D(Collider2D collision)
    {
        Debug.Log("false");
    }

经过我的测试(大致测试过程可以看上一篇帖子https://blog.youkuaiyun.com/qq_37055562/article/details/82730378,这里主要是讲不同点),我发现2d碰撞器触发的条件主要是要注意Rigibody2D,当我给会动的乌龟加上Rigibody2D并且将它的BodyType选择为static时(不动的乌龟仅仅加上一个Boxcollider2D),碰撞器是无法触发的。

所以我们如果要触发碰撞器,我们应该把Rigibody2d的BodyType选择为Dynamic或者kinematic

 

友情提示:如果不想两个物体发生碰撞,在Box Collider2D中勾选Is Trigger即可。

要是想发生碰撞(不会触发碰撞器),Box Collider2D中的Trigger不勾,并且Rigibody中的BodyType只能选Dynamic;

 

总结:1.要触发碰撞器每个物体必须要有Collider2D

           2.其中一个物体必须要有Rigibody2D,并且BodyType不能是Static(Rigibody2D里面的Simulated一定要勾选)

           3.必须要有一个碰撞器勾选了Is Trigger(最好两个都勾下)

           如果有错误的地方,欢迎大家指正,一起学习哈!

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值