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

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

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

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

Q&A

1回答

3304閲覧

フラグがtureになったらボタンを有効にする方法

tukiko

総合スコア6

Unity

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

0グッド

0クリップ

投稿2016/12/25 23:40

はじめて質問させて頂きます。
現在、ノベルゲームを制作しております。

プログラム初心者のため、シナリオ中に○○=tureになったものをおまけ頁で開放(ボタンの画像をかえてを押せるようにする)する、といった場合どのような記述をしたらよいかわからず、質問させて頂きました。

Unity5.5.09b、unity宴にて制作しています。
Unity宴では備えられている機能では出来ないため、プログラムを打たないといけないそうです。
ご教示頂けましたら幸いです。

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

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

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

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

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

guest

回答1

0

宴Assetを使ったことがないのでそこに絡む部分についてはわかりませんが、
おまけ画面はこんな感じのコードでできるのではないでしょうか。

C#

1public Sprite[] imgs; //ボタンに使う画像 2public GameObject button; //ボタンのプレハブ 3public Transform parent; //ボタンを出力する親オブジェクト 4private UnityEngine.Events.UnityAction<int> ad; //ボタンアクションに使うデリゲート 5 6void Awake() 7{ 8 ad = (select) => { }; 9 ad = OnClick; 10} 11 12void Start() 13{ 14 bool[] fg = FragGet(); 15//ボタンの出力 16 for(var i =0;i < imgs.lenght;i++){ 17 GameObject bt = (GameObject)Instantiate(button,parent); //ボタンのオブジェクトを作る 18 bt.name = "bt"+i; //ボタンの名前を分かりやすく変更する 19 Image img = bt.GetComponent<Image>(); 20 img.sprite = imgs[i]; //ボタンに画像をセットする 21 if(fg[i]) 22 { 23 bt.GetComponent<Button>().onClick.AddListener(() => ad(i)) //クリック時の関数設定 24 } 25 else 26 { 27 img.color = new Color(0,0,0); //画像を黒にする 28 } 29 } 30 31} 32 33///<summary>宴のシナリオフラグを取得する</summary> 34///<returns>シナリオフラグの状態を返す</returns> 35bool[] FragGet() 36{ 37 //ToDo シナリオフラグを取得するしてreturnするコードを書く 38} 39 40///<summary>ボタンをクリックした時の処理</summary> 41///<param name="select">クリックした番号</param> 42///<returns>シナリオフラグの状態を返す</returns> 43public void OnClick(int select) 44{ 45 //ToDo ボタンを押したときの処理を書く 46 Debug.Log(select+"が選択されました。"); 47} 48

コードの動作テストはしてないので、コードレベルでエラーが出るかもですが、
考え方を学ぶことはできるかと思います。
また、画面レイアウトや画面設計がなく、プログラム側でレイアウトを構築するのか不明なため、
役に立たないかもしれないです。

投稿2017/04/11 20:02

animeing

総合スコア136

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問