uGUI


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);

タグ:

unity
最終更新:2015年05月10日 00:15