[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
422: 名前は開発中のものです。 [sage] 2017/06/18(日) 08:51:32.03 ID:3wXsUBad(1/4) AAS
 バーカ 
423: 名前は開発中のものです。 [sage] 2017/06/18(日) 09:43:50.32 ID:5tDWnbC/(1) AAS
 持ち上げてから梯子外されるガイジ 
424(3): 名前は開発中のものです。 [sage] 2017/06/18(日) 10:23:18.25 ID:XAVbtWpl(1/3) AAS
 >>418418(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 00:00:18.95 ID:q1X0lAjX(1/5) AAS
 ケースバイケースは地雷ワードだな 
 100%適用できるルールではなくても"基本的に"と譲歩つけた上で何か解を与えたほうがいいんだろね 
 みんな問いよりも解法ばかりを求める時代だから  
ケースバイケース君と俺は別人だが俺が書いた>>379379(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拍子揃った文字列引数は、実行時に呼び出すメソッド名文字列を生成するなどの無茶をしなければ必要ない。  
から派生してグダッてるみたいなので基本方針を示しておく 
  
 1. Findは基本的に使用禁止 
 文字列引数による検索は実行時エラーの温床となるので避けるべき、インスペクタ上でオブジェクトの名前を変えられただけでコケるとか怖すぎる 
 またヒエラルキーツリーを全部舐める様な処理を多用するのはパフォーマンス的にも好ましくない 
  
 2.インスペクタ上で参照がセットされていることを前提にした構造は可能な限り避ける 
 シーンファイルを誤って変更された時に、インスペクタ上で探して修正するのは面倒。特にシーン内のオブジェクトが複雑に絡み合った参照関係を持つなどは論外 
 もしどうしてもこれが避けられない場合はオブジェクトをプレハブ化してプレハブ内での参照に限定することで問題のスコープを小さく保つ 
  
 上記ルールに沿って作れないならそれは設計が悪いので設計を見直す、疎結合を徹底するべし 
 必要ならCamera.mainなどの様なstatic経由での参照の受け渡しや、シングルトンなマネージャークラスの導入を検討する 
 ※多用は厳禁、後者はScript Execution Orderを正しく設定すること 
  
 ヒエラルキーツリーやインスペクタでの変更に弱いコードはメンテナンス性が低く、こうした変更による問題が発生した場合の問題箇所の検出が非常に困難になるので避ける様にするといい 
425: 名前は開発中のものです。 [sage] 2017/06/18(日) 10:39:43.18 ID:3wXsUBad(2/4) AAS
 じゃあゲーム上のオブジェクト参照どうすんのよ 
426(3): 名前は開発中のものです。 [sage] 2017/06/18(日) 11:22:37.04 ID:YW1VLQdX(1/2) AAS
 これ間違ってるね 
  
 >1. Findは基本的に使用禁止 
  
 名前で判断するのが一番メンテナンスしやすいので普通によく使われる 
 バグってもそれを上回る使い安さ。だから使用禁止にしてる企業なんかない 
 むしろ命名規則の徹底の方が大切。名前書き間違えるとか池沼に弄らせない限り起きません。 
 池沼はゲーム作っちゃダメ。以上、終わり 
427: 名前は開発中のものです。 [sage] 2017/06/18(日) 11:24:34.89 ID:/3Y06ViO(1) AAS
 >>424 
 低能自慢して何が楽しいの? 
  
 アセットおじさんとは違う嫌がらせかね 
428: 名前は開発中のものです。 [sage] 2017/06/18(日) 11:51:03.41 ID:XAVbtWpl(2/3) AAS
 >>426 
 たとえば… 
 GameObject.Find("MainCamera"); 
 Camera.main 
 他所から変更されるリスクはどちらも大差ないが、優先されるべきは圧倒的に後者だ 
  
 コード補完が効くのはどっちだ? 
 コンパイル時点で間違いが検出出来るのは? 
 処理速度はどっちが早い? 
 アセットとして切り出した時などに名前を変更されるリスクは本当にないのか? 
 命名規則に従ってないオブジェクトの存在をどうやって見つける? 
  
 運用対処なんてバグの温床以外の何物でもない 
429: 名前は開発中のものです。 [sage] 2017/06/18(日) 12:19:07.81 ID:YW1VLQdX(2/2) AAS
 さぁ?w 
 現実は君の考えてる妄想とは違うってこったろうね 
430: 名前は開発中のものです。 [sage] 2017/06/18(日) 12:23:52.12 ID:3wXsUBad(3/4) AAS
 得意げに長文書いててワロタ 
 ゲーム会社で働いてから書き込もうな知ったかエンジニア君 
431: 名前は開発中のものです。 [sage] 2017/06/18(日) 12:57:35.86 ID:d8uwf8Mk(1/2) AAS
 運用カバー無しとかキリがないと思うんだけど 
432(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 13:09:59.77 ID:q1X0lAjX(2/5) AAS
 >>424 
 おお、何となく書いたレスに真面目な長文回答つけてくれてわざわざスマンね 
  
 俺は内容に関してはほぼ同意 
 Findに限らず、SendMessageやStopCoroutineみたいな文字列指定はクソだからね 
 ただ正し過ぎるというか、1,2を両方課すのは求道的すぎて利便性が損なわれてる気もする 
  
 1に比べたら、インスペクタ参照についてはもっと緩くてもいいんじゃね 
433: 名前は開発中のものです。 [sage] 2017/06/18(日) 13:10:47.80 ID:X5Sl8Nuy(2/5) AAS
 ケース・バイ・ケースでアセットをかうのが一番最適だと思います 
434: 名前は開発中のものです。 [sage] 2017/06/18(日) 13:45:05.15 ID:DLtXAMjk(1) AAS
 Findは使わないけど、正規表現検索と置換使ってないのかな? 
435: 名前は開発中のものです。 [sage] 2017/06/18(日) 13:55:21.52 ID:q1X0lAjX(3/5) AAS
 そりゃ文字列処理は文字列引数でいいっすよ 
  
 参照や呼出しを実行時に文字列比較で解決するのはパフォーマンスも悪いしメンテナンス性も落ちるしデメリットしかないよねってお話 
436: 名前は開発中のものです。 [] 2017/06/18(日) 13:56:47.12 ID:+mnWtDzw(1/3) AAS
 そうだ、俺もアセットを買おう 
 細かい部分大変だ 
 アセットを買おう 
437: 名前は開発中のものです。 [sage] 2017/06/18(日) 14:00:07.13 ID:Fr4XIrmP(1/2) AAS
 >>426 
 js好きがコンパイルとかたるいっすわw 
 とか抜かしててライブラリ使う時に違う型渡しててデバッグに手間取って死んでたの思い出した。 
438: 名前は開発中のものです。 [sage] 2017/06/18(日) 14:03:18.54 ID:B/qMU4Iu(1) AAS
 もうすべての質問に 
 ケースバイケースて返しとけよw 
439(4): 名前は開発中のものです。 [sage] 2017/06/18(日) 14:08:17.74 ID:M/2QAqjI(1/5) AAS
 スクリプトアタッチやインスペクタの設定をエディタ拡張で 
 自動化してる俺には関係が無かった 
440: 名前は開発中のものです。 [sage] 2017/06/18(日) 14:29:28.63 ID:q1X0lAjX(4/5) AAS
 それな 
441(4): 名前は開発中のものです。 [sage] 2017/06/18(日) 14:46:23.45 ID:XAVbtWpl(3/3) AAS
 >>432 
 全面的に同意、求道的すぎるのは認める 
 ここ初心者多いから>>426みたいなクソ開発者になるなという意味を込めて厳しめに書いた 
 リスクを理解した上で使うならともかく、安易に便利だからで多用すると一気にコードが糞になるからなぁ 
 >>439 
 あるある、ついでにエディタ上で触らせる必要がなく親子関係が確定してるオブジェクトなんかはhideFlagsも立てたりする 
442: 名前は開発中のものです。 [sage] 2017/06/18(日) 15:19:36.48 ID:nmnJlvzm(1/9) AAS
 コルーチンを使えば大抵は解決する 
443: 名前は開発中のものです。 [sage] 2017/06/18(日) 15:39:48.82 ID:X5Sl8Nuy(3/5) AAS
 アセットを買えば大抵は解決しますよ 
444: 名前は開発中のものです。 [sage] 2017/06/18(日) 15:47:07.09 ID:nmnJlvzm(2/9) AAS
 コルーチンとラムダ式でUnityの制御は全て網羅できる 
 λを崇めよ 
445(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 17:08:30.89 ID:hyK8VDmp(1) AAS
 アセットストアで売っているアセットについて質問しても宜しいでしょうか? 
 アセットのスレらしきものがなくて。 
  
 terraincomposer2というアセットを買ったのですが、公式を見ながら使ってるのに躓いてしまって… 
  
 外部リンク:www.terraincomposer.com
  
 このアセット購入した方いらっしゃいますでしょうか? 
 お伺いしたいです。 
446: 名前は開発中のものです。 [sage] 2017/06/18(日) 17:17:36.89 ID:X5Sl8Nuy(4/5) AAS
 >>445 
 ケースバイケースで別のアセットを買うのが良いでしょう 
上下前次1-新書関写板覧索設栞歴
あと 556 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.487s*