Deca-pod.jp

Anything

UnityのGUIをC#で扱うメモ(初心者向け)

UnityのGUIC#で扱うメモ(初心者向け)

なんとなくRPGっぽい物を作っていてUnity4.6から実装されたというGUIシステム通称uGUIを使用してみた。

まずは基本操作の確認
f:id:vaikong:20150127021658p:plain
図を参考にPanel,Button,InputField,Textをそれぞれ適当に配置。
配置はInspectorのTransformのPositionに数値を入力する。

なんとなく配置ができたらC#スクリプトを準備して今回はPanelへアタッチをする。
中身は簡単。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class janjan : MonoBehaviour {

        public Sprite sprite;
        public Image image;

 	public void onClick (){

                image.sprite = sprite;
        }


} 

クラス変数をPubricで宣言するとInspector上でとのSpriteなのかImageなのかを指定することが出来る。

或いは

public void onClick (){
		image = gameObject.GetCompornent <Image> ();
                image.sprite = sprite;
        }

と、明示的にすればPublicにしなくてもok

ここまで準備が出来たらスクリプトをアタッチしたPanelを選択するとInspector上にimageとspriteの欄が追加されているので、imageにはPanel、spriteには背景にしたい画像を指定する。
f:id:vaikong:20150127021725p:plain
ビルドしてボタンを押せば背景が変わります。


続いてInputFiledとTextについて

先ほどのスクリプトを変更する。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class janjan : MonoBehaviour {

        public Sprite sprite;
        public Image image;
        public Text text;
        public InputField inputField;
    // Use this for initialization
    void Start () {
                

    
    }
    
    // Update is called once per frame
    void Update () {
    
    }
        public void OnClick (){

                image.sprite = sprite;
                text.text = inputField.text;
        }


}

変更箇所はText,Inputfieldをクラス変数へ追加
メソッドOnClickへtext.text = inputField.text;を追記

すると、panelのInspectorへTextとInputFieldが表示されるのでどのInputFieldからどのTextへ表示したいのかここで指定してあげる。

ビルド後、InputFieldへ適当に文字を入力してボタンを押してTextが変更されるか確認。