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