[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
372
(1): 名前は開発中のものです。 [] 2017/06/15(木) 23:48:11.83 ID:vA8D14AN(1) AAS
IEnumerator coroutine;
void Start ()
{
coroutine = Sample2 (10, 0.5f);
StartCoroutine (Sample1 ());
StartCoroutine (coroutine);
}
void Update ()
{
if (Input.GetKeyDown (KeyCode.Space)) {
StopCoroutine (Sample1 ());
}
if (Input.GetKey (KeyCode.Alpha1)) {
StopCoroutine (coroutine);
}
}
IEnumerator Sample1 ()
{
for (int i = 0; i < 100; i++) {
Debug.Log ("Sample1:" + i);
yield return new WaitForSeconds (0.5f);
}
}
IEnumerator Sample2 (int num, float interval)
{
for (int i = 0; i < num; i++) {
Debug.Log ("Sample2:" + i);
yield return new WaitForSeconds (interval);
}
}
サイトに載ってあったのをちょっといじったんですが、Sample1()がスペースを押しても止まりません。
どなたか回答宜しくお願いいたします。
373
(2): 名前は開発中のものです。 [sage] 2017/06/16(金) 00:58:31.25 ID:NRISneYy(1) AAS
StopCoroutine("Sample1"); //止まる
StopCoroutine(Sample1()); //止まらない

理由は知らない
374: 名前は開発中のものです。 [] 2017/06/16(金) 01:16:37.99 ID:VwSQ55H3(1/3) AAS
>>373
""派に改宗します。ありがとうございました。
375
(1): 名前は開発中のものです。 [] 2017/06/16(金) 03:50:00.92 ID:BRMMaX+I(1) AAS
素材が少なくて困ってるんですけどどうすればいいですか?
376: 名前は開発中のものです。 [sage] 2017/06/16(金) 04:41:11.65 ID:mGgG4nl1(1/3) AAS
自分で作れ
377: 名前は開発中のものです。 [sage] 2017/06/16(金) 05:12:23.54 ID:0lsJXiZf(1) AAS
素材の作成を依頼すればいいと思いますよ
378: 名前は開発中のものです。 [] 2017/06/16(金) 06:33:25.02 ID:Gpp7Q59K(1) AAS
>>375
アセッてはいけません
379
(2): 名前は開発中のものです。 [sage] 2017/06/16(金) 08:17:36.16 ID:E6JM4SWs(1/3) AAS
>>372-373
インスタンスを意識してない初心者にありがちなミスだが、
StartCoroutine (Sample1 ());
StopCoroutine (Sample1 ());
止まらないのはこの2つの引数に渡されてるIEnumeratorインスタンスが別物だからだな。

文字列引数はコルーチンに引数がひとつしか渡せない、リフレクションしてるのでオーバーヘッドが大きいなどの点でインスタンスを渡すより劣る。
また他の問題として文字列引数はタイプミスしてても実行時エラーになるまでミスが検出出来ない、リファクタリングでメソッド名変えたら引数を書き換えなきゃならないなどメンテナンス性が悪い。

Coroutine coroutine1 = StartCoroutine (Sample1());
StopCoroutine (coroutine1);

または

IEnumerator sample1 = Sample1 ();
StartCoroutine (sample1);
StopCoroutine (sample1);

とすればちゃんと止まる。
遅い、不便、ミスしやすいの3拍子揃った文字列引数は、実行時に呼び出すメソッド名文字列を生成するなどの無茶をしなければ必要ない。
380
(2): 名前は開発中のものです。 [sage] 2017/06/16(金) 10:10:27.55 ID:mGgG4nl1(2/3) AAS
その文を理解するには

インスタンス
リフレクション
オーバーヘッド
リファクタリング
メソッド名

の5つを質問者が理解している必要があり
コルーチンはたぶん理解してると思われるが
381: 名前は開発中のものです。 [sage] 2017/06/16(金) 10:39:38.15 ID:E6JM4SWs(2/3) AAS
>>380
知らない単語をググって習得の機会とするのか
わからないままコードをコピペして満足するか
質問者がどっちを選ぶかはわりとどうでもいい

後者を選んでも問題解決するようにコードは書いてあるしな
382: 名前は開発中のものです。 [sage] 2017/06/16(金) 10:48:53.84 ID:O6aBsQlK(1) AAS
ScriptReferenceだとStartCoroutineもStopCoroutineも
IEnumeratorインスタンス作って使えになってんのな

公式tutorialは相変わらず動的コード生成のまんまじゃの
これではなくならん
383
(1): 名前は開発中のものです。 [sage] 2017/06/16(金) 16:32:56.58 ID:puc0wwL/(1/2) AAS
find関数はupdate関数の中で使うなということですが、find関数使わずにどうやってオブジェクトの情報を取得するのでしょうか?
384
(1): 名前は開発中のものです。 [sage] 2017/06/16(金) 16:46:44.86 ID:E6JM4SWs(3/3) AAS
>>383
Awake内でFindしてプロパティに参照を保持
Awake後に動的に生成されるものに関しては、生成されたインスタンス側のAwake内で渡し先をFindして参照を渡すなど

Updateは毎フレーム呼ばれるので毎フレームオブジェクトを探すのは無駄
Find系に比べれば軽いがGetComponent系も同様
385: 名前は開発中のものです。 [sage] 2017/06/16(金) 17:36:38.42 ID:puc0wwL/(2/2) AAS
>>384
わかりやすくありあり。
386
(1): 名無し@キムチ [] 2017/06/16(金) 20:18:06.07 ID:GcEw8KU8(1) AAS
>>363
363(1): 名前は開発中のものです。 [sage] 2017/06/15(木) 21:42:08.02 ID:MqJWwv/e(2/4) AAS
デバッガの使い方を覚えようね
まずはステップ実行してみなさい

外部リンク[html]:halcyonsystemblog.blog.fc2.com
デバッガというかデバッグ関数はいつも使っています。
ですが役に立った試しがありません。
というのは説明ではコンソールに表示されると書いてあるのですが、
コンソールはプロジェストの右にあるボタンを押すと出てくるウインドウのことですよね?
ですが、例えばDebug.Log("金玉");と書いてそこをいくら探しても何も表示されてないのですが…
当方の探し方が悪いのでしょうか?
387: 名前は開発中のものです。 [sage] 2017/06/16(金) 20:43:24.72 ID:QsCI2dtA(1) AAS
スルー推奨
388: 名前は開発中のものです。 [sage] 2017/06/16(金) 21:59:31.08 ID:hsu73I1c(1) AAS
>>386
そういうときは「unity Debug.Log 表示されない」ででも検索なさいな
初心者のうち、というか経験積んでも開発環境よりも先にまず自分を疑うのは基本だ

他の質問は割りと素直にアドバイス聞き入れて建設的な解決に向かうのに今回はやけに突っ掛かるね
389
(3): 名前は開発中のものです。 [sage] 2017/06/16(金) 22:00:19.70 ID:OyCZvXKK(1) AAS
あらかじめインスペクタでアタッチするのと、AwakeとかでFind&GetCommentのとではどっちが効率いいんだろう
390
(1): 名前は開発中のものです。 [sage] 2017/06/16(金) 22:51:43.71 ID:mGgG4nl1(3/3) AAS
ケース・バイ・ケース
391: 名前は開発中のものです。 [sage] 2017/06/16(金) 23:03:14.59 ID:qF4UEGK8(1) AAS
パフォーマンス的には大して変わらん?
392: 名前は開発中のものです。 [] 2017/06/16(金) 23:54:50.50 ID:VwSQ55H3(2/3) AAS
>>380
コルーチンは宣言時点で(List系みたいに?)自動でIEnumratorのインスタンス生成していたということですか
色々聞いて見るとやっぱり()最高ですね。ありがとうございました。
393: 名前は開発中のものです。 [] 2017/06/16(金) 23:57:11.94 ID:VwSQ55H3(3/3) AAS
>>379さん貼り忘れてましたありがとうございました。
394
(1): 名前は開発中のものです。 [sage] 2017/06/17(土) 02:51:53.94 ID:ZFFYbfbw(1/5) AAS
Findはオーバーヘッドばかにならないはずだが
なぜケースバイケースなんだ?
395
(1): 名前は開発中のものです。 [sage] 2017/06/17(土) 02:58:09.35 ID:4N3eKWxH(1) AAS
そりゃケースバイケースの時があるからですよ
解らない人は知らなくていいと思う
396: 名前は開発中のものです。 [sage] 2017/06/17(土) 03:09:01.44 ID:RWFiqgwy(1) AAS
人外のコントって面白えな
1-
あと 606 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s