質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1319閲覧

非activeからactiveにした時にbuttonを押したい

RedRabbit

総合スコア28

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/04/06 17:10

編集2019/04/08 12:36

非activeからactiveにした時にbuttonを押したい
親オブジェクトのactiveをスクリプトによって切り替えています。
その際、子オブジェクトにつけた標準のButtonコンポーネントが機能しなくなります。

原因・解決策等教えて下さると幸いです。よろしくお願いします。

詳細追記
以下のような状態です。
PlayableDirectorがPlayOnAwakeなので、このオブジェクト__GoalCinema__のアクティブ状態をスクリプトによって切り替えています。アクティブ後、Timeline中のAnimationによって__card__が画面内に移動してきます。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bongo

2019/04/07 00:49

ちょっと試したところでは、親オブジェクトをアクティブ→非アクティブ→アクティブと切り替えても、子オブジェクトのボタン機能が失われてしまうような現象は特に見られませんでした。どのように作ったら症状を再現できるか、より詳しく追記いただけますでしょうか?
Bongo

2019/04/07 22:23

すみません、まだ状況を再現できず原因を特定できない状態です(親再表示後もボタンをクリック、機能を実行できてしまう)... スクリーンショットを参考に下記のような状況を用意してみたのですが、ご質問者さんと異なっている点や、他に気になる点はお心当たりあるでしょうか? ・親オブジェクトはシーン編集時点では非アクティブにしておく ・ゲームを実行し、適当なタイミングで親オブジェクトに対してSetActive(true)を実行する ・それによりタイムラインが動作を開始し、Cinemachineトラックによりカメラがプレイヤー用視点からボタン用視点へと遷移する(この辺はおそらく動作に無関係だと思いますが...) ・引き続きAnimationトラックによりボタンオブジェクトが画面外から移動してきて、クリップの再生が終わりボタンが定位置(さしあたり画面中心としましたが、おそらく位置がどこだろうが関係ないでしょう)に落ち着く ・ボタンをクリックしてみても反応しないといったことはなく、ボタンのインスペクタでOn Click ()にセットしておいたメソッドも正常に実行されてしまう ボタンが機能しなくなった状態での様子についておうかがいしますが、ボタンをクリックするとクリックされたときの視覚的応答(ボタンを押し下げるとうっすら暗くなったり)はあるでしょうか?また、ボタンのインスペクタを見てみるとOn Click ()にセットしておいたメソッドが勝手に消えてしまっている(さすがにこれはないかとは思いますが...)なんてことはあるでしょうか? あとは製作環境のバージョン違いももしかしたら影響があるかもしれませんね... 私はUnity 2018.3.11f1 Windows版、Cinemachine 2.2.8を使ったのですが、ご質問者さんはどうでしょうか(もし古いバージョンでしたら、制作上差し支えなければ念のためアップグレードしてみてもいいかもしれません)。
RedRabbit

2019/04/08 12:29

大変親身になっていただきありがとうございます。 記述してある状態と違いありません。 唯一、最後のボタンの反応だけ発生しません。 アクティブ開始時、ボタンクリック時の視覚的応答がありOnClick()は呼ばれます。 非アクティブ開始時、ボタンクリック時の視覚的応答すらありません。 と、記述していたところ違和感に気づき、解決しました。 ありがとうございます。非常にお恥ずかしい。 元々のアクティブ状況によってUIが前後することがあるようです。 背景に使っていた透過板が全面に出ており、クリックできない状態になっていました。 ありがとうございました。
RedRabbit

2019/04/08 12:48

一応、詳細を追記します。 画像で言うところのRewardCanvasが今回のボタンに該当しますが、 ボタン出現以前にResultCanvas(少し下に見えるもの)を表示していました。 今回はこのCanvasの順序を入れ替えるだけで解決しました。 本当にお手数おかけしました。
Bongo

2019/04/08 19:22

なるほど、解決しましたようで安心しました。 それにしても、最初にアクティブか非アクティブかで前後関係が入れ替わってしまうというのは興味深いですね...ぜひ覚えておきたいと思います。 Canvas間の前後問題ということは、Canvasの「Sort Order」あたりを調整してやれば最初にアクティブであっても非アクティブであっても一貫した前後関係にできそうでしょうかね?お時間のあるときにでも、自己解決回答などの形でご記載いただけますとありがたいです。
guest

回答1

0

自己解決

イメージ説明
既に修正依頼欄に記述していますが再度記述します。

元々のアクティブ状況によってUIが前後することがあるようです。
背景に使っていた透過板が全面に出ており、クリックできない状態になっていました。
Canvasの順番を変えることで解決しました。

また、上記修正依頼欄ではインスペクタでCanvasの順序を変更することで解決したと記しましたが、
Canvasの「Sort Order」によって順番を調整することでも解決を確認しました。
此方のほうが仕様として明確なので、こちらのやり方での解決が望ましいと思います。
解決を手伝ってくださり、本当にありがとうございました。

投稿2019/04/09 13:23

編集2019/04/09 13:24
RedRabbit

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問