Unity3d C# toolba 사용해보기

이미지
이번에는 ToolBa입니다. 횡으로 되어있는 버튼들의 리스트라고 보면되겠습니다. 이렇게 늘어져있는 여러 버튼들중.. 하나만 선택할 수 있는 라디오버튼과 비슷한 기능이라 할 수 있죠. 이것도 toggle과 비슷하게 매개변수를 받는데요.. int와 string배열입니다.   앞에것은 만들어진 툴바중 몇번째버튼을 선택하겠다는 의미이고..  두번째의 string형식의 배열은.. 툴바의 갯수와 만들어진 버튼의 이름을 의미합니다. 테스트를 해 보면..    요구조건에 맞게 변수를 선언한 후.. 값을 할당하고..  GUI.Toolba( new Rect ... [int], [string array] );  toolba-button을 선택 하였을 때 값들의 변화를 살펴보기위해 라벨을 하나 찍어보도록 한 줄 넣었습니다.  그리고 Play버튼을 눌러 실행시켜보니..  생성한 배열의 갯수만큼 툴바가 만들어졌네요..    그리고 초기에 설정한 값이 선택되어있고요.. 2번째 버튼을 눌러보니..  원하는대로.. 선택이 잘 되었습니다. 테스트를 좀 더 해보겠습니다. 선언된 배열 사이즈만큼 버튼이 잘 생성되는지 보려고하거든요..   여기에 조건문을 걸어 특정버튼을 눌렀을때 배열을 초기화해 사이즈를 변경해보면 알 수 있을 것 같거든요.. toolbaINT 값에 조건을 걸어 [3번째 버튼]을 클릭하였을때  사이즈에 변화를 주었더니 바로 적용이 됩니다. 처음에 선언하였던 toolba의 가로폭 사이즈는 변함이 없고.. 버튼들이 조금씩 작아져서 맞춰졌네요.. 정말 간단한 기능이지만 이걸 직접 만들어 보니 그리 간단하지는 않습니다.    스크립트언어를 잘 모르면 시간도 많이 걸리겠습니다. ^^; 

Unity3d C# GUI Toggle(토글) 사용하기..

이미지
이번에는 유니티의 C#스크립트를 이용하여 OnGUI()에 toggle을 사용해보겠습니다. toggle버튼이라는게 체크박스와 같은 것이기때문에..  Toggle()메소드 의 매개변수에  bool로 선언된 변수가 추가됩니다.   그리고 추가된 변수값이 잘 작동하는지 GUI라벨에 찍어보려고합니다. toggleBool = GUI.Toggle(...  ); 테스트를 해 보니 위 처럼 선언한 변수에 메소드의 결과값을 할당해야.. 토글버튼이 체크할 수 있도록 활성화가 됩니다. GUI.Toggle(.. ); 이렇만 코딩을 하니까.. bool로 선언된 변수값의 결과에 따라 ReadOnly로 표시만 될 뿐입니다. GUI-Button을 클릭하면 토글에 체크가되거나 해제가 되도록 설정할 수 있겠네요.  if (GUI.Button(new Rect( ....        ) {          toggleBool = true; } 코딩을 완료하고 play시켜 가동시키고.. 마우스로 클릭을 하니.. 잘 동작합니다.  선언된 변수에 값도 의도한대로 잘 출력이됩니다.   매 프레임마다 호출되는 영역에 있기 때문에 Refresh와 같은 작업이 전혀 필요치 않습니다. 보통 게임내에서 설정화면에 많이 쓰이죠.. 음소거를 한다던가  각종 옵션들을 체크/해제 기능이 설정화면에 있었던 것 같습니다. 갈길은 멀고 할것도 많네요.. 하지만 기초가 중요합니다. ^^

Unity3d C# OnGUI의 textfield,textarea를 이용하여 게임내 글자입력받기

