Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

Unity uGUIs -ウグイス- 1人でがんばりますカレンダー Advent Calendar 2015

この記事はUnity uGUIs -ウグイス- 1人でがんばりますカレンダー Advent Calendar 2015の3日目の記事です。

カレンダーの購読をしてくださる方がちょいちょい出てきてくれていて本当にありがたい限りです。
すでにネタ切れが見えていて辛い部分しかないんですが、書ける限りはがんばりますのでよろしくお願いします。

それでは、本編へ

基本機能というかおさらい的なお話

2日目の記事及び、その中にあるサンプルプロジェクトをご覧になった方にはおわかり頂けるのかなと思うのですが、
例えばボタンを利用するためには"対象のボタンオブジェクトの名前"と"uGUIs.UI.Buttonクラスの継承"の二点をクリアすれば利用できます。
単純に押さえておいて欲しい点はそれだけですね。

あ、後この機能ですがボタンだけに限らずUIコンポーネント色々準備をしています!ToggleだったりSliderだったり!
他のUIコンポーネントであってもあまり書き方は変わらずです。

とりあえずボタンではこのような感じになります↓

SampleButton.cs
public class SampleButton : uGUIs.UI.Button<SampleButton> {
  public void OnClick(){
    Debug.Log( "ボタンがクリックされたよ!" );
  }
}

上記ようなコードを書いて、空っぽでも既存のでも良いですがGameObjectへアタッチ。
後はCanvas内に"SampleButton"があれば自動的に紐付けされます。
その結果、細かい事に意識をすることなくボタンというUIを利用することが出来るようになります。

という部分までは前回お話しした内容と同じ部分です。

Attributeによる対象の変更

さて、みなさん心の中で思うことがあると思います。

対象のボタンの名前と同じクラス名じゃないとダメなのか?
コールバックはOnClickじゃないとダメなのか?

もちろん変更できるような仕組みにしてあります。
その際には対象のクラス及び関数に対して必要なAttributeを設定することで変更できるようになっています。
例えばこんな感じです

SampleButton2.cs

[uGUIs.Attribute.TargetBind( "紐付けたいボタンの名前" )]
public class SampleButton2 : uGUIs.UI.Button<SampleButton2> {

  [uGUIs.Attribute.CallbackBind( "OnClick" )]
  public void DoSomething(){
    Debug.Log( "何かする" );
  }
}

TargetBindとCallbackBindというAttributeを用いることで上記のように任意の設定を行うことが出来ます。
まあ、自分で付けておいてこの機能ってさほど重要ではないだろうなという感じです。

終わりに

今回もかるーくかるーくな説明で終わってしまいましたが、実装とかどうやってるのみたいな話は後日出来たらなーという感じで。
まだまだAuto Bindingも足りない機能というのがあるのでそれも追加していかないとですね・・・。

明日はコンポーネント装飾関連の説明記事を書いていきます!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?