teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/08/02 08:24

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -4,6 +4,19 @@
4
4
  簡単なのがこの方法です。パーティクルが終了後`gameObject.SetActive(false)`が自動的に走ります。`OnDisable()` がパーティクルの終了になるので`OnDisable()` に書きたいコードを書くと良いです。
5
5
  ![イメージ説明](8be0ff499571af19767c9aefb97bc262.png)
6
6
 
7
+ ```C#
8
+ using UnityEngine;
9
+
10
+ [RequireComponent(typeof(ParticleSystem))]
11
+ public sealed class ParticleCompletedListener : MonoBehaviour
12
+ {
13
+ void OnDisable()
14
+ {
15
+ Debug.Log("パーティクルが終了しました。");
16
+ }
17
+ }
18
+ ```
19
+
7
20
  ### Particle.IsAliveで判定する
8
21
  下記スクリプトを`ParticleSystem`がアタッチされたオブジェクトにアタッチしてください。
9
22
 
@@ -63,8 +76,6 @@
63
76
  ```
64
77
 
65
78
  そして下記が使い方のサンプルです。
66
- `ParticleCompletedListener`がアタッチされたPrefabをボタンをタップすると生成する
67
- `OnCompleted`でパーティクル終了判定する
68
79
 
69
80
  ```C#
70
81
  using UnityEngine;

1

追記

2020/08/02 08:24

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  方法はいくつかあります。
2
2
 
3
3
  ### Particle SystemのStopActionをDisableにする
4
- 簡単なのがこの方法です。パーティクルが終了後`OnDisable()`が走るのでこれで判定すると良いです。
4
+ 簡単なのがこの方法です。パーティクルが終了後`gameObject.SetActive(false)`が自動的にります。`OnDisable()` がパーティクルの終了になるので`OnDisable()` に書きたいコードを書くと良いです。
5
5
  ![イメージ説明](8be0ff499571af19767c9aefb97bc262.png)
6
6
 
7
7
  ### Particle.IsAliveで判定する