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 -ウグイス- サンプルプロジェクトアップ編

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

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

一体この記事をどれくらいの人に見て頂けるのか全く分かりませんが頑張って明日以降も書いていこうと思います。

というこで本題へ

サンプルはよはよ!!

焦らないでください!焦らないでください!ちゃんと準備をしましたから。
というわけで、早速リンクを張っておきます。

uGUIs-Tiny-Sample(Github)

え、中身はどうなってるの?

今回はボタンを押すたびに文字の色が変わるサンプルをご用意しました(単純・・・・)
付属しているのは、uGUIsのDLLとSceneファイル、そしてソースコードひとつだけです。

中身を開けた際にuGUIsというGameObject配下のものが今回のサンプルでキモになる部分です。

今回は二つの機能についてご紹介します(というか、二つの機能しか実装されていない)

Auto Binding

一つ目はAuto Bindingです。
今回のサンプルではChangeColorButtonとそれがアタッチされているAutoBindingSampleオブジェクトがそれに当たります。

uGUIsのAutoBindingを利用するには必要なクラスを継承するだけで利用できます。
ちなみに、自動的にHierarchy上からクラス名と同じオブジェクトを紐付けにいきます。
また、(今回はボタンですが)コールバックを受けるためにpublic void OnClick()を定義しています。

ChangeColorButton
using UnityEngine;
using System.Collections;

public class ChangeColorButton : uGUIs.UI.Button<ChangeColorButton> {

  public UnityEngine.UI.Text targetText;

  Color[] colors = new Color[3]{
    new Color( 1, 0, 0, 1 ),
    new Color( 0, 1, 0, 1 ),
    new Color( 0, 0, 1, 1 )
  };

  public void OnClick(){
    targetText.color = colors[ Random.Range( 0, 3 ) ];
  }
}

どうでしょう、これだけでボタンが利用できるようになりました!!!
また、もちろんですがバインディングの対象にするオブジェクト名やコールバックの関数名は設定可能です。それについてはまた今度ということで。

コンポーネント装飾

2つ目はコンポーネント装飾です。
こちらはUIコンポーネントを一律同じ設定を施すための物になります。

uGUIs->ButtonStylerオブジェクトがそれに当たります。

2つのコンポーネントが設定されており、一つはStyleAdaptor、一つは単純にButtonというコンポーネントです。
Button内でRequireComponent(StyleAdaptor)を設定しているので、StyleAdaptorはButtonをアタッチした際にくっついてきます。

今回のサンプルでは、Normal/Highlight/Pressedの部分をそれぞれ設定しています。
試しにCanvas内に新しくボタンを設置してみてください。その際に、自動的に先ほど設定した項目が反映されているのが分かると思います。

イメージ的にはCSSみたいなものだと理解してもらえれば良いと思います。
細かい調整はどうするんだよ、おい!?みたいのもまた今度していきます!

まとめ

今回はサンプルプロジェクトと二つの機能の基本的な部分について説明させて頂きました。
3日目は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?