[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
983(4): 名前は開発中のものです。 [sage] 2020/03/28(土) 13:20:02.59 ID:DC6grK4Z(1/2) AAS
すみません、質問です。
ボタンA … Prefabの中のオブジェクトとして存在
ボタンB … シーン内に1つだけ存在(Prefabではない)
上記の2つのボタンがあり、
ボタンAを押したら、ボタンBに追加したコンポーネントC#を実行したいです。
そこで、ボタンAのイベントトリガー内に、対象オブジェクトとしてボタンBを指定しようとしたところで
行き詰まってしまいました。
ボタンAのイベントトリガーのインスペクター画面を出すには、
OpenPrefabでPrefab内を編集する必要がありますが、
OpenPrefabで編集中の時はシーンのヒエラルキータブが呼び出せません。(Prefabのヒエラルキーが表示されます)
こういう場合、シーンのヒエラルキーにあるボタンBを、
ボタンAのイベントトリガーに投げ入れたい時はどのようにすればよいのでしょうか?
987(2): 名前は開発中のものです。 [sage] 2020/03/28(土) 21:08:19.45 ID:SQeiPD5h(1) AAS
>>983
プレハブにインスペクタで参照を持たせることができるのは、そのプレハブ内に存在するものだけです。
なので、
プレハブ内に「シーン内からボタンBを探し、アタッチされたC#を実行する」ような「ブリッジになるスクリプト」を作って、ボタンAからはそれを呼ぶ、というかんじでどうでしょうか。
989: 983 [sage] 2020/03/28(土) 23:21:38.51 ID:DC6grK4Z(2/2) AAS
>>987
なるほど!そうなんですね
大変参考になりました。
ありがとうございます。
992(1): 名前は開発中のものです。 [sage] 2020/03/29(日) 02:03:44.76 ID:g2WXyABC(1) AAS
>>983
申し訳ない、>>987なんですが、
「プレハブがアセット内にある段階でシーン内への参照を持たせたい」のだと勝手に勘違いしてしまいました。
シーン内に置いたプレハブ(インスタンス)であれば、オブジェクトの左端の三角アイコンで子要素を展開すれば
子要素もインスペクタを変更できますのでそこから参照を持たせることができます。
994: 983 [sage] 2020/03/29(日) 09:04:09.01 ID:/DjoBqpM(1) AAS
>>992
いえいえ!ありがとうございます。
987さんの最初の認識で合ってますよ。
ボタンAはシーンに存在せず動的に生成されるオブジェクトですので、アセットにしか存在しません。
最初からシーンに存在するのはボタンBのほうだけです。
(これは私のほうが説明不足でしたね。すみません)
今回、追加で説明していただいたのは、
「ボタンAがPrefabであってもインスタンスとしてシーンに存在していたら可能だよ」という事ですよね。
このケースは想定していなかったので、より深くPrefabとインスタンスについて知ることが出来ました。
丁寧なフォローありがとうございました!
それにしても、どうしてこんな制限があるんでしょうね〜
アセットだけに存在するPrefab内からでも指定できてもよさそうなのに。。。
プログラムに疎い私にはさっぱりです(笑
987さんの最初のアドバイスどおり、「ブリッジになるスクリプト」を用意して対処したいと思います。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s