ÄÚµå·Î ugui button ¸¸µé±â

ÄÚµå·Î ugui ¹öÆ°À» ¸¸µé¾î º»´Ù.
ugui buttonÀ» ¸¸µé·Á¸é Canvas, Button, Text, EventSystem 4°³ÀÇ °ÔÀÓ¿ÀºêÁ§Æ®°¡ ÇÊ¿äÇÏ´Ù.

uGuiTest.cs Äڵ尡 ´õ °£°áÇϹǷΠ¿¹Á¦ÄÚµå·Î ¼³¸íÇÑ´Ù.

EventSystem °ÔÀÓ ¿ÀºêÁ§Æ® »ý¼º
if (FindObjectOfType<EventSystem>() == null)
{
    var es = new GameObject("EventSystem", typeof(EventSystem));
    es.AddComponent<StandaloneInputModule>();
}

Canvas °ÔÀÓ ¿ÀºêÁ§Æ® »ý¼º
var canvasObject = new GameObject("Canvas");
var canvas = canvasObject.AddComponent<Canvas>();
canvasObject.AddComponent<GraphicRaycaster>();
canvas.renderMode = RenderMode.ScreenSpaceOverlay;

Button °ÔÀÓ ¿ÀºêÁ§Æ® »ý¼º
var buttonObject = new GameObject("Button");
var image = buttonObject.AddComponent<Image>();
image.transform.SetParent(canvas.transform);
image.rectTransform.sizeDelta = new Vector2(180, 50);
image.rectTransform.anchoredPosition = Vector3.zero;
image.color = new Color(1f, .3f, .3f, .5f);

var button = buttonObject.AddComponent<Button>();
button.targetGraphic = image;
button.onClick.AddListener(() => Debug.Log(Time.time));

Text °ÔÀÓ ¿ÀºêÁ§Æ® »ý
var textObject = new GameObject("Text");
textObject.transform.parent = buttonObject.transform;
var text = textObject.AddComponent<Text>();
text.rectTransform.sizeDelta = Vector2.zero;
text.rectTransform.anchorMin = Vector2.zero;
text.rectTransform.anchorMax = Vector2.one;
text.rectTransform.anchoredPosition = new Vector2(.5f, .5f);
text.text = "Button Test!";
text.font = Resources.FindObjectsOfTypeAll<Font>()[0];
text.fontSize = 20;
text.color = Color.yellow;
text.alignment = TextAnchor.MiddleCenter;

uGuiTest.cs ½ÇÇà °á°ú
¹öÆ°À» ´©¸£¸é À¯´ÏƼ ÄÜ¼Ö Ã¢¿¡ ½Ã°£À» Ãâ·ÂÇÑ´Ù.





UICreator.cs ½ÇÇà °á°ú
"Yes" ¹öÆ°À» ´©¸£¸é À¯´ÏƼ ÄܼÖâ¿¡ "OnExit" ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù.
"No" ¹öÆ°À» ´©¸£¸é À¯´ÏƼ ÄܼÖâ¿¡ "OnCancel" ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù.



¼Ò½º)
uGuiTest.cs
UICreator.cs

ÂüÁ¶)
uGuiTest.cs => http://qiita.com/dsgarage/items/749b79f481c5a24b6a9a
UICreator.cs => http://chikkooos.blogspot.kr/2015/03/new-ui-implementation-using-c-scripts.html