UnityのGUIをC#で扱うメモ(初心者向け)
なんとなくRPGっぽい物を作っていてUnity4.6から実装されたというGUIシステム通称uGUIを使用してみた。
まずは基本操作の確認
図を参考に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には背景にしたい画像を指定する。
ビルドしてボタンを押せば背景が変わります。
続いて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が変更されるか確認。