이미지
유니티를 C#의 OnGUI()메소드상에 .. textfield,textarea를 이용하여 글자입력하는 방법입니다. 게임내에서 캐릭터의 이름을 정하거나.. 파티플레이에서 채팅을하거나..  작업을 해야할 때가 물론 있을 것 입니다.  이런 UI를 구현할 때 기본이 되는 방법이 되겠죠. 델파이와같은 프로그램에도.. 보면.. Etit와 Memo가 있듯이 유니티에도 비슷한 기능을 하는게 있습니다. 첫 번째 것은.. 한줄짜리 데이터를 작성하는 게 되겠고.. 후자는 여러줄의 장문을 입력받는 것이 되겠습니다. OnGUI()안에 구현해 주시면되는데요.. TextField는 한줄자리 값을 받는 에디트입니다. new Rect(left,top,width,height)  위치와 사이즈는 위에처럼.. 지정을 해주시면 됩니다. 잘아시겠지만..픽셀의 위치값 이라는점.. 잊지 마시고요 이렇게 구현을 하고 실행 시켜보니.. 게임화면에서 글자입력이 가능 하게 됩니다.  한글도 잘 되네요..^^; 두번째는 TextArea입니다.   TextField와 별반 다르지 않습니다. 게임화면에서 엔터를 치면 다음줄로 내려가서 입력이 가능하네요.. 뭐.. 이것도 제가 사용해보니.. 테스트용으로 사용하기에 좋을 것 같습니다. 아무래도 디자인이 좀 떨어지니.. 이걸로 개발하기에는 좀 무리가 있지 않을까 생각합니다.   그래도 기본부터 다져야 하기때문에.. 손에 익히는게 중요하겠죠.. 그나저나 C#스크립트가 손에 잘 안익어서 걱정입니다.^^;

Unity3d OnGUI 연습..Screen Class 를 이용 화면사이즈 알아오기..

이미지
열심히 Unity3d를 공부하고있는데요.. 지난시간에 이어서 OnGUI 메소드를 좀 살펴보려고 합니다. 화면에 UI를 표시하는 방법으로 이미 알고 있고요.. 픽셀값을 기준으로 표시가 되는것은 알겠는데 게임플레이를 하는 컴퓨터나 스마트폰과같이 해상도가 제각각인 실행 환경에서 화면사이즈에 맞춰 표시가 되야 할 필요가 분명 있겠죠.. 이럴경우 어떻게 하는지 알아보겠습니다. 살펴보니.. Screen 클래스를 이용하여 화면사이즈를 알아 올 수 있습니다.   Screen. width,  Screen. height  프로퍼티를 이용합니다. 그래서 위 처럼.. 폭과 높이를 가져와 코딩을 하니..  화면사이즈가 변경이 되어도 크기에 맞춰 표시됩니다. 매 프레임마다 실행되는 OnGUI() 메소드안에 있기때문에.. Refresh와 같은 작업을 해 줄 필요가 없어 편리합니다. 근데 디자인도 좀 그렇고.. 아직 넘어야 할 산이 많습니다. GUI를 이용하여 화면상에 버튼을 만들건지 패널을 만들건지.. 라디오버튼..등등을 만들때 오로지 소스코딩만으로 작업을 해야 하는게 번거롭고 능률이 안나는 것 같습니다. 하지만 처음부터 NGUI와같은 에셋을 바로 이용해버리면.. 기초도 하나도 모른 상태에서 더욱 혼란스럽기만 할 것 같아 차근차근 수순을 밟아가려고 합니다.. 하지만.. 간단한 테스트를 해야 한다면.. 잠깐 사용하는것도 나쁘지 않을 것 같습니다. 

Unity3d GUI Button 만들기...!!

