Beispiel #1
0
        /// <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                                                           //色
                );
        }