[過去ログ] 【3Dゲームエンジン】Unity質問スレッド28 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
36
(1): 2017/01/13(金)00:48 ID:2cQ+7wxA(1/7) AAS
3.05秒過ぎた後最初のフレームで1度だけ実行ならコルーチン使えよと

void Start() {
StartCoroutine(Example());
}
IEnumerator Example() {
yield return new WaitForSeconds(3.05f);
Instantiate(a, gameObject.transform.position, Quaternion.identity);
省1
37: 2017/01/13(金)00:51 ID:2cQ+7wxA(2/7) AAS
少なくとも>>33-35はupdate()は呼ばれることはないから動くはずがない
39
(2): 2017/01/13(金)01:07 ID:2cQ+7wxA(3/7) AAS
>>38
Mathf.Abs(3.05f - timer) がMathf.Epsilonを下回る事なく3.05f - timerが負の値になるから呼ばれないと思うぞと
45
(1): 2017/01/13(金)03:22 ID:2cQ+7wxA(4/7) AAS
>>44
どうだと言われてもダメだとしか言えないな
timerをリセットするかどうかは3.05秒後に1回実行するか、3.05秒おきに実行を繰り返すかの違いで当面の問題とは関係ない
さらに言えばtimer=0;よりはtimer-=3.05f;の方が累積誤差が少ない

どちらにしてもMathf.Abs(3.05f - timer) < 1.192093E-07 はtrueになる可能性が殆どないから無意味
>>39の意味が理解できるまで音読してこいw

普通に書けばMathf.Absもイプシロンも必要ない
50
(1): 2017/01/13(金)09:12 ID:2cQ+7wxA(5/7) AAS
>>46
Updateで書こうがコルーチン使おうが関係ないぞ?
GC云々と今回の問題は無関係なので、以降コルーチンは使わない前程で話す

Time.deltaTimeは60fpsで0.016前後。
Time.deltaTime刻みでしか推移しない値の絶対値が1.192093E-07より小さくなる確率を考えればあり得ないのは一目でわかるだろ

簡単に数値入れて説明するために、あるフレームのUpdate()が呼び出された時点の値を以下の様に仮定する。

timer=3.042f;
省6
51
(1): 2017/01/13(金)09:13 ID:2cQ+7wxA(6/7) AAS
繰り返し処理前程ならこれで充分

float timer;
void Start(){
//実行時刻を保持
timer=Time.time+3.05f;
}
void Update(){
省6
55: 2017/01/13(金)13:36 ID:2cQ+7wxA(7/7) AAS
Invokeは文字列引数によるメッセージングで遅い上単純なタイプミスで事故るからお勧めしないぞと
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s