uGUI

「uGUI」の編集履歴(バックアップ)一覧に戻る

uGUI - (2015/05/10 (日) 00:15:48) のソース

#contents()

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