- 1 名前:名前は開発中のものです。 [2017/05/20(土) 22:21:02.39 ID:aiIGxq6k.net]
- フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 次スレは>>970を踏んだ方が建てること。ダメなら>>980か>>990が建てて下さい。 ■本スレ 【3Dゲームエンジン】Unity総合スレッド30 echo.2ch.net/test/read.cgi/gamedev/1492037553/ ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・マニュアル docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 前スレ 【3Dゲームエンジン】Unity質問スレッド28 echo.2ch.net/test/read.cgi/gamedev/1481636092/
- 382 名前:名前は開発中のものです。 [2017/06/15(木) 23:48:11.83 ID:vA8D14AN.net]
- 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()がスペースを押しても止まりません。 どなたか回答宜しくお願いいたします。
- 383 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 00:58:31.25 ID:NRISneYy.net]
- StopCoroutine("Sample1"); //止まる
StopCoroutine(Sample1()); //止まらない 理由は知らない
- 384 名前:名前は開発中のものです。 [2017/06/16(金) 01:16:37.99 ID:VwSQ55H3.net]
- >>376
""派に改宗します。ありがとうございました。
- 385 名前:名前は開発中のものです。 [2017/06/16(金) 03:50:00.92 ID:BRMMaX+I.net]
- 素材が少なくて困ってるんですけどどうすればいいですか?
- 386 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 04:41:11.65 ID:mGgG4nl1.net]
- 自分で作れ
- 387 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 05:12:23.54 ID:0lsJXiZf.net]
- 素材の作成を依頼すればいいと思いますよ
- 388 名前:名前は開発中のものです。 [2017/06/16(金) 06:33:25.02 ID:Gpp7Q59K.net]
- >>378
アセッてはいけません
- 389 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 08:17:36.16 ID:E6JM4SWs.net]
- >>375-376
インスタンスを意識してない初心者にありがちなミスだが、 StartCoroutine (Sample1 ()); StopCoroutine (Sample1 ()); 止まらないのはこの2つの引数に渡されてるIEnumeratorインスタンスが別物だからだな。 文字列引数はコルーチンに引数がひとつしか渡せない、リフレクションしてるのでオーバーヘッドが大きいなどの点でインスタンスを渡すより劣る。 また他の問題として文字列引数はタイプミスしてても実行時エラーになるまでミスが検出出来ない、リファクタリングでメソッド名変えたら引数を書き換えなきゃならないなどメンテナンス性が悪い。 Coroutine coroutine1 = StartCoroutine (Sample1()); StopCoroutine (coroutine1); または IEnumerator sample1 = Sample1 (); StartCoroutine (sample1); StopCoroutine (sample1); とすればちゃんと止まる。 遅い、不便、ミスしやすいの3拍子揃った文字列引数は、実行時に呼び出すメソッド名文字列を生成するなどの無茶をしなければ必要ない。
- 390 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 10:10:27.55 ID:mGgG4nl1.net]
- その文を理解するには
インスタンス リフレクション オーバーヘッド リファクタリング メソッド名 の5つを質問者が理解している必要があり コルーチンはたぶん理解してると思われるが
- 391 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 10:39:38.15 ID:E6JM4SWs.net]
- >>383
知らない単語をググって習得の機会とするのか わからないままコードをコピペして満足するか 質問者がどっちを選ぶかはわりとどうでもいい 後者を選んでも問題解決するようにコードは書いてあるしな
- 392 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 10:48:53.84 ID:O6aBsQlK.net]
- ScriptReferenceだとStartCoroutineもStopCoroutineも
IEnumeratorインスタンス作って使えになってんのな 公式tutorialは相変わらず動的コード生成のまんまじゃの これではなくならん
- 393 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 16:32:56.58 ID:puc0wwL/.net]
- find関数はupdate関数の中で使うなということですが、find関数使わずにどうやってオブジェクトの情報を取得するのでしょうか?
- 394 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 16:46:44.86 ID:E6JM4SWs.net]
- >>386
Awake内でFindしてプロパティに参照を保持 Awake後に動的に生成されるものに関しては、生成されたインスタンス側のAwake内で渡し先をFindして参照を渡すなど Updateは毎フレーム呼ばれるので毎フレームオブジェクトを探すのは無駄 Find系に比べれば軽いがGetComponent系も同様
- 395 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 17:36:38.42 ID:puc0wwL/.net]
- >>387
わかりやすくありあり。
- 396 名前:名無し@キムチ [2017/06/16(金) 20:18:06.07 ID:GcEw8KU8.net]
- >>366
デバッガというかデバッグ関数はいつも使っています。 ですが役に立った試しがありません。 というのは説明ではコンソールに表示されると書いてあるのですが、 コンソールはプロジェストの右にあるボタンを押すと出てくるウインドウのことですよね? ですが、例えばDebug.Log("金玉");と書いてそこをいくら探しても何も表示されてないのですが… 当方の探し方が悪いのでしょうか?
- 397 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 20:43:24.72 ID:QsCI2dtA.net]
- スルー推奨
- 398 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 21:59:31.08 ID:hsu73I1c.net]
- >>389
そういうときは「unity Debug.Log 表示されない」ででも検索なさいな 初心者のうち、というか経験積んでも開発環境よりも先にまず自分を疑うのは基本だ 他の質問は割りと素直にアドバイス聞き入れて建設的な解決に向かうのに今回はやけに突っ掛かるね
- 399 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 22:00:19.70 ID:OyCZvXKK.net]
- あらかじめインスペクタでアタッチするのと、AwakeとかでFind&GetCommentのとではどっちが効率いいんだろう
- 400 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 22:51:43.71 ID:mGgG4nl1.net]
- ケース・バイ・ケース
- 401 名前:名前は開発中のものです。 mailto:sage [2017/06/16(金) 23:03:14.59 ID:qF4UEGK8.net]
- パフォーマンス的には大して変わらん?
- 402 名前:名前は開発中のものです。 [2017/06/16(金) 23:54:50.50 ID:VwSQ55H3.net]
- >>383
コルーチンは宣言時点で(List系みたいに?)自動でIEnumratorのインスタンス生成していたということですか 色々聞いて見るとやっぱり()最高ですね。ありがとうございました。
- 403 名前:名前は開発中のものです。 [2017/06/16(金) 23:57:11.94 ID:VwSQ55H3.net]
- >>382さん貼り忘れてましたありがとうございました。
- 404 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 02:51:53.94 ID:ZFFYbfbw.net]
- Findはオーバーヘッドばかにならないはずだが
なぜケースバイケースなんだ?
- 405 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 02:58:09.35 ID:4N3eKWxH.net]
- そりゃケースバイケースの時があるからですよ
解らない人は知らなくていいと思う
- 406 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 03:09:01.44 ID:RWFiqgwy.net]
- 人外のコントって面白えな
- 407 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 03:14:20.63 ID:ZFFYbfbw.net]
- 答えられません、とw
ほんとテケトーだな
- 408 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 03:33:49.35 ID:tORkmJ/o.net]
- https://gist.github.com/guitarrapc/76ab23f0e3368e81c4259f6fe3c12b42
ベンチマークある 100オブジェクトで3.6msのようだが、1/4近くそれだけに取られるのはちょっと
- 409 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 03:57:50.33 ID:ZFFYbfbw.net]
- 1000回まわしてそんなもんならって思っちゃう罠
tagだと圧倒的に早いって参考になるね typeはあかんやつや
- 410 名前:390 mailto:sage [2017/06/17(土) 07:24:43.63 ID:89HwilAC.net]
- >>397
俺の言ってるのは>>392についてケースバイケースって事な Update()内でのFindの話はしてない
- 411 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 10:18:54.89 ID:uOCjaS/6.net]
- >>403
アセットおじさんっぽいな
- 412 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 10:36:34.45 ID:pfeoMtxp.net]
- >>403
横からですまんけど、どうケースバイケース? 単にD&Dが好きかコード書くのが好きかみたいな手段の話? それとも負荷の話ではある?>>392は負荷のつもりだと思うけど(知らんけど)
- 413 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 10:41:47.59 ID:UGLU7o9s.net]
- 同種のアタッチ先が違うオブジェクトを複数用意する必要があるならインスペクタで柔軟に変えられるようにしておく
複数のシーンで同じオブジェクトを使用したり、途中で生成したりするならFind 実装方法による
- 414 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 11:14:12.55 ID:KBN1S3O5.net]
- ガイジかな? アスペかな?
- 415 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 11:47:10.84 ID:PcOOd2P9.net]
- >>401
サンクス、参考になった oftypeがここまでとはw
- 416 名前:名前は開発中のものです。 [2017/06/17(土) 17:44:24.21 ID:/Jex4D7T.net]
- 初めて作ったのはどんな作品ですか?
Unityユーザーはコレの前にも色々経験あるのかな
- 417 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 18:20:24.29 ID:mnU4IsFY.net]
- Unity軽く触ってみたけど簡単に作れます!みたいな触れ込みだけど
結構ガッツリプログラム書かないと駄目じゃない?これ チュートリアルの玉ころがしは簡単だけど ローグライク2Dのチュートリアルとかは結構難しいよね
- 418 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 18:33:13.56 ID:YFMwAjJR.net]
- 相対的な簡単さを絶対的な簡単さと偽ってるだけだからまだ良心的
- 419 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 18:58:49.68 ID:nFYpcEEx.net]
- ある程度以上の規模のゲーム作るのがそもそも難しい作業だから
- 420 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 20:07:42.89 ID:ZFFYbfbw.net]
- 実際自分で作り始めると毎日やることなすことつまづくと思う
- 421 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 20:45:48.76 ID:pRk3a5a+.net]
- 作るの好きだけどストアに掲載するのが面倒
かといって外注する程気合い入れてないし
- 422 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 22:47:52.00 ID:ILKQLYKC.net]
- アセットをかえば簡単だと思います
- 423 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 23:09:47.13 ID:89HwilAC.net]
- >>404
アセット使わない派 >>405 ・ご指摘の通り実装の手軽さの問題もある ・最適化を犠牲にし視認性を重視することもある(メンテナンスの利便性) ・スマホ向けにメモリー節約重視で選択を変える時もある (変数に格納しっぱなしの方が嫌な場面もある) 他
- 424 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 23:27:56.10 ID:ZFFYbfbw.net]
- 聞くだけむだだったなw
- 425 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 23:35:30.72 ID:89HwilAC.net]
- そうかい?
・Awakeになんでもかんでもぶち込むとアプリ起動しなくケースがある ・根本的にアプリの起動が重くなる ・スマホのライフサイクルを知っているならば都度確保の方が安全な事が多い ・GCとの兼ね合い 他、きりがないほどある 作る物にもよるし何を重視するかにもよる だからケースバイケースなわけ 無駄に感じるなら最初から質問しないでね
- 426 名前:名前は開発中のものです。 mailto:sage [2017/06/17(土) 23:48:50.26 ID:8FuMlYpm.net]
- きりがないほど何にも対応出来ない素人は書き込まないで下さい
- 427 名前:402 mailto:sage [2017/06/17(土) 23:53:57.70 ID:pfeoMtxp.net]
- 俺はわかりやすかったですthx
- 428 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 00:00:18.95 ID:q1X0lAjX.net]
- ケースバイケースは地雷ワードだな
100%適用できるルールではなくても"基本的に"と譲歩つけた上で何か解を与えたほうがいいんだろね みんな問いよりも解法ばかりを求める時代だから
- 429 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 02:10:35.70 ID:sTZl
]
- [ここ壊れてます]
- 430 名前:cSJA.net mailto: 実行効率、つまりパフォーマンスはどのくらい低下するのかの話じゃなくて? []
- [ここ壊れてます]
- 431 名前:名前は開発中のものです。 [2017/06/18(日) 07:56:08.74 ID:X5Sl8Nuy.net]
- >>418
答えになって無くて笑ってしまったw
- 432 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 08:45:18.82 ID:WNEWBLm8.net]
- >>398の時点でお察し
- 433 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 08:51:32.03 ID:3wXsUBad.net]
- バーカ
- 434 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 09:43:50.32 ID:5tDWnbC/.net]
- 持ち上げてから梯子外されるガイジ
- 435 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 10:23:18.25 ID:XAVbtWpl.net]
- >>421
ケースバイケース君と俺は別人だが俺が書いた>>382から派生してグダッてるみたいなので基本方針を示しておく 1. Findは基本的に使用禁止 文字列引数による検索は実行時エラーの温床となるので避けるべき、インスペクタ上でオブジェクトの名前を変えられただけでコケるとか怖すぎる またヒエラルキーツリーを全部舐める様な処理を多用するのはパフォーマンス的にも好ましくない 2.インスペクタ上で参照がセットされていることを前提にした構造は可能な限り避ける シーンファイルを誤って変更された時に、インスペクタ上で探して修正するのは面倒。特にシーン内のオブジェクトが複雑に絡み合った参照関係を持つなどは論外 もしどうしてもこれが避けられない場合はオブジェクトをプレハブ化してプレハブ内での参照に限定することで問題のスコープを小さく保つ 上記ルールに沿って作れないならそれは設計が悪いので設計を見直す、疎結合を徹底するべし 必要ならCamera.mainなどの様なstatic経由での参照の受け渡しや、シングルトンなマネージャークラスの導入を検討する ※多用は厳禁、後者はScript Execution Orderを正しく設定すること ヒエラルキーツリーやインスペクタでの変更に弱いコードはメンテナンス性が低く、こうした変更による問題が発生した場合の問題箇所の検出が非常に困難になるので避ける様にするといい
- 436 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 10:39:43.18 ID:3wXsUBad.net]
- じゃあゲーム上のオブジェクト参照どうすんのよ
- 437 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 11:22:37.04 ID:YW1VLQdX.net]
- これ間違ってるね
>1. Findは基本的に使用禁止 名前で判断するのが一番メンテナンスしやすいので普通によく使われる バグってもそれを上回る使い安さ。だから使用禁止にしてる企業なんかない むしろ命名規則の徹底の方が大切。名前書き間違えるとか池沼に弄らせない限り起きません。 池沼はゲーム作っちゃダメ。以上、終わり
- 438 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 11:24:34.89 ID:/3Y06ViO.net]
- >>427
低能自慢して何が楽しいの? アセットおじさんとは違う嫌がらせかね
- 439 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 11:51:03.41 ID:XAVbtWpl.net]
- >>429
たとえば… GameObject.Find("MainCamera"); Camera.main 他所から変更されるリスクはどちらも大差ないが、優先されるべきは圧倒的に後者だ コード補完が効くのはどっちだ? コンパイル時点で間違いが検出出来るのは? 処理速度はどっちが早い? アセットとして切り出した時などに名前を変更されるリスクは本当にないのか? 命名規則に従ってないオブジェクトの存在をどうやって見つける? 運用対処なんてバグの温床以外の何物でもない
- 440 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 12:19:07.81 ID:YW1VLQdX.net]
- さぁ?w
現実は君の考えてる妄想とは違うってこったろうね
- 441 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 12:23:52.12 ID:3wXsUBad.net]
- 得意げに長文書いててワロタ
ゲーム会社で働いてから書き込もうな知ったかエンジニア君
- 442 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 12:57:35.86 ID:d8uwf8Mk.net]
- 運用カバー無しとかキリがないと思うんだけど
- 443 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 13:09:59.77 ID:q1X0lAjX.net]
- >>427
おお、何となく書いたレスに真面目な長文回答つけてくれてわざわざスマンね 俺は内容に関してはほぼ同意 Findに限らず、SendMessageやStopCoroutineみたいな文字列指定はクソだからね ただ正し過ぎるというか、1,2を両方課すのは求道的すぎて利便性が損なわれてる気もする 1に比べたら、インスペクタ参照についてはもっと緩くてもいいんじゃね
- 444 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 13:10:47.80 ID:X5Sl8Nuy.net]
- ケース・バイ・ケースでアセットをかうのが一番最適だと思います
- 445 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 13:45:05.15 ID:DLtXAMjk.net]
- Findは使わないけど、正規表現検索と置換使ってないのかな?
- 446 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 13:55:21.52 ID:q1X0lAjX.net]
- そりゃ文字列処理は文字列引数でいいっすよ
参照や呼出しを実行時に文字列比較で解決するのはパフォーマンスも悪いしメンテナンス性も落ちるしデメリットしかないよねってお話
- 447 名前:名前は開発中のものです。 [2017/06/18(日) 13:56:47.12 ID:+mnWtDzw.net]
- そうだ、俺もアセットを買おう
細かい部分大変だ アセットを買おう
- 448 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 14:00:07.13 ID:Fr4XIrmP.net]
- >>429
js好きがコンパイルとかたるいっすわw とか抜かしててライブラリ使う時に違う型渡しててデバッグに手間取って死んでたの思い出した。
- 449 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 14:03:18.54 ID:B/qMU4Iu.net]
- もうすべての質問に
ケースバイケースて返しとけよw
- 450 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 14:08:17.74 ID:M/2QAqjI.net]
- スクリプトアタッチやインスペクタの設定をエディタ拡張で
自動化してる俺には関係が無かった
- 451 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 14:29:28.63 ID:q1X0lAjX.net]
- それな
- 452 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 14:46:23.45 ID:XAVbtWpl.net]
- >>435
全面的に同意、求道的すぎるのは認める ここ初心者多いから>>429みたいなクソ開発者になるなという意味を込めて厳しめに書いた リスクを理解した上で使うならともかく、安易に便利だからで多用すると一気にコードが糞になるからなぁ >>442 あるある、ついでにエディタ上で触らせる必要がなく親子関係が確定してるオブジェクトなんかはhideFlagsも立てたりする
- 453 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 15:19:36.48 ID:nmnJlvzm.net]
- コルーチンを使えば大抵は解決する
- 454 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 15:39:48.82 ID:X5Sl8Nuy.net]
- アセットを買えば大抵は解決しますよ
- 455 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 15:47:07.09 ID:nmnJlvzm.net]
- コルーチンとラムダ式でUnityの制御は全て網羅できる
λを崇めよ
- 456 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 17:08:30.89 ID:hyK8VDmp.net]
- アセットストアで売っているアセットについて質問しても宜しいでしょうか?
アセットのスレらしきものがなくて。 terraincomposer2というアセットを買ったのですが、公式を見ながら使ってるのに躓いてしまって… www.terraincomposer.com このアセット購入した方いらっしゃいますでしょうか? お伺いしたいです。
- 457 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 17:17:36.89 ID:X5Sl8Nuy.net]
- >>448
ケースバイケースで別のアセットを買うのが良いでしょう
- 458 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 17:30:36.61 ID:Ga9T3hxB.net]
- >>442
なにそれ欲しい GitHubで公開おなしゃす
- 459 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 18:20:48.74 ID:M/2QAqjI.net]
- やってる事はOneStepEffectsと大して変わらないから参考にしたらいんでね?
https://github.com/makoto-unity/OneStepEffects 全部既出の情報だから大して難しくないし、最初にインスペクタにボタン付けて それをカスタムするだけだよ
- 460 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 18:30:17.24 ID:Ga9T3hxB.net]
- >>451
いや難しくないならなおさら該当機能のみを切り出したシンプルなコード提供おなしゃす URLは主とする目的以外のスクリプトが多すぎて初心者にはどこ切り出したらいいのかわかりません >>444の方でもいいですよ Find使うのは良くないってわかってるけど インスペクタでポチポチ設定するのもな…ってのを解決できるんでしょ? ウンチクをダラダラ書くよりもコードと行動で示すのが他の開発者にとっても有益では 何も本垢でとは言わないから捨て垢ででも公開おなしゃす
- 461 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 18:41:27.00 ID:9R6VPmIg.net]
- スゲー他力本願w
- 462 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 18:47:53.80 ID:d8uwf8Mk.net]
- エディタ用のスクリプトを実際に使うとなると、自分で読み書き出来ないと実用性ないのでは
- 463 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 18:48:21.19 ID:M/2QAqjI.net]
- OneStepEffectsってcsが1つ入ってるだけなんだが?
255行目のApplySSAO()とか見ればいいじゃん 幾らなんでも酷いんじゃねーの?
- 464 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 19:08:48.38 ID:X5Sl8Nuy.net]
- >>452
アセットを買ってもダメみたいですね
- 465 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 19:25:19.93 ID:Ga9T3hxB.net]
- >>455
確かに丸投げはいかんなと思い直して読んだけど、このコード提示するのは見当違いじゃね ここまでさんざん議論されてきたのって Unityエディタ上でインスペクタで参照設定するのと AwakeでFind&GetComponentするのとではランタイム時にどっちが効率いいかだよね URL先のコードはUnityエディタ上のボタン一つでカメラやライトを FindObjectOfTypeで全走査してAddComponentやプロパティの設定してるだけ つまりAwakeでFindせずかつインスペクタでポチポチしなくてもいいことへの 解決法でもなんでもないものっていう >>442で自動化してる俺には関係無いって言ってるけどそもそも求めている結果が違うから そりゃ関係無いという
- 466 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 19:28:49.12 ID:Ga9T3hxB.net]
- ちなみにFind系は基本的にエディタ拡張でヒエラルキー走査して
ごにょごにょやるためにあるようなものだと思ってる Unityエディタ上ではパフォーマンスは多少犠牲になっても問題ないし こうなると>>444の”あるある”に期待やなぁ
- 467 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 19:39:14.41 ID:M/2QAqjI.net]
- エディタでメソッド実行すると変数はインスペクタに記録されるから
手動で設定したのと同じなんだけどな
- 468 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 19:49:51.66 ID:nmnJlvzm.net]
- すまん、お前らまだUnityでコーディングしてるね
teamcherry.com.au/wp-content/uploads/playMakerOverview.png 今はビジュアルスクリプディングの時代ですよ
- 469 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 19:50:35.61 ID:nmnJlvzm.net]
- お前らまだUnityでコーディングしてるの?
- 470 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 19:51:28.51 ID:Ga9T3hxB.net]
- >>459
いやランタイム時の参照をどう持つかのお話なので Unityエディタ上でコンポーネントのプロパティの設定(と無い場合はAddComponent)を 自動化してるか手動でやるかのあなた話は、議論している箇所が違うんですよね… 煽ってるわけではないので気を悪くしないでね
- 471 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:01:31.70 ID:M/2QAqjI.net]
- >>462
話もブレてるし何を理想として思い描いたのかよく分からないな
- 472 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:03:54.39 ID:0/Ag2Y7d.net]
- >>461
コルーチンをビジュアルに書いたの見せてくれ
- 473 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:13:48.96 ID:q1X0lAjX.net]
- >>462
最初の問い(>>392)はランタイム時の効率についての話しだが、それについてはFindのほうがオーバーヘッドが大きいよねと概ねコンセンサスは出来てるだろう (直接、Find系とインスペクタ参照で速度比較したデータが示されていないけど) で、>>427でランタイム時の効率だけでなくメンテナンス性にも話題が広がったので、複雑な参照関係はエディタ拡張スクリプトで自動化しておくと効率面でもメンテナンス面でも有益なことが多いよね、となった なんかおかしいかな?
- 474 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:19:07.23 ID:Ga9T3hxB.net]
- >>463
俺の話は徹頭徹尾、ランタイム時の参照をAwakeでFindしないかつインスペクタでポチポチしない方法です >>442の書き込みにこの話の求道者である>>444が賛同してたので勝手に期待しちゃっただけです あなたのやっている自動化は私の求めるものとは違っていただけなのでどうぞ気になさらずに
- 475 名前:名前は開発中のものです。 [2017/06/18(日) 20:19:26.05 ID:+mnWtDzw.net]
- >>460
これなんてやつ?
- 476 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:28:32.00 ID:3wXsUBad.net]
- >>467
モグリかよ
- 477 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:31:46.17 ID:Ga9T3hxB.net]
- >>465
そう、その「複雑な参照関係はエディタ拡張スクリプトで自動化しておく」方法を知りたいんです 自分の状況を書いておくと、 1. 最初はインスペクタでドラッグ&ドロップで参照設定していた 2. UIとか配置オブジェクトが1シーンに数十個とかになってくると、さすがにポチポチは面倒… 3. Awakeで命名規則に従ってFindで設定しちゃえ 4. ランタイムではパフォーマンスが悪いし、オブジェクトのリネームに弱いと気づき、泣く泣くポチポチへ戻る で現在4の状態なので、それを自動化できるアセットなら欲しいと思ったわけです この話をしてる流れの中でUnityエディタ上でリフレクションとか使って自動設定するのかなとか考えたけど 運用考えると破綻しそうなので、すでにバリバリ実用してそうな>>444とかに参考コードのおこぼれでももらおうと思ったわけです やっぱりそんなものはないのか、ポチポチ業務へ戻りますかね…
- 478 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:34:34.58 ID:nmnJlvzm.net]
- >>467
PlayMaker UE4のブループリント風エディタ拡張 もはやゲームプログラマがコードを書く時代は終わった
- 479 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:37:22.40 ID:nmnJlvzm.net]
- コルーチン、LINQ、ラムダ式を使わないならコードなんて書くな
もうお前がやろうとしている事は他の誰かがアセットにして公開しているのだから
- 480 名前:名前は開発中のものです。 [2017/06/18(日) 20:41:11.49 ID:+mnWtDzw.net]
- >>470
うわーこんな便利な物があるんですね すぐに買います
- 481 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:46:21.89 ID:nmnJlvzm.net]
- 今はもうC#プログラミングは関数をポータブルに持ち運ぶ世界だよ
クラスの概念さえ以前より希薄になろうとしている 遠く離れた、名前すら知りもしない世界の果てのクラスの関数をプレイヤークラスが実行できる これがファーストクラス関数型の世界 従来の手続き的なコーディングはレガシープログラマと言われる Unityでコーディングする意味がない
- 482 名前:名前は開発中のものです。 mailto:sage [2017/06/18(日) 20:48:36.20 ID:m9nbofGj.net]
- >>472
まて、早まるな。 PlayMakerは確かに便利だけど、 結局プロパティとかメソッドの知識がないと組めないのは変わらんぞ。
|

|