顾名思义,我最近才刚开始学习Unity,我正在练习制作侧面滚动射击游戏。我一直在遵循有关Udemy的课程,并且(据我所知)我一直在遵循导师对这封信的指示,但在他对其进行测试的那一刻,它的效果很好,因为射弹直接穿过了我的敌人。 / p>
在这一点上,我有些难过,所以我想在这里发帖看看你们的想法。我敢打赌,这是我从未做过的非常简单的事情。
请在下面查看我的弹丸代码:
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-两者都已收集
答案 0 :(得分:0)
确保您要与之碰撞的对象的标签“ 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。
答案 1 :(得分:0)
首先,我想了解一下此脚本的当前行为。是否调用了碰撞方法,并且弹丸仍然穿过敌人?还是根本没有调用碰撞方法?
话虽如此,但为了使碰撞正常进行,您应该检查以下这些事情:
P.S:欢迎来到Unity,实际上,此类问题通常是由您可能错过的超级简单问题引起的。