0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MRTKのButtonの関数とアイコンをスクリプトで変更する

Posted at

初心者がちょっと躓いて解決したメモです

MRTKのToolboxから追加できるボタンに色々変更を加えたいときは[ButtonConfigHelper]クラスを使うと便利

やる事

スクリプトでまずモジュールをインポート

using Microsoft.MixedReality.Toolkit.UI;

変数を定義して

private ButtonConfigHelper _buttonMRTK;

Start()やAwake()でコンポーネントを取得

_buttonMRTK = GetComponent<ButtonConfigHelper>();

delegateでボタンを押したときの関数を割り当てるには

ButtonConfigHelperクラスにある[OnClick.AddListener(関数名)]を使う
UnityEngine.UIのボタンとの違いは、1文字目が大文字になってる事
(UnityEngine.UIのボタンはonClick.AddListener(関数名))でdelegate出来る

_buttonMRTK.OnClick.AddListener(OnClick);

アイコン直下のテキストを動的に変更するには

grafik.png
ButtonConfigHelperのMainLabelTextに変更を加える

_buttonMRTK.MainLabelText = "String"

アイコンを動的に変更するには

マイクのON/OFF状態を示す_isActive変数
パネルにマイクの入力ON/OFFを切り替えるボタンを設置してる。
ON/OFFになってるのかわかりやすくするために、クリックしたらアイコンが切り替わるようにする
grafik.png grafik.png

まずアイコンを表示するために、Button Config Helperコンポーネントを確認する
すると、Icon Setにアイコンのリストがまとまったもの(IconSet)が紐づけられている

grafik.png
(IconSet)をインスペクターで確認すると、4種類のアイコン型があるのが確認できる
grafik.png
Quad, Sprite, Fontそして Charの型が存在する

今回自分の画像はQuadなので、SetQuadIconByName関数を用いてアイコン画像を指定します
Sprite, Font, CharならSetQuadIconByNameのQuadをそれぞれの型に変えます。
SetQuadIconByName関数にはアイコン名前を入力します

以下のコードでは_isActive変数にマイクがON/OFFになってるかを判定し、ONなら
grafik.png
OFFなら赤いナナメ線の入ったものをアイコンとして表示します

_buttonMRTK.SetQuadIconByName(_isActive ? "EnableMicrophone" : "DisableMicrophone");
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?