์ ๋ํฐ ์ฑ ๋ณด๊ณ ํ์ดํ ์ฐฝ ๋ง๋ค๊ณ ์๋๋ฐ ์ด๊ฒ ์จ์ต ์คํฌ๋ฆฝํธ๋ก ์ง ๊ฑด๋ฐ ๊ธ์ ํฌ๊ธฐ๋ ์๊น ๋ฐ๊พธ๋ ๋ฒ์ ์์๋ ค์ฃผ๋?
๊ธํ๋ฐ ์คํฌ๋ฆฝํธ์์ ๊ธ์ ํฌ๊ธฐ๋ ์๊น ๋ฐ๊พธ๋ ๋ฒ์ข ์๋ ค์ค ์ ๋ฐ ๊ธํจ ใ ใ
//--------------------------
ย // About
ย //--------------------------
ย void DisplayAbout () {
ย ย StringBuilder buf = new StringBuilder();
ย ย
ย ย buf.Append("์ด ๊ฒ์์ ๋์ ์ถํ jpup์์ ๋ฐํํ ");
ย ย buf.Append("'UNITY3D ์
๋ฌธ๊ณผ ์์ฑ'์ ");
ย ย buf.Append("์์ ๋ก ์์ฑํ ๊ฒ์
๋๋ค. ");
ย ย
ย ย buf.Append("์ด ํ๋ก๊ทธ๋จ์ ๋ํ ์ ์๊ถ์ ํ์์๊ฒ ์์ผ๋ ");
ย ย buf.Append("์ด ์ฑ
์ ๋
์๋ค์ ํ์์ ๋์์์ด ");
ย ย buf.Append("์์๋ก ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ๊ณ ๋ฐฐํฌํ ์ ");
ย ย buf.Append("์์ต๋๋ค.");
ย ย
ย ย int w = Screen.width;
ย ย int h = Screen.height;ย ย ย ย ย ย
ย ย
ย ย // Window ํฌ๊ธฐ
ย ย float winW = w * 0.6f;ย ย ย
ย ย float winH = h * 0.7f;ย
ย ย
ย ย Rect rect = new Rect(w * 0.2f, h * 0.2f, winW, winH);
ย ย GUI.Window(0, rect, WindowFunc, "About");
ย ย
ย ย // ๋ฌธ์์ด ์ถ๋ ฅ
ย ย GUI.Label(new Rect(w * 0.25f, h * 0.3f, w * 0.5f, h * 0.6f), buf.ToString());
ย ย
ย ย // Back Button
ย ย if (GUI.Button(new Rect(w / 2 - 70, h * 0.7f, 140, 50), "Back")) {
ย ย ย isAbout = false;ย
ย ย }
ย }
ย
ย //-----------------------------
ย // Help
ย //-----------------------------
ย void DisplayHelp() {
ย ย int w = Screen.width;
ย ย int h = Screen.height;ย ย ย ย ย ย
ย ย float winW = 360;ย ย ย // Window ํฌ๊ธฐ
ย ย float winH = 240;ย
ย
ย ย // Window ๊ทธ๋ฆฌ๊ธฐ
ย ย Rect winRect = new Rect((w - winW) / 2, (h - winH) / 2 + 10, winW, winH);
ย ย GUI.Window(0, winRect, WindowFunc, "Help");
ย ย // ์คํฌ๋กค๋ทฐ์ ํ์ ์์ญ
ย ย Rect scrollRect = new Rect((w - winW) / 2 + 50, (h - winH) / 2 + 40, winW - 60, winH - 40);ย
ย ย // ํ๋ฉด์ ํ์ํ ์์
์์ญ
ย ย Rect scrollArea = new Rect(0 ,0, winW - 80, 410);
ย ย
ย ย scrollPosition = GUI.BeginScrollView(scrollRect, scrollPosition, scrollArea);
ย ย ย GUI.Label(new Rect(0, 0, 120, 30), "Drive Mode");
ย ย ย GUI.Label(new Rect(30, 25, 120, 30), "[โ] : Trun Left");
ย ย ย GUI.Label(new Rect(30, 50, 120, 30), "[โ] : Turn Right");
ย ย ย GUI.Label(new Rect(30, 75, 120, 30), "[Ctrl] : Fire");
ย ย
ย ย ย GUI.Label(new Rect(0, 100, 120, 30), "Combat Mode");
ย ย ย GUI.Label(new Rect(30, 125, 120, 30), "[โ] : Move Left");
ย ย ย GUI.Label(new Rect(30, 150, 120, 30), "[โ] : Move Right");
ย ย ย GUI.Label(new Rect(30, 175, 120, 30), "[Ctrl] : Fire");
ย ย
ย ย ย GUI.Label(new Rect(0, 200, 220, 30), "Bonus Item");
ย ย ย GUI.Label(new Rect(30, 225, 220, 30), "Yellow : Destroy All Asteroids");
ย ย ย GUI.Label(new Rect(30, 250, 220, 30), "Green : Destroy All Mines");
ย ย ย GUI.Label(new Rect(30, 275, 220, 30), "Blue : Undead Ship 10 Seconds");
ย ย ย GUI.Label(new Rect(30, 300, 220, 30), "Yellow : Increase Shield +5");
ย ย ย GUI.Label(new Rect(30, 325, 220, 30), "Cyan : Increase Ship Count +1");
ย ย
ย ย ย // Go Back
ย ย ย if (GUI.Button(new Rect(60, 370, 140, 50), "Go back")) {
ย ย ย ย isHelp = false;
ย ย ย }
ย ย GUI.EndScrollView();ย
ย }
์ฝ๋๊ฐ ๋ค ์์ ํ์ ํ์ํ ๊ฑฐ๊ฐ์ ๋ถ๋ถ๋ง ์ ์๊ณ ์ ๋ฐ๊พธ๋๊ฑด ์์๋๋๋ฐ ํฌ๊ธฐ๋ ์ด๋ป๊ฒ๋ฐ๊ฟ?
ํ ์คํธ ์ธ์คํํฐ์์ ๋ฐ๊ฟ์์๋๋ฐ
๊ทธ๋ ๊ฒ ๋ง๋ค์ด์ง๊ฒ ์๋๊ณ ๊ทธ๋ฅ ์ธ์คํํฐ์ ์คํฌ๋ฆฝํธ ๋ฑ1๊ฐ๋ง์ผ๋ก ์๋๋๊ฒ ๋ง๋ค์ด์ง๊ฑฐ์
์ ๊ฑฐ imgui ์ฝ๋ ์๋๋? ugui ๋ deprecate ํ ๊ฑฐ๋ผ๊ณ ํ๋ ๋ง๋น์ ์์ ์ ๊ฑธ ๋๊ฐ ์ฐ๋;; ์ง์ง ๊ทนํ์ด๋ค ์ด๋์ ์ฑ ์ผ๋ก ๊ณต๋ถํ์ง ๋ง๋ผ๋๊ฑฐ
Labe()์ ๋ฌธ์์ด ๋ฃ์๋ ์คํ์ผ๋ง๋ค์ด์ ๋ฃ์ผ๋
https://answers.unity.com/questions/137143/how-to-set-the-font-size-in-guilabel.html
ใณ ๊ทผ๋ฐ ๋ดค๋๋ฐ ์ด๋ณด๋ผ ์ด๋ป๊ฒ ์ ์ฉ์์ผ์ผ๋ ์ง ๋ชจ๋ฅด๊ฒ ๋ค ์ฝ๋์ ์ฐ๋๊น ๋นจ๊ฐ๋ฐ์ค๋ง ๋จ๋๋ฐ
imgui ๋ ๊ฐ๋ฐํ ๋ ์ ๊น์ ๊น ์ฐ๋ ์ฉ๋์ง ๋๊ฐ ์ํ๋๋๋ก ์๊น๋ฐ๊พธ๊ณ ์ด์๊ฒ ๊พธ๋ฉฐ์ ์ ์ ํํ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ฐ๊ฒ ์๋์ผ ํ ์คํธํ ๋ ๋ฒํผ ํ์ํ๋ฉด ์ ๊น ๋ฌ์๋๋์ฉ๋์ง ํ๋ก๋์ ๋ ๋ฒจ์์๋ imgui ์์ด๋ค ๋ฐ๋ผ์ ๊พธ๋ฐ ํ์๋ ์๋ค๋๊ฑฐ ๊พธ๋ฏธ๋๊ฒ ๋ถ๊ฐ๋ฅํ๊ฑด ์๋๋ฐ ์ ์ด์ ๊ทธ๋ฐ ์ฉ๋๋ก ๋ง๋ค์ด์ง๊ฒ ์๋๋ผ์ ํด์๋๋ dpi ๋ณ ์ค์ผ์ผ๋ง๋ ์กด๋๊ฒ ๋ถํธํ๊ณ ํ๋ฌ
๋๋ ๋น์ฅ ๊ธํด์ ์ค์ํ๋ฐ ์ฐ๋๊ฒ ์๋๊ณ ๋ด์ผ๋ชจ๋ ํ๋ฃจ ์ ๊น ๋ณด์ฌ์ฃผ๋ ์ฉ๋๋ก ์ฐ๋๊ฑฐ๋ผ ์ ๊ฑฐ ํฌ๊ธฐ๋ง ๋ฐ๊พธ๋๊ฑฐ ํ๋๋ฉด ๋ผ์ ๋ฌผ์ด๋ณธ๊ฑฐ
https://docs.unity3d.com/kr/current/Manual/gui-Customization.html
์ ํด๊ฒฐ๋๋ค ใณใณ ์ง์ง ใณ
๋ค์์ TMP์ฐ์ ํ ์คํธ ํฌ๋งท์ ์คํฌ๋ฆฝํธ๋ณด๋จ RTF๋ก ๋ค ๋๋๊น RTF๋ฅผ ์ด์ฉํด - dc App