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

回答編集履歴

11

誤字を修正

2016/09/28 17:00

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -1,5 +1,4 @@
1
- [追記]
2
- 指定した再生位置でパーティクルを表示するという内容を見落としいただのでソースを少し修正してい
1
+ [追記]ご摘いただきました「指定した再生位置でパーティクルを表示するという内容を踏まえてソースを少し修正しました
3
2
 
4
3
  > Fキーを押した瞬間だけ、パーティクルを表示する。それ以外の時はパーティクルは非表示。
5
4
 

10

ソースを修正

2016/09/28 17:00

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -34,8 +34,8 @@
34
34
  {
35
35
  if (Input.GetKeyDown(KeyCode.F) && pObject.isStopped){
36
36
  pObject.gameObject.SetActive(true);
37
- pObject.Simulate(4.0f, true, false);
37
+ pObject.Simulate(4.0f, true, false); //追記
38
- pObject.Play();
38
+ pObject.Play(); //追記
39
39
  StartCoroutine(delay(particleDelayTime,()=>{
40
40
  pObject.gameObject.SetActive(false);
41
41
  }));

9

ソースを修正

2016/09/28 16:59

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  void Update()
34
34
  {
35
- if (Input.GetKeyDown("f") && pObject.isStopped){
35
+ if (Input.GetKeyDown(KeyCode.F) && pObject.isStopped){
36
36
  pObject.gameObject.SetActive(true);
37
37
  pObject.Simulate(4.0f, true, false);
38
38
  pObject.Play();

8

スクリプトを訂正

2016/09/28 16:54

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -1,3 +1,6 @@
1
+ [追記]
2
+ 指定した再生位置でパーティクルを表示するという内容を見落としていただのでソースを少し修正しています。
3
+
1
4
  > Fキーを押した瞬間だけ、パーティクルを表示する。それ以外の時はパーティクルは非表示。
2
5
 
3
6
  それだけでよければ以下コードでいけます。適当なオブジェクトに以下コードをアタッチしてインスペクタ上から該当パーティクルを指定してください。
@@ -31,6 +34,8 @@
31
34
  {
32
35
  if (Input.GetKeyDown("f") && pObject.isStopped){
33
36
  pObject.gameObject.SetActive(true);
37
+ pObject.Simulate(4.0f, true, false);
38
+ pObject.Play();
34
39
  StartCoroutine(delay(particleDelayTime,()=>{
35
40
  pObject.gameObject.SetActive(false);
36
41
  }));

7

誤字を修正

2016/09/28 16:40

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  それだけでよければ以下コードでいけます。適当なオブジェクトに以下コードをアタッチしてインスペクタ上から該当パーティクルを指定してください。
4
4
 
5
- ※パーティクルが設定されたオブジェクトに以下スクリプトをアタッチしても動かないと思うので、パーティクルが指定されたオブジェクト以外に設定してください。
5
+ ※パーティクルが設定されたオブジェクトに以下スクリプトをアタッチしても動かないと思うので、パーティクルが指定されたオブジェクト以外にアタッチしてください。
6
6
 
7
7
 
8
8
  ###実装のポイント

6

注意を追加

2016/09/27 16:06

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  それだけでよければ以下コードでいけます。適当なオブジェクトに以下コードをアタッチしてインスペクタ上から該当パーティクルを指定してください。
4
4
 
5
+ ※パーティクルが設定されたオブジェクトに以下スクリプトをアタッチしても動かないと思うので、パーティクルが指定されたオブジェクト以外に設定してください。
6
+
7
+
5
8
  ###実装のポイント
6
9
  パーティクルシステムをplay / stopしなくても、オブジェクトを非表示にすると勝手に止まります。その状態で再表示すると勝手に始まります。それを利用した実装になります。
7
10
 

5

ソースの修正

2016/09/27 16:05

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -28,7 +28,7 @@
28
28
  {
29
29
  if (Input.GetKeyDown("f") && pObject.isStopped){
30
30
  pObject.gameObject.SetActive(true);
31
- StartCoroutine(delayTime(particleDelayTime,()=>{
31
+ StartCoroutine(delay(particleDelayTime,()=>{
32
32
  pObject.gameObject.SetActive(false);
33
33
  }));
34
34
  //for Debug
@@ -36,7 +36,7 @@
36
36
  }
37
37
  }
38
38
 
39
- IEnumerator delayTime(float waitTime,UnityAction action)
39
+ IEnumerator delay(float waitTime,UnityAction action)
40
40
  {
41
41
  yield return new WaitForSeconds(waitTime);
42
42
  action();

4

表現を修正

2016/09/27 16:02

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  using System.Collections;
11
11
  using UnityEngine.Events;
12
12
 
13
- public class particleForF : MonoBehaviour {
13
+ public class particleForFkey : MonoBehaviour {
14
14
 
15
15
  //他で使うかもしれないのでParticleSystemを指定してますが以下コードで問題なければGameObjectに書き直してもいいです。
16
16
  [SerializeField]

3

表現を修正

2016/09/27 15:52

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -16,7 +16,7 @@
16
16
  [SerializeField]
17
17
  ParticleSystem pObject;
18
18
 
19
- //ここでパーティクルが表示される時間を指定
19
+ //ここでパーティクルが停止される時間を指定
20
20
  float particleDelayTime = .2f;
21
21
 
22
22
  void Awake()

2

実装のポイントを追記

2016/09/27 15:50

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  それだけでよければ以下コードでいけます。適当なオブジェクトに以下コードをアタッチしてインスペクタ上から該当パーティクルを指定してください。
4
4
 
5
+ ###実装のポイント
6
+ パーティクルシステムをplay / stopしなくても、オブジェクトを非表示にすると勝手に止まります。その状態で再表示すると勝手に始まります。それを利用した実装になります。
7
+
5
8
  ```C#
6
9
  using UnityEngine;
7
10
  using System.Collections;

1

引用がおかしかったので修正

2016/09/27 15:48

投稿

IShix
IShix

スコア1729

answer CHANGED
@@ -1,6 +1,5 @@
1
- 書いてみました。
1
+ > Fキーを押した瞬間だけ、パーティクルを表示するそれ以外の時はパーティクルは非表示。
2
2
 
3
- > Fキーを押した瞬間だけ、パーティクルを表示する。それ以外の時はパーティクルは非表示。
4
3
  それだけでよければ以下コードでいけます。適当なオブジェクトに以下コードをアタッチしてインスペクタ上から該当パーティクルを指定してください。
5
4
 
6
5
  ```C#