Enr*_*vis 6 c# unity-game-engine
我刚刚制作了一个粒子系统,每1秒产生一个“熔岩”粒子(具有各种尺寸、颜色等)。我需要玩家在与这些熔岩粒子之一碰撞时重生(respawn()函数已经存在并且可以工作,现在只需要在正确的时间调用它)。我对Unity 答案和其他网站以及StackOverflow做了很多研究,但不明白如何做到这一点。
这是粒子系统现在的屏幕截图。我启用了触发器复选框并尝试更改一些内容,但没有成功:
当玩家触摸熔岩粒子时应该调用此代码:
private void OnParticleCollision(GameObject collision)
{
if (collision.CompareTag("Lava"))
{
StartCoroutine(TouchedLava());
}
}
Run Code Online (Sandbox Code Playgroud)
我在控制台中没有收到任何错误(即使在运行时)。
提前致谢!
您必须检查粒子系统的碰撞部分(位于触发器上方),然后将碰撞类型设置为世界。
我认为本教程可能对您有所帮助:
https://www.youtube.com/watch?v=JRa2g3vgzBo&list=PLX2vGYjWbI0QJJfR-jSqxonYuCHrUhAvN
编辑:
这是我的工作脚本:
public class ParticleTest : MonoBehaviour
{
public ParticleSystem part;
void Start()
{
part = GetComponent<ParticleSystem>();
}
void OnParticleCollision(GameObject other)
{
if(other.tag == "Player")
Debug.Log(other.tag);
}
}
Run Code Online (Sandbox Code Playgroud)