回答編集履歴
5
文言修正
answer
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
`FixedUpdate`は`Update`とまったく違います。`Update`は期待するFPS(`Application.targetFrameRate`)に達するまで出来る限り呼んでくれます。
|
16
16
|
`FixedUpdate`はProject Settingsで決めた一定間隔で呼ばれるものです。
|
17
17
|
|
18
|
-
それなら一定間隔で呼ばれる`FixedUpdate`で処理すれば良いと思うかもしれませんが、処理落ちした次のフレームでまた別の処理を呼ばれ
|
18
|
+
それなら一定間隔で呼ばれる`FixedUpdate`で処理すれば良いと思うかもしれませんが、処理落ちした次のフレームでまた別の処理を呼ばれ処理しきれずフリーズやクラッシュするより、終わるまで少し停止してくれた方が端末に優しいと思いませんか?
|
19
19
|
なので`Update`が存在していると思います。
|
20
20
|
|
21
21
|
**FixedUpdateの呼び出し回数設定**
|
4
文言修正
answer
CHANGED
@@ -15,7 +15,8 @@
|
|
15
15
|
`FixedUpdate`は`Update`とまったく違います。`Update`は期待するFPS(`Application.targetFrameRate`)に達するまで出来る限り呼んでくれます。
|
16
16
|
`FixedUpdate`はProject Settingsで決めた一定間隔で呼ばれるものです。
|
17
17
|
|
18
|
-
それなら一定間隔で呼ばれる`FixedUpdate`で処理すれば良いと思うかもしれませんが、処理落ちした次のフレームで
|
18
|
+
それなら一定間隔で呼ばれる`FixedUpdate`で処理すれば良いと思うかもしれませんが、処理落ちした次のフレームでまた別の処理を呼ばれる処理しきれないより、終わるまで少し停止してくれた方が端末に優しいと思いませんか?
|
19
|
+
なので`Update`が存在していると思います。
|
19
20
|
|
20
21
|
**FixedUpdateの呼び出し回数設定**
|
21
22
|
初期値は0.02(FPSで言えば50)
|
3
追記
answer
CHANGED
@@ -24,6 +24,7 @@
|
|
24
24
|
|
25
25
|
### 溜め攻撃の実装
|
26
26
|
溜め攻撃の実装を簡単に書いてみました。
|
27
|
+
良ければ参考にしてみてください。
|
27
28
|
|
28
29
|
```C#
|
29
30
|
|
@@ -79,4 +80,26 @@
|
|
79
80
|
}
|
80
81
|
}
|
81
82
|
|
82
|
-
```
|
83
|
+
```
|
84
|
+
|
85
|
+
[Unirx](https://github.com/neuecc/UniRx)を使う方法もあります。下記は長押し判定のみです。
|
86
|
+
もしUnirx使ってなければおすすめですよ。様々な場面で活躍します。
|
87
|
+
|
88
|
+
```C#
|
89
|
+
void Start()
|
90
|
+
{
|
91
|
+
var mouseDownStream = this.UpdateAsObservable().Where(_ => Input.GetMouseButtonDown(0));
|
92
|
+
var mouseUpStream = this.UpdateAsObservable().Where(_ => Input.GetMouseButtonUp(0));
|
93
|
+
|
94
|
+
//長押しの判定
|
95
|
+
//マウスクリックされたら3秒後にOnNextを流す
|
96
|
+
mouseDownStream
|
97
|
+
.SelectMany(_ => Observable.Timer(TimeSpan.FromSeconds(3)))
|
98
|
+
//途中でMouseUpされたらストリームをリセット
|
99
|
+
.TakeUntil(mouseUpStream)
|
100
|
+
.RepeatUntilDestroy(this.gameObject)
|
101
|
+
.Subscribe(_ => Debug.Log("長押し"));
|
102
|
+
|
103
|
+
}
|
104
|
+
```
|
105
|
+
[コードの参照元](https://gist.github.com/TORISOUP/cd905bdd4d9d5fc95365)
|
2
変更
answer
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
`FixedUpdate`は`Update`とまったく違います。`Update`は期待するFPS(`Application.targetFrameRate`)に達するまで出来る限り呼んでくれます。
|
16
16
|
`FixedUpdate`はProject Settingsで決めた一定間隔で呼ばれるものです。
|
17
17
|
|
18
|
-
それなら一定間隔で呼ばれる`FixedUpdate`で処理すれば良いと思うかもしれませんが、処理落ちした次のフレームで更に処理落ちしそうな処理を呼ばれるより処理が終わるまで少し停止した方が端末に優しいので`Update`が存在していると思います。
|
18
|
+
それなら一定間隔で呼ばれる`FixedUpdate`で処理すれば良いと思うかもしれませんが、処理落ちした次のフレームで更に処理落ちしそうな処理を呼ばれるより、処理が終わるまで少し停止した方が端末に優しいので`Update`が存在していると思います。
|
19
19
|
|
20
20
|
**FixedUpdateの呼び出し回数設定**
|
21
21
|
初期値は0.02(FPSで言えば50)
|
1
必要無い文言を削除
answer
CHANGED
@@ -6,20 +6,6 @@
|
|
6
6
|
|
7
7
|
自前で実装する必要はほぼ無いというのが僕の印象ですが、不安な部分があるなら小さなテストシーンを作って期待する動作になるか検証すると良いと思います。
|
8
8
|
|
9
|
-
**Time.timeScaleに影響するもの例**
|
10
|
-
- Time.time、Time.deltaTime、Time.fixedDeltaTime
|
11
|
-
- FixedUpdateの呼び出し回数
|
12
|
-
- コルーチンのWaitForSecondsなど
|
13
|
-
- AnimatorのUpdate ModeがUnscaled Timeでないもの
|
14
|
-
など
|
15
|
-
|
16
|
-
**Time.timeに影響しないもの例**
|
17
|
-
- Time.unscaledDeltaTime
|
18
|
-
- Time.fixedUnscaledDeltaTime
|
19
|
-
- Updateの呼び出し回数
|
20
|
-
など
|
21
|
-
|
22
|
-
|
23
9
|
> Update関数内で判定を行うと処理落ちしたとき端末により動作に差がでるのではないか
|
24
10
|
(時間系の処理はFixedUpdateに記載するべきでしょうか? ※FixedUpdateは常に一定のため)
|
25
11
|
|