如何将粒子系统附加到精灵上的点

How to attach particle system to point on sprite

我有一个围绕一个点旋转的游戏对象,并附加了粒子系统(附加到子节点),当我改变旋转方向(游戏对象向相反方向移动)时,我的粒子系统没有翻转我的游戏对象并继续在顶部(它应该在底部)。

所以我在这上面花了很多时间,也许你知道一些解决这个问题的方法。希望屏幕会更清楚。

第一个方向:

第二个方向:

您可以通过两种方式解决此问题:

  1. 通过将 y 旋转更改为 -180 然后更改为 0 来翻转角色,而不是使用其他方法或动画。这样子对象也会移动,它会起作用。

  2. 将 partcyle 系统的渲染模式更改为世界 space 并查看它是否在移动。或者,如果您正在使用动画更改翻转,您可以录制动画,以便手动更改粒子系统的位置。这样你要翻转粒子就要翻转动画

public void changeDirection()
{
    flipShip();
    vec = new Vector3(0, 0, -vec.z);

    var rotationVector = new Vector3(transform.rotation.x, transform.rotation.y, 
    180+transform.rotation.z);

    transform.rotation = Quaternion.Euler(rotationVector);
}