如何将粒子系统附加到精灵上的点
How to attach particle system to point on sprite
我有一个围绕一个点旋转的游戏对象,并附加了粒子系统(附加到子节点),当我改变旋转方向(游戏对象向相反方向移动)时,我的粒子系统没有翻转我的游戏对象并继续在顶部(它应该在底部)。
所以我在这上面花了很多时间,也许你知道一些解决这个问题的方法。希望屏幕会更清楚。
第一个方向:
第二个方向:
您可以通过两种方式解决此问题:
通过将 y 旋转更改为 -180 然后更改为 0 来翻转角色,而不是使用其他方法或动画。这样子对象也会移动,它会起作用。
将 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);
}
我有一个围绕一个点旋转的游戏对象,并附加了粒子系统(附加到子节点),当我改变旋转方向(游戏对象向相反方向移动)时,我的粒子系统没有翻转我的游戏对象并继续在顶部(它应该在底部)。
所以我在这上面花了很多时间,也许你知道一些解决这个问题的方法。希望屏幕会更清楚。
第一个方向:
第二个方向:
您可以通过两种方式解决此问题:
通过将 y 旋转更改为 -180 然后更改为 0 来翻转角色,而不是使用其他方法或动画。这样子对象也会移动,它会起作用。
将 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);
}