[過去ログ]
【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
479: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:17:14.91 ID:nmnJlvzm コルーチンを使えば解決しますよ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/479
480: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:25:34.41 ID:nmnJlvzm そらフラグ立てた直後にステート取得したってアイドルのままだよなぁ?? やっぱり必要なのはコルーチンじゃないか http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/480
481: 名前は開発中のものです。 [sage] 2017/06/18(日) 23:29:22.76 ID:WNEWBLm8 >>478 jumpStateに正しいHash値が設定されてないとか たとえば static int JumpState = Animator.StringToHash("歩いてるどー"); みたいなコードになってるとすると 永久に==JumpStateは満たせないからジャンプし続けそうだね http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/481
482: 名前は開発中のものです。 [sage] 2017/06/19(月) 01:29:13.74 ID:6qJGZiJQ まさかのコルーチンおじさん登場 http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/482
483: 名前は開発中のものです。 [sage] 2017/06/19(月) 01:51:55.80 ID:7YbLLl2h >>466 これ説明しだすときりがないんよなぁ >3. Awakeで命名規則に従ってFindで設定しちゃえ これでうまく動いていたなら、そのコードを微調整してメソッドに切り出して、ContextMenu属性つけて、Resetから叩くようにするだけでもいいかも? Resetはスクリプトをアタッチした時に参照を掴む処理を呼ぶため、ContextMenu属性は任意のタイミングで参照を再設定するために使う感じ http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/483
484: 名前は開発中のものです。 [sage] 2017/06/19(月) 02:40:14.82 ID:7YbLLl2h >>466 ちょっとネタっぽい作りにするならこんな感じとか? エディタ上にしか存在しないオブジェクトを作ってそいつに参照抱えさせて、受け手にばら撒くスタイル ビルド後は撒き手側クラスすら存在しないので、ダメな子であるFindObjectsOfTypeを使っても実行時のパフォーマンスには影響しない https://docs.google.com/document/d/1LKHIf7aPw5x-yx2K5Z7yNiZZ9bvy-6SoiLVh9jOk_W4 まあこれはあくまでもこんな事もできるというお遊びでしかないので、本気でこれを実用しようとか考えないようにな 真面目に作るならEditorWindow使う http://mevius.5ch.net/test/read.cgi/gamedev/1495286462/484
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 518 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s