[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
447: 名前は開発中のものです。 [sage] 2017/06/18(日) 17:30:36.61 ID:Ga9T3hxB(1/9) AAS
>>439なにそれ欲しい
GitHubで公開おなしゃす
449(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 18:30:17.24 ID:Ga9T3hxB(2/9) AAS
>>448いや難しくないならなおさら該当機能のみを切り出したシンプルなコード提供おなしゃす
URLは主とする目的以外のスクリプトが多すぎて初心者にはどこ切り出したらいいのかわかりません
>>441441(4): 名前は開発中のものです。 [sage] 2017/06/18(日) 14:46:23.45 ID:XAVbtWpl(3/3) AAS
>>432
全面的に同意、求道的すぎるのは認める
ここ初心者多いから>>426みたいなクソ開発者になるなという意味を込めて厳しめに書いた
リスクを理解した上で使うならともかく、安易に便利だからで多用すると一気にコードが糞になるからなぁ
>>439
あるある、ついでにエディタ上で触らせる必要がなく親子関係が確定してるオブジェクトなんかはhideFlagsも立てたりする
の方でもいいですよ
Find使うのは良くないってわかってるけど
インスペクタでポチポチ設定するのもな…ってのを解決できるんでしょ?
ウンチクをダラダラ書くよりもコードと行動で示すのが他の開発者にとっても有益では
何も本垢でとは言わないから捨て垢ででも公開おなしゃす
454: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:25:19.93 ID:Ga9T3hxB(3/9) AAS
>>452452(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 18:48:21.19 ID:M/2QAqjI(3/5) AAS
OneStepEffectsってcsが1つ入ってるだけなんだが?
255行目のApplySSAO()とか見ればいいじゃん
幾らなんでも酷いんじゃねーの?
確かに丸投げはいかんなと思い直して読んだけど、このコード提示するのは見当違いじゃね
ここまでさんざん議論されてきたのって
Unityエディタ上でインスペクタで参照設定するのと
AwakeでFind&GetComponentするのとではランタイム時にどっちが効率いいかだよね
URL先のコードはUnityエディタ上のボタン一つでカメラやライトを
FindObjectOfTypeで全走査してAddComponentやプロパティの設定してるだけ
つまりAwakeでFindせずかつインスペクタでポチポチしなくてもいいことへの
解決法でもなんでもないものっていう
>>439で自動化してる俺には関係無いって言ってるけどそもそも求めている結果が違うから
そりゃ関係無いという
455: 名前は開発中のものです。 [sage] 2017/06/18(日) 19:28:49.12 ID:Ga9T3hxB(4/9) AAS
ちなみにFind系は基本的にエディタ拡張でヒエラルキー走査して
ごにょごにょやるためにあるようなものだと思ってる
Unityエディタ上ではパフォーマンスは多少犠牲になっても問題ないし
こうなると>>441の”あるある”に期待やなぁ
459(2): 名前は開発中のものです。 [sage] 2017/06/18(日) 19:51:28.51 ID:Ga9T3hxB(5/9) AAS
>>456いやランタイム時の参照をどう持つかのお話なので
Unityエディタ上でコンポーネントのプロパティの設定(と無い場合はAddComponent)を
自動化してるか手動でやるかのあなた話は、議論している箇所が違うんですよね…
煽ってるわけではないので気を悪くしないでね
463: 名前は開発中のものです。 [sage] 2017/06/18(日) 20:19:07.23 ID:Ga9T3hxB(6/9) AAS
>>460俺の話は徹頭徹尾、ランタイム時の参照をAwakeでFindしないかつインスペクタでポチポチしない方法です
>>439の書き込みにこの話の求道者である>>441が賛同してたので勝手に期待しちゃっただけです
あなたのやっている自動化は私の求めるものとは違っていただけなのでどうぞ気になさらずに
466(3): 名前は開発中のものです。 [sage] 2017/06/18(日) 20:31:46.17 ID:Ga9T3hxB(7/9) AAS
>>462462(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 20:13:48.96 ID:q1X0lAjX(5/5) AAS
>>459
最初の問い(>>389)はランタイム時の効率についての話しだが、それについてはFindのほうがオーバーヘッドが大きいよねと概ねコンセンサスは出来てるだろう
(直接、Find系とインスペクタ参照で速度比較したデータが示されていないけど)
で、>>424でランタイム時の効率だけでなくメンテナンス性にも話題が広がったので、複雑な参照関係はエディタ拡張スクリプトで自動化しておくと効率面でもメンテナンス面でも有益なことが多いよね、となった
なんかおかしいかな?
そう、その「複雑な参照関係はエディタ拡張スクリプトで自動化しておく」方法を知りたいんです
自分の状況を書いておくと、
1. 最初はインスペクタでドラッグ&ドロップで参照設定していた
2. UIとか配置オブジェクトが1シーンに数十個とかになってくると、さすがにポチポチは面倒…
3. Awakeで命名規則に従ってFindで設定しちゃえ
4. ランタイムではパフォーマンスが悪いし、オブジェクトのリネームに弱いと気づき、泣く泣くポチポチへ戻る
で現在4の状態なので、それを自動化できるアセットなら欲しいと思ったわけです
この話をしてる流れの中でUnityエディタ上でリフレクションとか使って自動設定するのかなとか考えたけど
運用考えると破綻しそうなので、すでにバリバリ実用してそうな>>441とかに参考コードのおこぼれでももらおうと思ったわけです
やっぱりそんなものはないのか、ポチポチ業務へ戻りますかね…
475: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:01:39.46 ID:Ga9T3hxB(8/9) AAS
>>474474(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 21:40:40.73 ID:WNEWBLm8(2/4) AAS
>>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);
}
}
}
うーん、せっかく貼っていただいたんだけど違うかな…?
それだとListの中をランタイム時にいちいち回して該当オブジェクトを検索しなくちゃいけないからさらに効率悪そう
他の人はどうやってるんだろ?って調べてみると、ZenjectってライブラリがやってるDIがイメージ通りっぽい
ただこれも結局はランタイム時に参照関係を解消するみたいなので処理効率という点ではFind系と変わらなそう?
…もう諦めてしばらくはドラッグ&ドロップでやっていきますわ
477: 名前は開発中のものです。 [sage] 2017/06/18(日) 22:12:26.43 ID:Ga9T3hxB(9/9) AAS
>>476そそ。インスペクターにドラック&ドロップでポチポチ設定するのも数が少なけりゃいいけど
大量になってくると面倒かつアタッチ先ミスったりアタッチ漏れとかあるから
それで自動化って話が出てたから期待しちゃっただけ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.047s