[過去ログ]
【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
454: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:25:19.93 ID:Ga9T3hxB >>452 確かに丸投げはいかんなと思い直して読んだけど、このコード提示するのは見当違いじゃね ここまでさんざん議論されてきたのって Unityエディタ上でインスペクタで参照設定するのと AwakeでFind&GetComponentするのとではランタイム時にどっちが効率いいかだよね URL先のコードはUnityエディタ上のボタン一つでカメラやライトを FindObjectOfTypeで全走査してAddComponentやプロパティの設定してるだけ つまりAwakeでFindせずかつインスペクタでポチポチしなくてもいいことへの 解決法でもなんでもないものっていう >>439で自動化してる俺には関係無いって言ってるけどそもそも求めている結果が違うから そりゃ関係無いという http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/454
455: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:28:49.12 ID:Ga9T3hxB ちなみにFind系は基本的にエディタ拡張でヒエラルキー走査して ごにょごにょやるためにあるようなものだと思ってる Unityエディタ上ではパフォーマンスは多少犠牲になっても問題ないし こうなると>>441の”あるある”に期待やなぁ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/455
456: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:39:14.41 ID:M/2QAqjI エディタでメソッド実行すると変数はインスペクタに記録されるから 手動で設定したのと同じなんだけどな http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/456
457: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:49:51.66 ID:nmnJlvzm すまん、お前らまだUnityでコーディングしてるね http://teamcherry.com.au/wp-content/uploads/playMakerOverview.png 今はビジュアルスクリプディングの時代ですよ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/457
458: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:50:35.61 ID:nmnJlvzm お前らまだUnityでコーディングしてるの? http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/458
459: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:51:28.51 ID:Ga9T3hxB >>456 いやランタイム時の参照をどう持つかのお話なので Unityエディタ上でコンポーネントのプロパティの設定(と無い場合はAddComponent)を 自動化してるか手動でやるかのあなた話は、議論している箇所が違うんですよね… 煽ってるわけではないので気を悪くしないでね http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/459
460: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:01:31.70 ID:M/2QAqjI >>459 話もブレてるし何を理想として思い描いたのかよく分からないな http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/460
461: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:03:54.39 ID:0/Ag2Y7d >>458 コルーチンをビジュアルに書いたの見せてくれ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/461
462: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:13:48.96 ID:q1X0lAjX >>459 最初の問い(>>389)はランタイム時の効率についての話しだが、それについてはFindのほうがオーバーヘッドが大きいよねと概ねコンセンサスは出来てるだろう (直接、Find系とインスペクタ参照で速度比較したデータが示されていないけど) で、>>424でランタイム時の効率だけでなくメンテナンス性にも話題が広がったので、複雑な参照関係はエディタ拡張スクリプトで自動化しておくと効率面でもメンテナンス面でも有益なことが多いよね、となった なんかおかしいかな? http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/462
463: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:19:07.23 ID:Ga9T3hxB >>460 俺の話は徹頭徹尾、ランタイム時の参照をAwakeでFindしないかつインスペクタでポチポチしない方法です >>439の書き込みにこの話の求道者である>>441が賛同してたので勝手に期待しちゃっただけです あなたのやっている自動化は私の求めるものとは違っていただけなのでどうぞ気になさらずに http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/463
464: 名前は開発中のものです。 [] 2017/06/18(日) 20:19:26.05 ID:+mnWtDzw >>457 これなんてやつ? http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/464
465: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:28:32.00 ID:3wXsUBad >>464 モグリかよ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/465
466: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:31:46.17 ID:Ga9T3hxB >>462 そう、その「複雑な参照関係はエディタ拡張スクリプトで自動化しておく」方法を知りたいんです 自分の状況を書いておくと、 1. 最初はインスペクタでドラッグ&ドロップで参照設定していた 2. UIとか配置オブジェクトが1シーンに数十個とかになってくると、さすがにポチポチは面倒… 3. Awakeで命名規則に従ってFindで設定しちゃえ 4. ランタイムではパフォーマンスが悪いし、オブジェクトのリネームに弱いと気づき、泣く泣くポチポチへ戻る で現在4の状態なので、それを自動化できるアセットなら欲しいと思ったわけです この話をしてる流れの中でUnityエディタ上でリフレクションとか使って自動設定するのかなとか考えたけど 運用考えると破綻しそうなので、すでにバリバリ実用してそうな>>441とかに参考コードのおこぼれでももらおうと思ったわけです やっぱりそんなものはないのか、ポチポチ業務へ戻りますかね… http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/466
467: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:34:34.58 ID:nmnJlvzm >>464 PlayMaker UE4のブループリント風エディタ拡張 もはやゲームプログラマがコードを書く時代は終わった http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/467
468: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:37:22.40 ID:nmnJlvzm コルーチン、LINQ、ラムダ式を使わないならコードなんて書くな もうお前がやろうとしている事は他の誰かがアセットにして公開しているのだから http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/468
469: 名前は開発中のものです。 [] 2017/06/18(日) 20:41:11.49 ID:+mnWtDzw >>467 うわーこんな便利な物があるんですね すぐに買います http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/469
470: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:46:21.89 ID:nmnJlvzm 今はもうC#プログラミングは関数をポータブルに持ち運ぶ世界だよ クラスの概念さえ以前より希薄になろうとしている 遠く離れた、名前すら知りもしない世界の果てのクラスの関数をプレイヤークラスが実行できる これがファーストクラス関数型の世界 従来の手続き的なコーディングはレガシープログラマと言われる Unityでコーディングする意味がない http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/470
471: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:48:36.20 ID:m9nbofGj >>469 まて、早まるな。 PlayMakerは確かに便利だけど、 結局プロパティとかメソッドの知識がないと組めないのは変わらんぞ。 http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/471
472: 名無し@キムチ [] 2017/06/18(日) 21:14:01.06 ID:UdS9CyS1 T2VBuilderはUnityでつくられていると思いますが、 あのように自分の画面をキャプチャーしてAVIに録画する関数は、 Unityのスクリプトにあるのですか? またそれは何という名前の関数ですか?使い方もお願いします。 http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/472
473: 名前は開発中のものです。 [sage] 2017/06/18(日) 21:37:15.68 ID:Fr4XIrmP >>470 そのうちリアクティブスパゲティ作りそうだな http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/473
474: 名前は開発中のものです。 [sage] 2017/06/18(日) 21:40:40.73 ID:WNEWBLm8 >>466 単にこういうやつを求めてる? using UnityEditor; using UnityEngine; using System.Collections.Generic; public class attachSelectObjects { [MenuItem("Assets/autoAttach")] static void autoAttach() { List<GameObject> l = GameObject.Find("GameManager") .GetComponent<myScript> ().myList; //アタッチ先のリストを取得 foreach(GameObject go in Selection.gameObjects){ //ヒエラルキーで選択しているゲームオブジェクトをリストに登録 l.Add (go); } } } http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/474
475: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:01:39.46 ID:Ga9T3hxB >>474 うーん、せっかく貼っていただいたんだけど違うかな…? それだとListの中をランタイム時にいちいち回して該当オブジェクトを検索しなくちゃいけないからさらに効率悪そう 他の人はどうやってるんだろ?って調べてみると、ZenjectってライブラリがやってるDIがイメージ通りっぽい ただこれも結局はランタイム時に参照関係を解消するみたいなので処理効率という点ではFind系と変わらなそう? …もう諦めてしばらくはドラッグ&ドロップでやっていきますわ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/475
476: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:08:44.71 ID:WNEWBLm8 ああ、uiはuiの参照先にアタッチ、playerはplayerにみたいなことをやりたいってこと? http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/476
477: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:12:26.43 ID:Ga9T3hxB >>476 そそ。インスペクターにドラック&ドロップでポチポチ設定するのも数が少なけりゃいいけど 大量になってくると面倒かつアタッチ先ミスったりアタッチ漏れとかあるから それで自動化って話が出てたから期待しちゃっただけ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/477
478: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:14:14.28 ID:mYx0Ucs7 初心者です。 ボタンを押したらidleからjumpステートにbool値で移ってまたidleにすぐ戻るスクリプトを書きたいのですが。 if (Input.GetButtonDown("Bbutton")) { if (currentBaseState.nameHash == idleState)anim.SetBool("e", true); } if (currentBaseState.nameHash != idleState)anim.SetBool("e", false); と書いてみたらなぜかうまくいきました。 if (Input.GetButtonDown("Bbutton")) { if (currentBaseState.nameHash == idleState)anim.SetBool("e", true); } if (currentBaseState.nameHash == jumpState)anim.SetBool("e", false); でもこれだと一度押したら永遠とjumpし続けるようになってしまって。 ステートがjumpに移ったらフラグが消えるようにと思って書いたのですが、なぜこんな挙動になるのか理解できないので教えてください。 http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/478
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 524 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s