차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| unity:gui-basics [2018/02/22 03:04] – external edit 127.0.0.1 | unity:gui-basics [2022/04/22 08:09] (현재) – [GUI Basics] V_L | ||
|---|---|---|---|
| 줄 3: | 줄 3: | ||
| ======GUI Basics====== | ======GUI Basics====== | ||
| - | 이 섹션은 '' | + | 이 섹션은 '' |
| + | // 성능상의 이유로 Unity는 게임 내 런타임 UI에 IMGUI를 권장하지 않습니다. // | ||
| =====Making Controls with UnityGUI===== | =====Making Controls with UnityGUI===== | ||
| - | UnityGUI 컨트롤은 // | + | UnityGUI 컨트롤은 // |
| - | GUI 컨트롤은 그들 스스로가 구조상 매우 간단합니다. 이 구조는 다음의 예에서 나타납니다. | + | GUI 컨트롤은 그들 스스로가 구조상 매우 간단함. 이 구조는 다음의 예에서 나타난다. |
| (*) Application.loadlevel 은 삭제됨. | (*) Application.loadlevel 은 삭제됨. | ||
| 줄 17: | 줄 18: | ||
| <file csharp> | <file csharp> | ||
| /* Example level loader */ | /* Example level loader */ | ||
| - | |||
| - | // JavaScript | ||
| - | function OnGUI () { | ||
| - | // Make a background box | ||
| - | GUI.Box (Rect (10, | ||
| - | |||
| - | // Make the first button. If it is pressed, Application.Loadlevel (1) will be executed | ||
| - | if (GUI.Button (Rect (20, | ||
| - | Application.LoadLevel (1); | ||
| - | } | ||
| - | |||
| - | // Make the second button. | ||
| - | if (GUI.Button (Rect (20, | ||
| - | Application.LoadLevel (2); | ||
| - | } | ||
| - | } | ||
| - | |||
| //C# | //C# | ||
| 줄 41: | 줄 25: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | void OnGUI () { | + | |
| - | // Make a background box | + | // Make a background box |
| - | GUI.Box(new Rect(10, | + | GUI.Box(new Rect(10, |
| - | // Make the first button. If it is pressed, Application.Loadlevel (1) will be executed | + | |
| - | if(GUI.Button(new Rect(20, | + | if(GUI.Button(new Rect(20, |
| - | Application.LoadLevel(1); | + | Application.LoadLevel(1); |
| - | } | + | } |
| - | // Make the second button. | + | |
| - | if(GUI.Button(new Rect(20, | + | if(GUI.Button(new Rect(20, |
| - | Application.LoadLevel(2); | + | Application.LoadLevel(2); |
| - | } | + | } |
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| - | 이 예제는 완벽하고 기능 수준의 로더입니다. 사용자가 이 스크립트를 복사/ | + | 이 예제는 완벽하고 기능 수준의 로더임. 사용자가 이 스크립트를 복사/ |
| {{: | {{: | ||
| // 예제 코드에 의해 생성되는 | // 예제 코드에 의해 생성되는 | ||
| - | 예제 코드의 디테일을 살펴보겠습니다: | + | 예제 코드의 디테일을 살펴보겠다: |
| - | 첫 번째 GUI 라인, //GUI.Box (Rect (10, | + | 첫 번째 GUI 라인, //GUI.Box (Rect (10, |
| - | 다음의 GUI라인은 | + | 다음의 GUI라인은 |
| - | // | + | // |
| <file csharp> | <file csharp> | ||
| /* Flashing button example */ | /* Flashing button example */ | ||
| - | |||
| - | |||
| - | // JavaScript | ||
| - | function OnGUI () { | ||
| - | if (Time.time % 2 < 1) { | ||
| - | if (GUI.Button (Rect (10, | ||
| - | print ("You clicked me!"); | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | |||
| // C# | // C# | ||
| 줄 91: | 줄 64: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | void OnGUI () { | + | |
| - | if (Time.time % 2 < 1) { | + | if (Time.time % 2 < 1) { |
| - | if (GUI.Button (new Rect (10, | + | if (GUI.Button (new Rect (10, |
| - | print ("You clicked me!" | + | print ("You clicked me!" |
| - | } | + | } |
| - | } | + | } |
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| - | // | + | // |
| - | + | ||
| - | 사용자가 볼 수 있는 것처럼 사용자는 GUI 컨트롤이 보여지고 기능할 때를 제어하기 위해서 어떠한 원하는 로직도 사용할 수 있습니다. | + | |
| + | 사용자가 볼 수 있는 것처럼 사용자는 GUI 컨트롤이 보여지고 기능할 때를 제어하기 위해서 어떠한 원하는 로직도 사용할 수 있다. | ||
| =====Anatomy of a Control===== | =====Anatomy of a Control===== | ||
| - | GUI 컨트롤을 선언할 때 필요되어지는 정보의 3가지 키들이 있습니다: | + | GUI 컨트롤을 선언할 때 필요되어지는 정보의 3가지 키들이 있다: |
| '' | '' | ||
| - | 이 구조는 두 개의 아규먼트들과 함께 있는 함수라는 것을 명심하십시오. 지금 우리는 이런 구조의 디테일을 살펴볼 것입니다. | + | 이 구조는 두 개의 아규먼트들과 함께 있는 함수라는 것을 명심하십시오. 지금 우리는 이런 구조의 디테일을 살펴볼 것임. |
| ====Type==== | ====Type==== | ||
| - | '' | + | '' |
| ====Position==== | ====Position==== | ||
| - | '' | + | '' |
| - | 좌표 시스템은 왼쪽 가장 위에서부터 시작합니다. //Rect(10, 20, 300, 100)// | + | 좌표 시스템은 왼쪽 가장 위에서부터 시작함. //Rect(10, 20, 300, 100)// |
| - | 사용자는 플레이어에서 사용가능한 스크린 스페이스의 전체 넓이를 얻기위해 // | + | 사용자는 플레이어에서 사용가능한 스크린 스페이스의 전체 넓이를 얻기위해 // |
| <file csharp> | <file csharp> | ||
| /* Screen.width & Screen.height example */ | /* Screen.width & Screen.height example */ | ||
| - | |||
| - | |||
| - | // JavaScript | ||
| - | function OnGUI () { | ||
| - | GUI.Box (Rect (0, | ||
| - | GUI.Box (Rect (Screen.width - 100, | ||
| - | GUI.Box (Rect (0, | ||
| - | GUI.Box (Rect (Screen.width - 100, | ||
| - | } | ||
| - | |||
| // C# | // C# | ||
| 줄 146: | 줄 107: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | void OnGUI(){ | + | |
| - | GUI.Box (new Rect (0, | + | GUI.Box (new Rect (0, |
| - | GUI.Box (new Rect (Screen.width - 100, | + | GUI.Box (new Rect (Screen.width - 100, |
| - | GUI.Box (new Rect (0, | + | GUI.Box (new Rect (0, |
| - | GUI.Box (new Rect (Screen.width - 100, | + | GUI.Box (new Rect (Screen.width - 100, |
| - | } | + | } |
| } | } | ||
| 줄 158: | 줄 119: | ||
| {{: | {{: | ||
| // 위의 예에서 위치된 | // 위의 예에서 위치된 | ||
| - | |||
| ====Content==== | ====Content==== | ||
| - | GUI 컨트롤을 위한 두 번째 아규먼트는 컨트롤과 함께 보여지는 실제 내용입니다. 대부분의 경우에 사용자는 사용자의 컨트롤 위에서 어떠한 텍스트나 이미지를 보여주기를 원할 것입니다. 텍스트를 보여주기 위해서 이것과 같은 컨텐트 아규먼트로서 하나의 스트링을 패스합니다: | + | GUI 컨트롤을 위한 두 번째 아규먼트는 컨트롤과 함께 보여지는 실제 내용임. 대부분의 경우에 사용자는 사용자의 컨트롤 위에서 어떠한 텍스트나 이미지를 보여주기를 원할 것임. 텍스트를 보여주기 위해서 이것과 같은 컨텐트 아규먼트로서 하나의 스트링을 패스함: |
| <file csharp> | <file csharp> | ||
| /* String Content example */ | /* String Content example */ | ||
| - | + | ||
| - | + | ||
| - | // JavaScript | + | |
| - | function OnGUI () { | + | |
| - | GUI.Label (Rect (0, | + | |
| - | } | + | |
| - | + | ||
| // C# | // C# | ||
| using UnityEngine; | using UnityEngine; | ||
| 줄 180: | 줄 133: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | void OnGUI () { | + | |
| - | GUI.Label (new Rect (0, | + | GUI.Label (new Rect (0, |
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| - | 이미지를 보여주기 위해서 '' | + | 이미지를 보여주기 위해서 '' |
| <file csharp> | <file csharp> | ||
| /* Texture2D Content example */ | /* Texture2D Content example */ | ||
| - | + | ||
| - | // JavaScript | + | |
| - | var controlTexture : Texture2D; | + | |
| - | + | ||
| - | function OnGUI () { | + | |
| - | GUI.Label (Rect (0, | + | |
| - | } | + | |
| - | + | ||
| // C# | // C# | ||
| public Texture2D controlTexture; | public Texture2D controlTexture; | ||
| 줄 206: | 줄 151: | ||
| void OnGUI () { | void OnGUI () { | ||
| - | GUI.Label (new Rect (0, | + | |
| } | } | ||
| </ | </ | ||
| - | 이것은 실제 시나리오에 가까운 예제입니다: | + | 이것은 실제 시나리오에 가까운 예제임: |
| <file csharp> | <file csharp> | ||
| /* Button Content examples */ | /* Button Content examples */ | ||
| - | + | ||
| - | // JavaScript | + | |
| - | var icon : Texture2D; | + | |
| - | + | ||
| - | function OnGUI () { | + | |
| - | if (GUI.Button (Rect (10,10, 100, 50), icon)) { | + | |
| - | print ("you clicked the icon" | + | |
| - | } | + | |
| - | + | ||
| - | if (GUI.Button (Rect (10,70, 100, 20), "This is text" | + | |
| - | print ("you clicked the text button" | + | |
| - | } | + | |
| - | } | + | |
| - | + | ||
| // C# | // C# | ||
| using UnityEngine; | using UnityEngine; | ||
| 줄 236: | 줄 167: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | public Texture2D icon; | + | |
| - | void OnGUI () { | + | |
| - | if (GUI.Button (new Rect (10,10, 100, 50), icon)) { | + | if (GUI.Button (new Rect (10,10, 100, 50), icon)) { |
| - | print ("you clicked the icon" | + | print ("you clicked the icon" |
| - | } | + | } |
| - | if (GUI.Button (new Rect (10,70, 100, 20), "This is text" | + | |
| - | print ("you clicked the text button" | + | print ("you clicked the text button" |
| - | } | + | } |
| - | } | + | } |
| } | } | ||
| 줄 254: | 줄 185: | ||
| // 위의 예제에서 생성된 Buttons // | // 위의 예제에서 생성된 Buttons // | ||
| - | GUI 컨트롤에서 이미지와 텍스트를 사용자가 보여줄 수 있도록 허락하는 세 번째 옵션이 있습니다. 사용자는 컨텐트 아규먼트로서 '' | + | GUI 컨트롤에서 이미지와 텍스트를 사용자가 보여줄 수 있도록 허락하는 세 번째 옵션이 있다. 사용자는 컨텐트 아규먼트로서 '' |
| <file csharp> | <file csharp> | ||
| /* Using GUIContent to display an image and a string */ | /* Using GUIContent to display an image and a string */ | ||
| - | + | ||
| - | // JavaScript | + | |
| - | var icon : Texture2D; | + | |
| - | + | ||
| - | function OnGUI () { | + | |
| - | GUI.Box (Rect (10, | + | |
| - | } | + | |
| - | + | ||
| // C# | // C# | ||
| using UnityEngine; | using UnityEngine; | ||
| 줄 274: | 줄 197: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | public Texture2D icon; | + | |
| - | void OnGUI () { | + | |
| - | GUI.Box (new Rect (10, | + | GUI.Box (new Rect (10, |
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| - | 사용자는 또한GUIContent에서 '' | + | 사용자는 또한GUIContent에서 '' |
| <file csharp> | <file csharp> | ||
| /* Using GUIContent to display a tooltip */ | /* Using GUIContent to display a tooltip */ | ||
| - | |||
| - | |||
| - | // JavaScript | ||
| - | function OnGUI () { | ||
| - | // This line feeds "This is the tooltip" | ||
| - | GUI.Button (Rect (10, | ||
| - | // This line reads and displays the contents of GUI.tooltip | ||
| - | GUI.Label (Rect (10, | ||
| - | } | ||
| - | |||
| // C# | // C# | ||
| 줄 304: | 줄 217: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | void OnGUI () { | + | |
| - | // This line feeds "This is the tooltip" | + | // This line feeds "This is the tooltip" |
| - | GUI.Button (new Rect (10, | + | GUI.Button (new Rect (10, |
| - | // This line reads and displays the contents of GUI.tooltip | + | |
| - | GUI.Label (new Rect (10, | + | GUI.Label (new Rect (10, |
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| - | + | 사용자가 대담하다면 사용자는 하나의 스트링, 아이콘 그리고tooltip을 보여주기 위해서GUIContent 를 사용할 수 있다! | |
| - | 사용자가 대담하다면 사용자는 하나의 스트링, 아이콘 그리고tooltip을 보여주기 위해서GUIContent 를 사용할 수 있습니다! | + | |
| <file csharp> | <file csharp> | ||
| /* Using GUIContent to display an image, a string, and a tooltip */ | /* Using GUIContent to display an image, a string, and a tooltip */ | ||
| - | |||
| - | |||
| - | // JavaScript | ||
| - | var icon : Texture2D; | ||
| - | |||
| - | function OnGUI () { | ||
| - | GUI.Button (Rect (10, | ||
| - | GUI.Label (Rect (10, | ||
| - | } | ||
| - | |||
| // C# | // C# | ||
| 줄 337: | 줄 239: | ||
| public class GUITest : MonoBehaviour { | public class GUITest : MonoBehaviour { | ||
| - | public Texture2D icon; | + | |
| - | void OnGUI () { | + | |
| - | GUI.Button (new Rect (10, | + | GUI.Button (new Rect (10, |
| - | GUI.Label (new Rect (10, | + | GUI.Label (new Rect (10, |
| - | } | + | } |
| } | } | ||
| 줄 349: | 줄 251: | ||
| 방대한 양의 예제 목록을 위한 [[ScriptRef: | 방대한 양의 예제 목록을 위한 [[ScriptRef: | ||
| - | * 출처: [[http://unitykoreawiki.com/index.php? | + | * 출처: [[https://docs.unity3d.com/kr/ |