Unity2D碰撞检测

Unity2D碰撞检测
很简单的⼀个判断:打飞机游戏中检测飞机与敌⽅⼦弹是否碰撞。写起来却废了我这个菜鸟不少功夫。
最开始, 我想到的是⽤OnTriggerEnter检测飞机与⼦弹相撞,但是⽆论怎么调试,都⽆法触发,只能作罢。这⼀点以后要了解⼀下,为什么⽆法触发。或许是⾃⼰⼀直没有写对?
private void OnTriggerEnter2D(Collider2D coll)
{
if(coll.tag == "Player")
{
Debug.Log("碰撞发⽣");
GameObject.Destroy(this.gameObject);
}
}
火石轮然后就想到⽤OnColliderEnter检测碰撞。这⾥要注意OnColliderEnter中的参数Collision与OnTriggerEnter中的参数Collider的区别。Collision.gameObject是与当前物体碰撞的物体的引⽤,⽽Collider.gameObject是进⼊触发器范围内的⽬标物体的引⽤。也就是说:Collision.gameObject指向的是与OnColliderEnter⽅法所在脚本所挂载的游戏物体碰撞的游戏物体(对⽅);Collider.gameObject指向的是OnTriggerEnter⽅法所在脚本所挂载的游戏物体⾃⾝(因为触发器包裹的⼀般就是游戏物体⾃⾝)。
private void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "EnemyBullet")
{
Debug.Log("碰撞发⽣(⾓⾊脚本)");cgw
GameObject.Destroy(this.gameObject);
模组网Debug.Log("玩家⾓⾊被销毁");
无触点稳压电源}过氧化氢浓度测定
}
dst指数private void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Player")
{
Debug.Log("碰撞发⽣(⼦弹脚本)");
GameObject.Destroy(this.gameObject);
Debug.Log("敌⽅⼦弹被销毁");
}
}

本文发布于:2024-09-24 04:22:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/205185.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:游戏   物体   碰撞   飞机   触发器   参数   检测
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议