回答編集履歴
4
記入漏れ すみません。。。
answer
CHANGED
@@ -86,5 +86,6 @@
|
|
86
86
|
BgmManager.Instance.Play("勝利1");
|
87
87
|
UIControl.score += 5000;
|
88
88
|
|
89
|
-
|
89
|
+
isPlayWin = false;
|
90
|
+
}
|
90
91
|
```
|
3
記入漏れ
answer
CHANGED
@@ -30,6 +30,9 @@
|
|
30
30
|
###[追記]連続で実行されるとやばいので一度だけ実行するようにする
|
31
31
|
**実行中なら一度止めて再実行**
|
32
32
|
```C#
|
33
|
+
//変数を宣言
|
34
|
+
Coroutine PlayerWinCorutine;
|
35
|
+
|
33
36
|
void Start()
|
34
37
|
{
|
35
38
|
//実行
|
2
追記
answer
CHANGED
@@ -24,4 +24,64 @@
|
|
24
24
|
|
25
25
|
###UnityのCoroutine(コルーチン)でできる事のメモ
|
26
26
|
色々できるのでこのページを見てみるとプログラムの幅が広がるかもしれません。
|
27
|
-
[http://tsubakit1.hateblo.jp/entry/2015/04/06/060608](http://tsubakit1.hateblo.jp/entry/2015/04/06/060608)
|
27
|
+
[http://tsubakit1.hateblo.jp/entry/2015/04/06/060608](http://tsubakit1.hateblo.jp/entry/2015/04/06/060608)
|
28
|
+
|
29
|
+
|
30
|
+
###[追記]連続で実行されるとやばいので一度だけ実行するようにする
|
31
|
+
**実行中なら一度止めて再実行**
|
32
|
+
```C#
|
33
|
+
void Start()
|
34
|
+
{
|
35
|
+
//実行
|
36
|
+
PlayerWin();
|
37
|
+
}
|
38
|
+
|
39
|
+
void PlayerWin()
|
40
|
+
{
|
41
|
+
//実行中であればストップ
|
42
|
+
if(PlayerWinCorutine != null) StopCoroutine(PlayerWinCorutine);
|
43
|
+
//実行
|
44
|
+
PlayerWinCorutine = StartCoroutine(_PlayerWin());
|
45
|
+
}
|
46
|
+
|
47
|
+
IEnumerator _PlayerWin()
|
48
|
+
{
|
49
|
+
//3秒待機
|
50
|
+
yield return new WaitForSeconds(3f);
|
51
|
+
|
52
|
+
BgmManager.Instance.TimeToFade = 0.0f;
|
53
|
+
BgmManager.Instance.Play("勝利1");
|
54
|
+
UIControl.score += 5000;
|
55
|
+
}
|
56
|
+
```
|
57
|
+
|
58
|
+
**実行中なら何もしない**
|
59
|
+
|
60
|
+
```C#
|
61
|
+
//変数を宣言
|
62
|
+
bool isPlayWin;
|
63
|
+
|
64
|
+
void Start()
|
65
|
+
{
|
66
|
+
//実行
|
67
|
+
PlayerWin();
|
68
|
+
}
|
69
|
+
|
70
|
+
void PlayerWin()
|
71
|
+
{
|
72
|
+
//実行していなければ実行
|
73
|
+
if(!isPlayWin) StartCoroutine(_PlayerWin());
|
74
|
+
}
|
75
|
+
|
76
|
+
IEnumerator _PlayerWin()
|
77
|
+
{
|
78
|
+
isPlayWin = true;
|
79
|
+
//3秒待機
|
80
|
+
yield return new WaitForSeconds(3f);
|
81
|
+
|
82
|
+
BgmManager.Instance.TimeToFade = 0.0f;
|
83
|
+
BgmManager.Instance.Play("勝利1");
|
84
|
+
UIControl.score += 5000;
|
85
|
+
|
86
|
+
|
87
|
+
```
|
1
追記
answer
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
色々書き方があるかもしれませんが遅延させたい時はコルーチンを使
|
1
|
+
色々書き方があるかもしれませんが遅延させたい時はいつもコルーチンを使っています。
|
2
2
|
|
3
|
-
|
4
3
|
```C#
|
5
4
|
void Start()
|
6
5
|
{
|
@@ -17,4 +16,12 @@
|
|
17
16
|
BgmManager.Instance.Play("勝利1");
|
18
17
|
UIControl.score += 5000;
|
19
18
|
}
|
20
|
-
```
|
19
|
+
```
|
20
|
+
|
21
|
+
**使用上の注意**
|
22
|
+
gameObject.SetActive の値がfalseの時、Coroutineを実行しようとすると死にます。
|
23
|
+
|
24
|
+
|
25
|
+
###UnityのCoroutine(コルーチン)でできる事のメモ
|
26
|
+
色々できるのでこのページを見てみるとプログラムの幅が広がるかもしれません。
|
27
|
+
[http://tsubakit1.hateblo.jp/entry/2015/04/06/060608](http://tsubakit1.hateblo.jp/entry/2015/04/06/060608)
|