[過去ログ] 【3Dゲームエンジン】Unity質問スレッド36 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
969: 名前は開発中のものです。 [sage] 2018/08/01(水) 01:26:54.78 ID:Pc5BT9yA(1/6) AAS
プレイヤーからオブジェクトにレイキャストを飛ばして、オブジェクトに当たったら
独自のイベントをそのオブジェクトで発生させるにはどうすればいいですかね?
例えばですが、プレイヤーからレイを飛ばして、当たったオブジェクトのスクリプト内のHitRayのイベントを呼び出すといった感じです。
イベントをオブジェクトごとにしたい理由としては、レイが当たったらオブジェクトの種類によって別の動作をさせたいといったところなのですが。
970(1): 名前は開発中のものです。 [sage] 2018/08/01(水) 03:27:36.08 ID:Pc5BT9yA(2/6) AAS
Event関連のページ見てもうちょっと質問が固まってから再度質問しますね、擦れ汚し失礼しました。
973(1): 名前は開発中のものです。 [sage] 2018/08/01(水) 07:16:41.43 ID:Pc5BT9yA(3/6) AAS
>>972Eventの使いどころを少し勘違いしていたようでした。
やりたかったのは、レイを飛ばして検知したオブジェクトにあるスクリプトのメソッド実行だったのですが、
レイ飛ばして、当たったオブジェクトのSendMessageでメソッドを実行すれば可能でしたね。
メソッド名を同じものにしておけばオブジェクトごとに処理ができるので、そうしようと思います。
975(2): 名前は開発中のものです。 [sage] 2018/08/01(水) 08:20:15.08 ID:Pc5BT9yA(4/6) AAS
>>974974(1): 名前は開発中のものです。 [] 2018/08/01(水) 07:23:15.60 ID:DqpgEGtJ(1) AAS
>>973
パブリックにすれば、コンポーネントキャッシュした後で直につかえるぞ。
実行したいクラス o= a.game object.get component<実行したいクラス>()
o.実行したいメソッド()
aはhitしたrayから取れるはず。
メッセージセンドも良いがそれこそメッセージ待ち受けになっちまう。
こっちも検討してみてくれえ
それも最初に考えてはみたのですが、オブジェクトとスクリプトが数個程度ならなんとかなるでしょうが、
数十を超えてくると分岐の数が膨大になりそうなうえにスペックも食いそうなのでSendMessageにしようと思います。
ありがとうございました。
978(2): 名前は開発中のものです。 [sage] 2018/08/01(水) 09:50:53.53 ID:Pc5BT9yA(5/6) AAS
>>976976(1): 名前は開発中のものです。 [] 2018/08/01(水) 09:08:19.81 ID:jvByuBTB(1) AAS
>>975
すまん、お節介かも知らんが聞いてくれ。
メッセージは癌なんだ。理由は
デバッグがキツイ。
ソース管理で死ぬ。
今のだと、実行したいクラスを統一し、メソッドのパラメータでメソッド内で分岐するのが吉。
今回は、それで行けるかも知れんが、大き目の作る時はちょっとそこら辺も考慮してみてくれえ。
マイクラのかまどとかMMOのショップのUI表示みたいに数百単位で存在する場合もやっぱり
そうやってメソッド内で分岐するほうがいいんですかね?
>>977そうなんですか?
たぶんアイテム毎にその分岐をするスクリプトが必要だと思うのですが、それでもそちらのほうが軽いんでしょうか?
982(2): 名前は開発中のものです。 [sage] 2018/08/01(水) 12:16:04.96 ID:Pc5BT9yA(6/6) AAS
>>979なるほど、空オブジェクトに当てたスクリプトの独自メソッド呼び出せば全部のアイテムにスクリプト適応する必要ないですね
>>981981(1): 名前は開発中のものです。 [] 2018/08/01(水) 11:08:30.92 ID:XRSMy4I9(1) AAS
>>978
話しがごっちゃになりそうなんで、アレだが
uiの数と表示に関する重さは、どちらかと言うと描画能力に関わるんだよね。
んで、大量に表示されてるような物は大体レイ飛ばして無いよ。範囲内のを描画しとる。レイ飛ばすとしたら並列化とかしないとまず無理だね。
そんな並列化するなら、自分からじゃ無くてオブジェクトから飛ばして、全オブジェクトの動きを並列化する方が楽。
何にせよ、当たったらとか、その先のクリックしたら?とかの分岐は、ちゃんと設計すれば、そんなに種類は多く無い筈なんだよね。
そうなると、共通処理を噛ます、コールする。の方が圧倒的に楽で早い事が分かると思うよ。
アイテム毎に分岐するってのはまず無い話しで、それは何か設計が間違っているから、共通化出来るものを探す旅からする事をお勧めする。
ごめんなさい、書き方が悪かったですね。
自分が言いたかったのは、たとえばMMOであれば鍛冶屋、ショップ、クエスト受付所などがあるとして、
鍛冶屋では装備強化などのUI、ショップでは購入、売却のUI、クエスト受付所ではクエスト選択、報告のUIを
それぞれのオブジェクト(人物)のスクリプトにあるメソッドで実行表示する場合に、どのように呼び出すかという意味だったのですが
マイクラであればかまど、金床、クラフトテーブル、村人交易...etc
のUIを表示するにはそれぞれレイを飛ばして目の前にあるアイテム(オブジェクト)ごとにUI表示のメソッドを引き出す必要があると思ったもので
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s