이미지
OnGUI에 대해 알아보고자 합니다. Unity3d를 책으로 공부하고있는데..  정리도 할 겸...  GUI는 Game내의 버튼이나 메뉴,설정등을 구현할 때 필수적으로 사용해야하는 기능입니다. 물론 NGUI와 같은 강력한 상용컴포넌트가 있긴합니다만.. 기본을 모르고 무작정 뛰어들 수 없어서.. 일단 책에 나와있는 예제등을 한번 다 실행시켜본 후 진행을 해볼까 합니다. 기본중에 아주 기본인데요.. 처음시작은 초라해 보일지 모르지만.. 첫 단추가 중요하니까요. C#으로 작성을 해 보았습니다. 요즘 C#을 한참.. 배우고있거든요.. 근데 꾸준히 들여다보지 않으면.. 자꾸 문법을 까먹게되네요.. 익숙해지지 않아서..ㅜㅜ 우선 빈게임오브젝트를 만들어놓고.. GUITest라는 스크립트를 만들었습니다. 스크립트 파일을 드래그해서 게임오브젝트에 붙여 넣은 후.. 아래와 같이 OnGUI()메소드안에 구현을 해 봤습니다. 이 메소드는.. 스크립트의 Update()메소드와 마찬가지로.. 매 프레임마다 실행이 됩니다.   동영상파일이 30프레임이 넘어가면.. 깜밖임을 못 느끼듯이 동작을 한다고 봐야죠..   주석처리를 한 것과 아래에 구문은 동일한 문법이죠.. 아직 익숙치 않아서..  그리고 실행을 해보면.. 버튼을 클릭할 때 마다 콘솔창에 "You Clicked th button!"이라는 메시지가 뿌려집니다. 어떤가요? 정말쉽군요.. 이게 시작이니 쉽죠.. 차근차근 진행해가서.. 어서 책한권을 뚝딱! 마스터했으면 좋겠습니다.

ORACLE 11g 그리고.. SHA 알고리즘...

이미지
개인정보보호법 관련해서 준비해야 할 것들이 정말 많은 것 같습니다. 제가 일하고 있는 회사에서.. 당장 적용해야 할 사항 중 하나가.. DBMS의 비밀번호와 같은 정보들에는 단방향 암호화 알고리즘의 경우 SHA-256/224 이상을 준비해야 하는데 걱정이네요. 확인해보니 저희 사이트에서 사용하는 데이터베이스의 경우 ORACLE-11gR2를 사용하고 있는데 SHA-0/1까지 지원하기 때문입니다. ORACLE의 경우 12C 부터는 지원된다고 합니다 ㅜㅜ    출처: 위키백과 과거 방식인 SHA-0/1의 경우 취약점이 확인이 되어 SHA-2(나머지 것들을 이렇게 부름) 알고리즘을 적용하여 준비하라는 것 인데..   준비에 대한 지원이 있는 것도 아니고, 데이터베이스 가격이 한두푼 하는 것도 아니잖아요?  지원이 안되는 암호화 방식을 법규에 맞게 적용 하자니.. 암호화 방식을 개발하거나.. 프로그램을 구매해서 적용해야 할 것 같은데 쉽지 않을 것 같습니다. ㅜㅜ 언제 찾아서 어떻게 적용을 할지.. 그리고... 컬럼이 암호화되면.. 연관된 소스들을 찾아서 전부 적용해야 하는데 쉽지 않을 것 같습니다. 이런 준비하느라  흰머리가 또 늘어나게 생겼네요

Unity3d 배경화면(Skyboxes) 설정하기..

이미지
  배경 화면이 없으니 정말 어떻게 해야 할지 난감 그 자체였거든요..   종이라면.. 색칠이라도 할 수 있고.. 그림판이나 포토샵이라면.. 배경 화면을 붙여 넣기라도 할 텐데..   이건 뭐.. 건드리는 것도 쉽지가 않으니.. ㅎㅎ Unity에서 배경 화면을 설정하는 방법입니다. 어렵지 않습니다.   막막하기만 한 Uinty인데 하나 씩 차근차근 해 나가려고 합니다. 일단.. 배경 화면에 관련된 Asset을 import 하시고요.. 기본 제공하는 패키지들인데..  일단 하는 방법을 알아뒀다 나중에 바꿔야겠죠? [Assets]-> [Import Package]-> [Skyboxes]-->[Import] [Edit] -->  [Rander Settings] 추가된 에셋들중 Material중 원하는 것을 하나 선택하신 후 위 화면처럼 Skybox Material에 Drag-and-drop으로  끌어다 놓습니다. 이렇게 하니.. 배경 화면에 바로 적용 되었습니다. 제법 그럴 듯 하네요… 퀄리티도 생각보다 괜찮네요..  아직은 걸음마 단계여서 이것에도 충분히 만족합니다. ^^ 열심히 책 보면서 공부하고 있습니다.