技術共有

[Unity2D 2022: パーティクル システム] ヒット パーティクルの特殊効果を追加

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. パーティクル特殊効果ゲーム オブジェクトを作成する

2. パーティクル システムのプロパティを変更する

1. 基本属性

(1) パーティクルの放出時間(Duration)を1秒に変更します。

(2) ループのチェックを外す

(3) パーティクルの存在時間 (Start Lifetime) を 0.1 ~ 0.2 の間のランダムな値に変更します。

(4) 粒子の初速度(Start Speed)を0に変更します。

(5) パーティクルの初期サイズ (Start Size) を 0.7 ~ 1 の間のランダムな値に変更します。

(6) パーティクルの初期回転角度 (Start Rotation) を 0 ~ 360 のランダムな値に変更します。

2. 排出

(1) 放出されるパーティクルの速度 (Rate over Time) を 0 に設定します (つまり、パーティクルを放出しません)。

(2) バーストを追加 (Burst)、Time は 0、Count は 5

3. エミッタ形状(Shape)

(1) 形状を円に設定

(2) 回転角度(Rotation)をx軸方向に900度に設定します。

(3) 半径を (半径) 0.12 に設定します。

(4) モード(Mode)をBurst Spread(爆発拡散)に設定します。

4. 粒子の色 (寿命にわたる色)

(1) 透明度を 255-0 に設定します (つまり、ますます透明になります)。

5. 粒子サイズ (寿命にわたるサイズ)

(1) 粒子径を0.6~1に設定します。

6. パーティクルテクスチャアニメーション(テクスチャシートアニメーション)

(1) パーティクルスプライト画像の追加

3. ヒットした特殊効果プレハブを作成する

4. 弾が敵に当たると特殊効果が再生されます。

1.箇条書きスクリプトを編集します。

(1) ヒットした特殊効果プレハブの作成

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. }

(2) イテレータ インターフェイスを書き換え、1 秒の遅延後にヒット パーティクル エフェクトを削除します。

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. // 在1s后删除粒子特效
  6. private async Task deleteEffectParticle(GameObject EffectParticle, float delay)
  7. {
  8. // 等待1s
  9. await Task.Delay(1000);
  10. // 删除粒子特效
  11. Destroy(EffectParticle);
  12. }
  13. }

(3) 敵に命中すると、弾の位置にヒットパーティクルの特殊効果が発生しますが、1秒後に消去されます。

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. // 击中敌人
  6. private void OnCollisionEnter2D(Collision2D collision)
  7. {
  8. Enemy enemy = collision.gameObject.GetComponent<Enemy>();
  9. if(enemy != null) {
  10. enemy.changeHealthPoint(-25);
  11. GameObject hitEffectParticle = Instantiate(hitEffectParticlePrefab, transform.position, Quaternion.identity);
  12. deleteHitEffectParticle(hitEffectParticle, 1);
  13. }
  14. Destroy(gameObject);
  15. }
  16. // 在1s后删除粒子特效
  17. public static async Task deleteEffectParticle(GameObject EffectParticle, float delay)
  18. {
  19. // 等待1s
  20. await Task.Delay(1000);
  21. // 删除粒子特效
  22. Destroy(EffectParticle);
  23. }
  24. }

2.弾丸プレハブにヒットパーティクルの特殊効果を追加します。

3. 最終的な効果は以下のようになります。

この章は終わりです。読んでくれてありがとう!