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

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

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

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

2861閲覧

unity 3D toggle ゲーム開始時にデフォルトのtoggle選択時の動作を実行させるには

911RSR

総合スコア13

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2020/10/11 07:53

unity 3Dにてゲームを開発しています。

UIにてtoggleで3つの排他的な選択肢(例えば剣(Toggle)、弓(Toggle2)、銃(Toggle3))を用意しており、このいずれかを選んでゲームでは操作していきます。

デフォルトを剣を選択した状態、つまりプレーヤーが剣を保持した状態からゲームが開始するようにしたいです。
このために空のオブジェクトに以下のスクリプトをアタッチしています。

しかしtoggleは切り替えた時にスクリプトが実行されるという性質のためか、前回ゲームを終了した時に選択していた武器、例えば弓や銃から開始してしまいます。

以下のスクリプトの恐らくtoggle.selectがおかしいのかと思いますが、どのように直したら、ゲーム開始時に剣のtoggle = Toggleを選択した状態からスタートできますでしょうか。
(現状toggleは選択されているのですが、その動作が実行されていない=剣に持ち替えていない状態からスタートしてしまいます)

using

1using System.Collections.Generic; 2using System.Security.Cryptography.X509Certificates; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class Startaction : MonoBehaviour 7{ 8 private Toggle toggle; 9 10 // Start is called before the first frame update 11 void Start() 12 { 13 Toggle toggle = GameObject.Find("Toggle").GetComponent<Toggle>(); 14 toggle.Select(); 15 } 16 17 // Update is called once per frame 18 void Update() 19 { 20 21 } 22} 23コード

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

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

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

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

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

guest

回答1

0

ベストアンサー

トグルのオン・オフをisOnの操作により設定してみてはいかがでしょうか?

C#

1 // Start is called before the first frame update 2 void Start() 3 { 4 Toggle toggle = GameObject.Find("Toggle").GetComponent<Toggle>(); 5 toggle.isOn = true; 6 }

ただし、たとえば初期状態でisOntrueのトグルに対してtoggle.isOn = true;を行ったとしても、トグルの値が変化していないのでonValueChangedは作動しないと思われます。
あらかじめ製作段階ですべてのトグルをオフにしておくとか、あるいはゲームスタート直後にスクリプト上からすべてのトグルをオフにするとかの対処が必要かもしれませんね。

投稿2020/10/11 09:21

Bongo

総合スコア10807

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

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

911RSR

2020/10/11 10:19

最高のヒントをありがとうございます。 「すべてのトグルをオフにしておく」これが効きました!Toggle groupに設定して一つonにしていたのをis onのチェックを外しました。 するとご教示頂いたスクリプトがToggleをチェックしたこととなり、剣を持った状態でスタートしました。迅速、かつご丁寧なご回答本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問