質問編集履歴

2

誤字

2019/12/10 02:08

投稿

Enoki_Nameko
Enoki_Nameko

スコア8

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,8 @@
68
68
 
69
69
  {
70
70
 
71
+ DrawButton();
72
+
71
73
  StartCoroutine(Coroutine());
72
74
 
73
75
  }

1

コードの追加

2019/12/10 02:08

投稿

Enoki_Nameko
Enoki_Nameko

スコア8

test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,187 @@
21
21
 
22
22
 
23
23
  どなたかご教授お願いします。
24
+
25
+
26
+
27
+
28
+
29
+ ```
30
+
31
+
32
+
33
+ using System.Collections;
34
+
35
+ using System.Collections.Generic;
36
+
37
+ using UnityEngine;
38
+
39
+
40
+
41
+ public class SceneManager : MonoBehaviour
42
+
43
+ {
44
+
45
+
46
+
47
+ //利用する側のスクリプト
48
+
49
+
50
+
51
+ public void DrawButton()
52
+
53
+ {
54
+
55
+ Sprite buttonSprite = Resources.Load<Sprite>("buttonGraphic");
56
+
57
+ Vector3 position = new Vector3(0, 0, 0);
58
+
59
+ //↓これは自作した指定スプライトを描画するためのものです。一番左の引数はIDになっていて、これを使って参照できるようにしています。
60
+
61
+ PictureManager.Instance.DrawPicture(1, position, buttonSprite);
62
+
63
+ }
64
+
65
+
66
+
67
+ public void Start()
68
+
69
+ {
70
+
71
+ StartCoroutine(Coroutine());
72
+
73
+ }
74
+
75
+
76
+
77
+
78
+
79
+ public IEnumerator Coroutine()
80
+
81
+ {
82
+
83
+ DrawButton();
84
+
85
+ while (true)
86
+
87
+ {
88
+
89
+ yield return null;
90
+
91
+ var click = PictureManager.Instance.GetClick(1);//IDを指定して、クリックされたかどうかを取得できるようになっています。
92
+
93
+ if(click == 2)
94
+
95
+ {
96
+
97
+
98
+
99
+ //ID1なのでPlayerDataBaseのskills[1]で取得しようと思います。
100
+
101
+ Skill skillData = PlayerDataBase.instance.skills[1];
102
+
103
+ string className = skillData.skillName + "Effect";
104
+
105
+
106
+
107
+ //ここでFireBallEffectクラスのCoroutineを呼びたいです。
108
+
109
+ yield return className.Coroutine(0,10);//呼び方がよくわからないので適当です。
110
+
111
+
112
+
113
+ break;
114
+
115
+ }
116
+
117
+ }
118
+
119
+
120
+
121
+
122
+
123
+ yield break;
124
+
125
+ }
126
+
127
+
128
+
129
+ }
130
+
131
+
132
+
133
+
134
+
135
+ public class PlayerDataBase : MonoBehaviour
136
+
137
+ {
138
+
139
+
140
+
141
+ //プレイヤーはスキルデータとかHPとか色々持ってます。
142
+
143
+ public int hp = 100;
144
+
145
+ public List<Skill> skills = new List<Skill>() { null, null };//ほんとはどこかでSkillを入れますが割愛。
146
+
147
+
148
+
149
+ //シングルトン処理(省略)
150
+
151
+ public static PlayerDataBase instance;
152
+
153
+ }
154
+
155
+
156
+
157
+ //スキル名を持ったスクリプタブルオブジェクトでスキルデータを管理しています。
158
+
159
+ public class Skill : ScriptableObject
160
+
161
+ {
162
+
163
+
164
+
165
+ public string skillName = "";
166
+
167
+ public int damage;
168
+
169
+
170
+
171
+ }
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+ public class FireBallEffect : MonoBehaviour
180
+
181
+ {
182
+
183
+ //スキル演出側のスクリプト
184
+
185
+ public static IEnumerator Coroutine(int caster, int target)
186
+
187
+ {
188
+
189
+
190
+
191
+ //ここにスキル演出を書きます。ウェイトとか入れたいのでコルーチンです。
192
+
193
+
194
+
195
+ yield break;
196
+
197
+ }
198
+
199
+ }
200
+
201
+
202
+
203
+ ```
204
+
205
+
206
+
207
+ 色々端折ってますが、こんな感じにしたいです。