2011. 6. 30. 13:18ㆍ게임 개발/OpenGL
GUI 에 관련하여 동영상을 보면서 숙지 하였습니다.
본 자료는 용량이 좀 크네용;;; 어디서 얻은 자료인가 하면...
http://www.unity-tutorials.com/
이곳입니다.... 유료라서 모든 강좌를 습득하기는 어렵지만.. 간단한 개인정보를 입력하면,
무료강좌 2개를 제공해 주네요..
2년이 지난 시점에서 한번 더 보니까.. 그리 중요한 내용을 정리해 놓은 것이 아니라는 것을 알게 되었습니다.
1. 스크립트 기초
기본적으로 카메라 화면 이동을 스크립트로 구현하여, 키보드를 이용해 움직이는 예제 입니다.
var moveSpeed : float = 10;
function Update(){
if(Input.GetKey(KeyCode.UpArrow)){
transform.Translate(Vector3(0,moveSpeed * Time.deltaTime, 0));
}else {
if(Input.GetKey(KeyCode.DownArrow)){
transform.Translate(Vector3(0, -moveSpeed * Time.deltaTime, 0));
}
}
if(Input.GetKey(KeyCode.RightArrow)){
transform.Translate(Vector3(moveSpeed*Time.deltaTime,0,0));
}else{
if(Input.GetKey(KeyCode.LeftArrow)){
transform.Translate(Vector3(-moveSpeed * Time.deltaTime, 0 ,0));
}
}
}
function Start()
{
while(true)
{
Debug.Log(transform.position.ToString());
yield;
}
}
2. GUI 관련
var mainMenu : boolean = false;
var options : boolean = false;
var backTexture : Texture;
var menuStyle : GUIStyle;
var silderTextStyle : GUIStyle;
var soundVolume : float = 0;
var musicVolume : float = 0;
var voiceVolume : float = 0;
function Start(){
soundVolume = PlayerPrefs.GetFloat("sound", 0);
musicVolume = PlayerPrefs.GetFloat("music", 0);
voiceVolume = PlayerPrefs.GetFloat("voice", 0);
}
function OnGUI()
{
if(mainMenu || options){
GUI.DrawTexture(Rect(0,0,Screen.width,Screen.height), backTexture);
if(mainMenu){
GUI.Button(Rect(Screen.width *.4 , Screen.height * .05 , Screen.width * .2 , Screen.height * .1), "Main Menu" , menuStyle);
if(GUI.Button(Rect(Screen.width * .4 , Screen.height * .4 , Screen.width *.2 , Screen.height * .1),"Play Game")){
mainMenu = false;
// gameManager.Play();
}
if(GUI.Button(Rect(Screen.width * .4 , Screen.height * .5 , Screen.width *.2 , Screen.height * .1),"Options")){
mainMenu = false;
options = true;
}
}else if(options){
GUI.Button(Rect(Screen.width *.4 , Screen.height * .05 , Screen.width * .2 , Screen.height * .1), "Options" , menuStyle);
if(GUI.Button(Rect(Screen.width * .4 , Screen.height * .8 , Screen.width *.2 , Screen.height * .1),"Back")){
mainMenu = true;
options = false;
PlayerPrefs.SetFloat("sound", soundVolume);
PlayerPrefs.SetFloat("music", musicVolume);
PlayerPrefs.SetFloat("voice", voiceVolume);
}
GUI.Window(0,Rect(Screen.width * .3 , Screen.height * .3 , Screen.width * .4 , Screen.height * .4), OptionsWindow, "");
}
}
}
function OptionsWindow(WindowID : int)
{
soundVolume = GUI.HorizontalSlider(Rect(Screen.width * .05 , Screen.height * .05 , Screen.width * .3 , Screen.height * .05 ) , soundVolume, 0 ,1);
GUI.Label(Rect(Screen.width * .05 , Screen.height * .015 , Screen.width * .3 , Screen.height * .04 ) , "Sound Volume" ,silderTextStyle);
musicVolume = GUI.HorizontalSlider(Rect(Screen.width * .05 , Screen.height * .15 , Screen.width * .3 , Screen.height * .05 ) , musicVolume, 0 ,1);
GUI.Label(Rect(Screen.width * .05 , Screen.height * .115 , Screen.width * .3 , Screen.height * .04 ) , "Music Volume" ,silderTextStyle);
voiceVolume = GUI.HorizontalSlider(Rect(Screen.width * .05 , Screen.height * .25 , Screen.width * .3 , Screen.height * .05 ) , voiceVolume, 0 ,1);
GUI.Label(Rect(Screen.width * .05 , Screen.height * .215 , Screen.width * .3 , Screen.height * .04 ) , "Voice Volume" ,silderTextStyle);
}
수정을 해 놓고 있지만, 상용 GUI 제품들을 씁니다.
저같은 경우도 NGUI를 사용했습니다.
EZ GUI : http://www.anbsoft.com/middleware/ezgui/
QUAD UI : http://blog.equals-equals.com/quadui/
(Quad UI)베타 버전 다운로드시 해당 패키지는 영문폴더에 저장후에 Import 해야 한다고 하는데.. 이건 2년전 이야기고, 그냥..
NGUI 를 쓰세요.. 아직까진 대세인듯.
'게임 개발 > OpenGL' 카테고리의 다른 글
Unity3D,X-Code... 이젠.. 포팅이당. (0) | 2012.03.28 |
---|---|
MonoBehaviour 오버라이딩 가능 함수 레퍼런스 총 정리..랄까?? (25) | 2011.08.23 |
Unity3D iOS Porting Tips (0) | 2011.08.23 |
UnityKorea 강좌 중에 몇가지 정리 (1) | 2011.07.01 |
Sound & Object Collection (0) | 2011.06.30 |
Newbie guide to Unity Javascript (초보자를 위한 자바스크립트 가이드) (0) | 2011.06.29 |
Cinema4D Animation & Interaction (0) | 2011.06.28 |
Unity3DStudent 를 이용한 공부 2 (0) | 2011.06.27 |
Unity3DStudent 를 이용한 공부 (0) | 2011.06.27 |
Unity 3D 개요 (1) | 2011.06.27 |