質問編集履歴

1

情報の追加・試したことの追加

2021/02/25 14:00

投稿

THETA97556919
THETA97556919

スコア5

test CHANGED
File without changes
test CHANGED
@@ -26,6 +26,8 @@
26
26
 
27
27
 
28
28
 
29
+ ######GameClear.cs
30
+
29
31
  ```C#
30
32
 
31
33
  using System.Collections;
@@ -98,11 +100,141 @@
98
100
 
99
101
  ```
100
102
 
101
-
103
+ ---
104
+
105
+ (以下追記)
106
+
107
+ ######GameClear.cs(アニメーション挙動を確認できたバージョン)
108
+
109
+ ```C#
110
+
111
+ using System.Collections;
112
+
113
+ using System.Collections.Generic;
114
+
115
+ using UnityEngine;
116
+
117
+
118
+
119
+ public class GameClear : MonoBehaviour
120
+
121
+ {
122
+
123
+ private GameObject Player; //プレイヤーにアタッチされている(アニメーションの対象)
124
+
125
+ private Animator Clearanim; //アニメーター
126
+
127
+ public bool gameclear = false; //ゲームクリア管理用(クリア時にtrue)
128
+
129
+ private bool AnimFlag = true; //アニメを一度だけ再生するためのFlag
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+ void Start() //プレイヤーについているアニメーターを取得
138
+
139
+ {
140
+
141
+ Player = GameObject.FindGameObjectWithTag("Player");
142
+
143
+ Clearanim = Player.GetComponent<Animator>();
144
+
145
+ Clearanim.SetBool("GameClear", true); //GameClearパラメータをtrueにする(問題の箇所)
146
+
147
+
148
+
149
+ }
150
+
151
+
152
+
153
+ void FixedUpdate()
154
+
155
+ {
156
+
157
+ if(gameclear)
158
+
159
+ {
160
+
161
+ if(AnimFlag)
162
+
163
+ {
164
+
165
+ Debug.Log("読めたよ"); //ここまで読まれていることは確認済み
166
+
167
+ AnimFlag = false;
168
+
169
+ }
170
+
171
+ }
172
+
173
+ }
174
+
175
+ }
176
+
177
+
178
+
179
+ ```
180
+
181
+
182
+
183
+ ######SortieManager.cs(一部抜粋)
184
+
185
+ ```C#
186
+
187
+ [SerializeField] private GameClear gameClear; //GameCler.cs取得
188
+
189
+ ~
190
+
191
+ ~
192
+
193
+ ~
194
+
195
+ //敵の死亡処理
196
+
197
+ public void LostEnemy()
198
+
199
+ {
200
+
201
+ KillPoint++; //敵を倒した数を増やす
202
+
203
+ Debug.Log("KILLPOINT" + KillPoint);
204
+
205
+ if (KillPoint >= MaxEnemyNum) //倒した数が部隊の敵生成数を超えると
206
+
207
+ {
208
+
209
+ Debug.Log(FormationNum + "Sortie!");
210
+
211
+ Debug.Log(FormationNum - 1 + "LastEnemyDie!");
212
+
213
+ KillPoint = 0; //倒した数をリセット
214
+
215
+ StartCoroutine(WaitFormationSortie()); //次の部隊出撃
216
+
217
+ if(FormationNum >= 3) //最後の敵が倒されたら(部隊番号が最後の部隊番号+1を上回ったら)
218
+
219
+ {
220
+
221
+ gameClear.gameclear = true; //ここでgameclearフラグが立つ
222
+
223
+                           //ここ以外でのフラグへの操作はなし
224
+
225
+ Debug.Log("GameClear");
226
+
227
+ }
228
+
229
+ }
230
+
231
+ }
232
+
233
+ ```
102
234
 
103
235
  ### 試したこと
104
236
 
105
-
237
+ Animatorタブの遷移AnyState→GameClearをStartAnim→GameClearに変更したが、これといった変化はみられなかった。
106
238
 
107
239
  `Clearanim.SetBool("GameClear", true);`を`Start()`内に記述してみた。
108
240
 
@@ -118,4 +250,10 @@
118
250
 
119
251
  ###備考
120
252
 
253
+ コンソールへのエラーはなしです。スペルミスもよく確認しましたが、問題ないと思われます。
254
+
255
+
256
+
257
+
258
+
121
259
  初心者ですので、どの情報が大事なものなのかよく分かりません。問題解決のために必要な情報が他にあれば教えていただきたいです。追記いたします。