我刚刚制作了一个 Particle System (粒子系统),该系统每 1 秒产生一个 “熔岩” 粒子(使用< strong>各种尺寸,颜色等)。当与这些熔岩粒子之一碰撞时,我需要玩家重生( respawn()函数已经存在并且可以正常工作,现在只需要在正确的时间调用它即可)。我在 Unity答案和其他站点以及 StackOverflow 上进行了大量研究,但不知道如何执行。
这是粒子系统现在的状态的屏幕截图。我启用了 trigger 复选框,并尝试更改了一些内容但没有成功:
并且当玩家触摸熔岩粒子时,应调用此代码:
private void OnParticleCollision(GameObject collision)
{
if (collision.CompareTag("Lava"))
{
StartCoroutine(TouchedLava());
}
}
我在控制台中没有任何错误(即使在运行时)。
谢谢!
答案 0 :(得分:4)
您必须检查“触发器”上方的粒子系统的“碰撞”部分,然后将“碰撞”类型设置为“世界”。
我认为本教程可以为您提供帮助:
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);
}
}