09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】uGUIのToggleっちゅーやつを触ってみたんだ。あ、これ使い勝手いいんじゃね?って思うじゃなぁ~い? 

今日はくっそ暑いですねー
熱射病に気を付けてくださいまし。
えぇ、私はクーラー効いた部屋から出ません。
坂内です。

今まで使ったことのなかった、uGUIのToggleについて触れてみたいと思います。

Toggleってどんなことできんの?
動画:20150713日ブログ用
こんなことができそうです。

上の動画のオブジェクトはこんな感じ。



RadioSet ← toggleGroup付与
 Toggle ← toggle付与
 Toggle1 ← toggle付与

ScrollSet
 base ← toggleGroup付与
  Image ← toggle付与
  Image1 ← toggle付与
  ・・・ ← toggle付与
  
1つのtoggleGroupに紐づけられたtoggleがラジオボタンみたいに動く感じですかね。
簡単にtoggleについての説明終わり!

で、次はtoggleをタップされた時の処理について。

実際にToggleを押された時の処理は、今回ScrollSetみたいに、はじめからtoggleが付与されたオブジェクトを置いた場合は、それぞれのtoggleについているOnValueChangeに処理を付与してあげればいい。



この「Image」のオブジェクトを自動的に生成(Prefabにして、Instantiateで作った場合)した場合に、処理を付与するのに苦労したのでメモ!


void Start(){
  for (int i = 0; i < 作る分; i++ ) {
    GameObject itemSet = Instantiate(toggleがついているオブジェクトのプレハブ) as GameObject;
    itemSet.GetComponent().group = toggleGroup;
    itemSet.GetComponent().onValueChanged.AddListener(OnSelectItem);
  }
}
private void OnSelectItem(bool flg){
  // 選択されてるオブジェクトを指定
  Toggle activeItem = tgroup.ActiveToggles().FirstOrDefault();
}

って感じでできますた。

何番目が選択されたかは、toggleアイテムのnameに番号入れとくとか、toggleアイテムのオブジェクトに番号を所有するコンポーネントつけておくとかでできそうっすよね。
例えばですが。

void Start(){
  for (int i = 0; i < 作る分; i++ ) {
    GameObject itemSet = Instantiate(toggleのプレハブ) as GameObject;
    itemSet.GetComponent().no = i;
    itemSet.GetComponent().group = toggleGroup;
    itemSet.GetComponent().onValueChanged.AddListener(OnSelectItem);
  }
}
private void OnSelectItem(bool flg){
  // 選択されてるオブジェクトを指定
  Toggle activeItem = tgroup.ActiveToggles().FirstOrDefault();
}

とか。

これでラジオボタン的なモノや、リストで選択したやつをターゲットにした処理とか簡単にできそうっすね。
あ、上の動画だとリストで選択されたやつが水色になってましたよね。
ここの設定を簡単に説明。

Imageオブジェクトの子供にselectedFilterっていう水色のImageを1個つけて、こいつをONOFFしてる感じ。
ONOFFさせるのはtoggleにあるGraphicってやつにこの水色のImageをつけるだけ。



なんかtoggleリストの名前が「Image」のままだからよくわからなくなってるよね。
反省。
反省するけど直さない!

って感じでできました!

他になんかいい方法あったらおせーてちょーだいね!

あでゅ~ノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/221-4416baee
この記事にトラックバックする(FC2ブログユーザー)