/// <summary> /// エフェクトの生成 /// </summary> private void EmitEffect(ParticleSystem particle, Vector2 p1, Vector2 p2, float density) { if (!particle) { return; } //方向と距離の取得 Vector2 dir = p2 - p1; float dis = dir.magnitude; dir.Normalize(); //エフェクトの生成 float tempDis = 0f; do { particle.Emit( p1 + dir * tempDis, //座標 FuncBox.RandomVector2() * speed, //速度 UnityEngine.Random.Range(width * 0.8f, width), //大きさ UnityEngine.Random.Range(0.2f, 1f), //時間 color //色 ); tempDis += density; } while (tempDis < dis); particle.Emit( p1 + dir * dis, //座標 FuncBox.RandomVector2() * speed, //速度 UnityEngine.Random.Range(width * 0.8f, width), //大きさ UnityEngine.Random.Range(0.2f, 1f), //時間 color //色 ); }