uGUIオブジェクトの作り方
以下の追加が必要
using UnityEngine.UI;
UIを作るとCanvasができる
Screen Space Overlay : RenderMode
最前面に描画される。
カメラなしでも表示できる。
自動的にスクリーンサイズに合うように変更される
Buttonの使い方
buttonの子にtextがあるので見出しはここで変えられる
使い方は
①InspectorのOn Click()の部分に、自分自身のObjectをドラッグして登録
②AddComponentでスクリプトを追加
③No Functionの部分をクリックすると②のスクリプトが選べるようになる
そのスクリプト内の特定関数をOnClickで呼ばれるように登録する
(関数はpublicじゃないと選べない)
OnClickのリスナーは、引数を設定すると、buttonのInspectorにフィールドができるので、
どのボタンが押されたかをスクリプト側で区別できる
(複数のボタンで一つのスクリプトを共有し、押されたボタンごとの処理をできる)
登録する関数の例
public void ClickAns(int index)
{
Debug.Log("Button"+index+" is clicked");
}
Textの使い方
任意のClassから、uGUI上のTextオブジェクト(名前がText1)に、
GameObject.Find ("Text1").GetComponent<Text>().text = "ほにゃらら";
とアクセスできる
fontサイズを大きくした場合、表示範囲も大きくしないと表示されない
TextはUIのEffectで、縁取りや影のComponentを追加できる
Textの表示・非表示
GameObject.Find("GoodText").GetComponent<CanvasRenderer>().SetAlpha(0);
setActiveを使うとfindできなくなるし、CanvasRendererなのでrenderer.enabled=falseは使えない。
SetAlphaは透明度を設定する関数で、0で透明にすることで非表示にしている。
(0から1の範囲で指定する)
他にもっと良い方法があるかもしれない。
パネルの表示・非表示
GameObject.Find("Canvas").transform.FindChild("MenuPanel").gameObject.SetActive(true);
GameObject.Find("Canvas").transform.FindChild("MenuPanel").gameObject.SetActive(false);
最終更新:2015年05月10日 00:15