Posts Tagged “ActionButton”

(Unity3D)ダイナミックボタンアクション

By |

(Unity3D)ダイナミックボタンアクション

あるゲームのUIを作っている間にボタンに関する問題に遭遇しました。選択されたエンティティによって、表示されているボタンが変わるようにしたいと思いました。 もちろん一つずつのエンティティのGameObjectを準備して場合によってSetActive()trueかfalseにしてもいいですが、スケーラビリティは?エンティティを追加しようとする毎に新しいGameObjectを準備しますか?そんな面倒なことは勘弁してほしいですよね。 ということでスケーラビリティのため、エンティティを選択する時にボタンが編集され、ちょっとしたアルゴリズムを書きました。  こういうシステムが入っているUIを作る人がいて参考になればと思い、分かりやすいバージョンを準備して下記にそのケースを紹介します。  想定ケース:  1.エンティティによる、ボタンの数が異なる場合でもOK。  2.ボタンの見た目を編集可能にする。  3.ボタンのアクションがstringの引数を受け取れる。  4.簡単にするため、ボタンの最大数は10にします。  先ずはボタンの情報をまとめるクラス“ActivityButton“をつくります。  public class ActionButton { public UnityAction<string> theAction; public string argument; public Sprite sprite; public ActionButton(UnityAction<string> act, Sprite sprite, string arg=””){ theAction = act; argument=arg; this.sprite = sprite; } } UIマネージャーにはButton、Image、GameObjectの配列を必要です。パブリックなGameObjectの配列を作ってシーンからボタンをドラッグして、Start()でButtonとImageの配列を作りました。  public class MyEpicUIManager : MonoBehaviour { Button[] actionBtns; Image[] actionImgs; public GameObject[] actionBtnObjs; void Start…

Go Top