Unity粒子系统无法正确旋转

时间:2018-09-07 19:21:46

标签: c# unity3d

我遇到一个小问题,即粒子系统不符合我的命令方式。

我做了一个斑点,它跳跃/破折号。每当他这样做时,我都会产生粒子,这会给他带来破折号的效果。 (当Blob向右划线时,粒子向左等。)

问题是我的破折号效果适用于(粒子系统的旋转-90和90)。 当我跳 UP DOWN 时,我将粒子系统旋转到 0&180 ,上下粒子不会旋转。 (请参阅GIF。)

我尝试了2种方法,分别是代码和每个角度的预设预制件,代码如下所示

//The method takes a Vector3 Rotation e.g : ( 0,90,0 )
//This only works for left and right, not for up and down ( 0 & 180 ).
//
private void ParticleSpawner(Vector3 rot)
{
    ParticleSystem ps = dashEffect.GetComponent<ParticleSystem>();
    var sh = ps.shape;
    sh.enabled = true;
    sh.shapeType = ParticleSystemShapeType.Cone;
    sh.rotation = rot;
    sh.angle = 33;
    sh.radius = .1f;
    Instantiate(dashEffect, transform.position, Quaternion.identity);
}

预制件如下:

enter image description here

GIF:https://i.gyazo.com/3ecf2991f10d0ab763423aa254d72364.mp4

1 个答案:

答案 0 :(得分:1)

您正在绕Y轴旋转,因此90度旋转将指向左/右,而180度旋转将指向/远离相机。

要旋转粒子系统向上和向下指向,请尝试绕X轴旋转90度。