차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
unity3d:gui-basics [2015/05/22 08:34] – 링크가 옮기기 작업 때문에 적응했습니다 V_L | unity:gui-basics [2022/04/22 17:09] (현재) – [GUI Basics] V_L | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
======GUI Basics====== | ======GUI Basics====== | ||
- | 이 섹션은 '' | + | 이 섹션은 '' |
+ | // 성능상의 이유로 Unity는 게임 내 런타임 UI에 IMGUI를 권장하지 않습니다. // | ||
=====Making Controls with UnityGUI===== | =====Making Controls with UnityGUI===== | ||
- | UnityGUI 컨트롤은 // | + | UnityGUI 컨트롤은 // |
- | GUI 컨트롤은 그들 스스로가 구조상 매우 간단합니다. 이 구조는 다음의 예에서 나타납니다. | + | GUI 컨트롤은 그들 스스로가 구조상 매우 간단함. 이 구조는 다음의 예에서 나타난다. |
+ | |||
+ | (*) Application.loadlevel 은 삭제됨. | ||
+ | SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); | ||
+ | [[SceneManager]] 사용할 것. | ||
<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# | ||
줄 36: | 줄 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# | ||
줄 86: | 줄 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# | ||
줄 141: | 줄 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, |
- | } | + | } |
} | } | ||
줄 153: | 줄 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; | ||
줄 175: | 줄 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; | ||
줄 201: | 줄 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; | ||
줄 231: | 줄 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" |
- | } | + | } |
- | } | + | } |
} | } | ||
줄 249: | 줄 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; | ||
줄 269: | 줄 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# | ||
줄 299: | 줄 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# | ||
줄 332: | 줄 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, |
- | } | + | } |
} | } | ||
줄 344: | 줄 251: | ||
방대한 양의 예제 목록을 위한 [[ScriptRef: | 방대한 양의 예제 목록을 위한 [[ScriptRef: | ||
- | {{tag> | + | * 출처: [[https://docs.unity3d.com/kr/ |
- | * 출처: [[http://unitykoreawiki.com/index.php? | + |