繁体   English   中英

我的投射物不会在2D侧面滚动Unity项目中与敌人碰撞?

[英]My projectiles wont collide with my enemies in a 2D side scrolling Unity project?

顾名思义,我最近才刚开始学习Unity,并且正在练习侧面滚动射击游戏。 我一直在遵循有关Udemy的课程,并且(据我所知)我一直在遵循导师对这封信的指示,但在他对其进行测试的那一刻,它的效果很好,因为射弹直接穿过了我的敌人。

在这一点上,我有些困惑,所以我想在这里发帖,看看你们的想法。 我敢打赌,这是我从未做过的非常简单的事情。

请在下面查看我的弹丸代码:

using UnityEngine; using System.Collections;

public class DestroyEnemyAndProjectile : MonoBehaviour {

public GameObject WhiteExplosion;
public GameObject OrangeExplosion;

void Start()
{

}


void Update()
{

}

void OnCollisionEnter2D (Collision2D tempCollision)
{
    if (tempCollision.gameObject.tag == "Collision")
    {
        spawnParticles(tempCollision.transform.position);

        Destroy(tempCollision.gameObject);
    }

}

void spawnParticles(Vector2 tempPosition)
{
    Instantiate(WhiteExplosion, tempPosition, Quaternion.identity);
    Instantiate(OrangeExplosion, tempPosition, Quaternion.identity);
}
}

谢谢你的帮助!

我确实向他们发布了一个问题,得到了答复,他们建议说,射弹的速度过快,并检查是否附有Rigidbody 2D-两者都已收集

确保您要与之碰撞的对象的标签“ Collision”具有相同的大小写。 如果不是这样,您可以通过以下方式实现:

1. Selecting the GameObject to be collided with
2. In the top-right, select the Tag property
3. Add tag, click the plus and type in "Collision"
4. Select the GameObject again, and select the "Collision" tag from the Tag property dropdown

否则,如果那不是问题。 确保弹丸具有Collider2D组件类型,并且弹丸或与之碰撞的对象具有Rigidbody2D。

首先,我想了解一下此脚本的当前行为。 是否调用了碰撞方法,并且弹丸仍然穿过敌人? 还是根本没有调用碰撞方法?

话虽如此,这些是您应该检查以使冲突起作用的事情:

  • 确保弹丸和敌人附有Collider2D组件。
  • 确保弹丸和/或敌人(至少要其中之一)带有Rigidbody2D。
  • 确保将弹丸层和敌人层设置为在碰撞矩阵中碰撞(可以在“编辑”->“项目设置”->“物理”中找到碰撞矩阵)
  • 确保敌方GameObject的标记设置为“碰撞”。

PS:欢迎来到Unity,实际上,此类问题通常是由您可能错过的超级简单问题引起的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM