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

質問編集履歴

2

修正

2018/07/06 23:16

投稿

GOTOken
GOTOken

スコア54

title CHANGED
File without changes
body CHANGED
@@ -1,65 +1,73 @@
1
+ Particleを使いビームの表現をするために、SetActiveを使いON,Offの切り替えをしようとしました。
2
+ 1発目は無事発射出来たのですが、2発目から出なくなってしまいました。
3
+ 座標がおかしいから?と思い、コルーチン終了後に
4
+ ```c#
1
- ![イメージ説明](2edd9b89f19a73709618892ba3126e8c.gif)
5
+ transform.position = (Particle).transform.position
6
+ ```
7
+ みたいにし、パーティクルを元の場所に戻そうとしましたが、思ったとおりにいきませんでした。
2
- gif画像のようにビームのようなものを作ろうとしました。
8
+ これを、出せるようにするにはどのようにすればいいですか???
3
- ![イメージ説明](463aacc9b67a6759f74d44a7574bde8a.gif)
4
- が、Play画面にすると生成位置で静止してしまっています。ので、生成する際にgif画像のようなイメージになるようにしたいです。
5
- 設定画面
6
- ---
7
- ![イメージ説明](69571de74a792e1615bc70d242dd9407.png)
8
- このような場合は、Shapeをいじるとよいのでしょうか??
9
9
 
10
- 生成するときのスクリプト & 再生するためのスクリプト
11
- ---
12
10
  ```c#
13
- 再生するため(ParticleにAdd Compnentしています)
14
11
 
15
12
 
16
- using System.Collections;
13
+ private GameObject Lv1;
17
- using System.Collections.Generic;
14
+ private GameObject Lv2;
18
- using UnityEngine;
15
+ private GameObject Lv3;
19
16
 
20
- public class ChargeShot : MonoBehaviour {
21
17
 
22
- public ParticleSystem particle;
23
-
24
- // Use this for initialization
25
18
  void Start () {
26
- particle = GetComponent<ParticleSystem>();
27
- particle.Play();
28
- }
29
-
30
- // Update is called once per frame
31
- void Update () {
32
-
33
- }
34
- }
35
19
 
20
+ this.rb2d = GetComponent<Rigidbody2D>();
36
21
 
37
- ```
38
- ```c#
39
- 生成するためのスクリプト
22
+ Lv1 = GameObject.Find("Lv1");
23
+ Lv2 = GameObject.Find("Lv2");
24
+ Lv3 = GameObject.Find("Lv3");
40
25
 
41
-
26
+ Lv1.SetActive(false);
27
+ Lv2.SetActive(false);
28
+ Lv3.SetActive(false);
29
+ }
30
+ void Update()
31
+ {
42
32
  if (Input.GetKeyUp(KeyCode.Joystick1Button1))
43
33
  {
44
34
  switch (LV)
45
35
  {
46
36
  case 1:
47
- Instantiate(ChargeShot_Lv1, transform.localPosition, Quaternion.identity);
37
+ StartCoroutine(ChargeShotLv1());
48
38
  Debug.Log("生成Lv1");
49
39
  break;
50
40
  case 2:
51
- Instantiate(ChargeShot_Lv2, transform.position, Quaternion.identity);
41
+ StartCoroutine(ChargeShotLv2());
52
42
  Debug.Log("生成Lv2");
53
43
 
54
44
  break;
55
45
  case 3:
56
- Instantiate(ChargeShot_Lv3, transform.position, Quaternion.identity);
46
+ StartCoroutine(ChargeShotLv3());
57
47
  Debug.Log("生成Lv3");
58
48
 
59
49
  break;
60
50
  }
51
+ LV = 0;
52
+ ChargePower = 0;
53
+ }
54
+ }
55
+ private IEnumerator ChargeShotLv1()
56
+ {
57
+ Lv1.SetActive(true);
58
+ yield return new WaitForSeconds(Lv1_ShotTimer);
59
+ }
60
+ private IEnumerator ChargeShotLv2()
61
+ {
62
+ Lv2.SetActive(true);
63
+ yield return new WaitForSeconds(Lv2_ShotTimer);
64
+ }
65
+ private IEnumerator ChargeShotLv3()
66
+ {
67
+ Lv3.SetActive(true);
61
68
 
69
+ yield return new WaitForSeconds(Lv3_ShotTimer);
62
- ```
70
+ }
63
71
 
64
- 生成する際に、transform.positionが関係しているのでしょうか??生成する際に、生成位置にのみにしかパーティクルが出ていません。
72
+
65
- この場合は、どのようにすればパーティクルは、viewのときと同じ挙動を取ることができるのでしょうか??
73
+ ```

1

修正

2018/07/06 23:16

投稿

GOTOken
GOTOken

スコア54

title CHANGED
File without changes
body CHANGED
@@ -61,5 +61,5 @@
61
61
 
62
62
  ```
63
63
 
64
- Instantiateに関しては、作成たParticle対してそのまま生成の処理をているので問題は無い様な気もしすが・・・
64
+ 生成する際、transform.positionがしているのでょうか??生成する際生成位置にみにしパーティクルが出ていません
65
- Particle再生に関してPlay以外使い方で思えわかりませんしたので、スクリプトで間違っている箇所はないよに思えます・・・。
65
+ 場合、どのようにすればパーティクルは、viewのきと同じ挙動を取ことができるのでしょか??