Unity3d C# toolba 사용해보기



이번에는 ToolBa입니다.

횡으로 되어있는 버튼들의 리스트라고 보면되겠습니다. 이렇게 늘어져있는 여러 버튼들중.. 하나만 선택할 수 있는 라디오버튼과 비슷한 기능이라 할 수 있죠..

이것도 toggle과 비슷하게 매개변수를 받는데요.. int와 string배열입니다.   앞에것은 만들어진 툴바중 몇번째버튼을 선택하겠다는 의미이고..  두번째의 string형식의 배열은.. 툴바의 갯수와 만들어진 버튼의 이름을 의미합니다.

테스트를 해 보면..    요구조건에 맞게 변수를 선언한 후.. 값을 할당하고.. 

GUI.Toolba( new Rect ... [int], [string array] ); 


OnGUI-Toolba C# example


toolba-button을 선택 하였을 때 값들의 변화를 살펴보기위해 라벨을 하나 찍어보도록 한 줄 넣었습니다. 

그리고 Play버튼을 눌러 실행시켜보니..  생성한 배열의 갯수만큼 툴바가 만들어졌네요..   

그리고 초기에 설정한 값이 선택되어있고요..




OnGUI-Toolba C# example

2번째 버튼을 눌러보니..  원하는대로.. 선택이 잘 되었습니다.

OnGUI-Toolba C# example




테스트를 좀 더 해보겠습니다. 선언된 배열 사이즈만큼 버튼이 잘 생성되는지 보려고하거든요.. 

 여기에 조건문을 걸어 특정버튼을 눌렀을때 배열을 초기화해 사이즈를 변경해보면 알 수 있을 것 같거든요..

OnGUI-Toolba C# example

toolbaINT 값에 조건을 걸어 [3번째 버튼]을 클릭하였을때  사이즈에 변화를 주었더니 바로 적용이 됩니다.

OnGUI-Toolba C# example

처음에 선언하였던 toolba의 가로폭 사이즈는 변함이 없고.. 버튼들이 조금씩 작아져서 맞춰졌네요..


정말 간단한 기능이지만 이걸 직접 만들어 보니 그리 간단하지는 않습니다.    스크립트언어를 잘 모르면 시간도 많이 걸리겠습니다. ^^; 







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

이번에는 유니티의 C#스크립트를 이용하여 OnGUI()에 toggle을 사용해보겠습니다.


toggle버튼이라는게 체크박스와 같은 것이기때문에.. 
Toggle()메소드 의 매개변수에  bool로 선언된 변수가 추가됩니다.  

그리고 추가된 변수값이 잘 작동하는지 GUI라벨에 찍어보려고합니다.



OnGUI Toggle example

toggleBool = GUI.Toggle(...  );

테스트를 해 보니 위 처럼 선언한 변수에 메소드의 결과값을 할당해야.. 토글버튼이 체크할 수 있도록 활성화가 됩니다.

GUI.Toggle(.. ); 이렇만 코딩을 하니까.. bool로 선언된 변수값의 결과에 따라 ReadOnly로 표시만 될 뿐입니다.

GUI-Button을 클릭하면 토글에 체크가되거나 해제가 되도록 설정할 수 있겠네요.. 


if (GUI.Button(new Rect( ....        )       toggleBool = true;}




OnGUI Toggle example

OnGUI Toggle example


코딩을 완료하고 play시켜 가동시키고..

마우스로 클릭을 하니.. 잘 동작합니다.  선언된 변수에 값도 의도한대로 잘 출력이됩니다.  

매 프레임마다 호출되는 영역에 있기 때문에 Refresh와 같은 작업이 전혀 필요치 않습니다.

보통 게임내에서 설정화면에 많이 쓰이죠.. 음소거를 한다던가  각종 옵션들을 체크/해제 기능이 설정화면에 있었던 것 같습니다.



갈길은 멀고 할것도 많네요.. 하지만 기초가 중요합니다. ^^




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

유니티를 C#의 OnGUI()메소드상에 .. textfield,textarea를 이용하여 글자입력하는 방법입니다.

게임내에서 캐릭터의 이름을 정하거나.. 파티플레이에서 채팅을하거나..  작업을 해야할 때가 물론 있을 것 입니다.  이런 UI를 구현할 때 기본이 되는 방법이 되겠죠..

델파이와같은 프로그램에도.. 보면.. Etit와 Memo가 있듯이 유니티에도 비슷한 기능을 하는게 있습니다.

첫 번째 것은.. 한줄짜리 데이터를 작성하는 게 되겠고.. 후자는 여러줄의 장문을 입력받는 것이 되겠습니다.

OnGUI()안에 구현해 주시면되는데요..

TextField는 한줄자리 값을 받는 에디트입니다.

new Rect(left,top,width,height) 

위치와 사이즈는 위에처럼.. 지정을 해주시면 됩니다. 잘아시겠지만..픽셀의 위치값 이라는점.. 잊지 마시고요

OnGUI TextField


이렇게 구현을 하고 실행 시켜보니.. 게임화면에서 글자입력이 가능 하게 됩니다.  한글도 잘 되네요..^^;


OnGUI TextField

두번째는 TextArea입니다.


OnGUI TextArea
 TextField와 별반 다르지 않습니다. 게임화면에서 엔터를 치면 다음줄로 내려가서 입력이 가능하네요..


OnGUI TextArea


뭐.. 이것도 제가 사용해보니.. 테스트용으로 사용하기에 좋을 것 같습니다. 아무래도 디자인이 좀 떨어지니.. 이걸로 개발하기에는 좀 무리가 있지 않을까 생각합니다.  

그래도 기본부터 다져야 하기때문에.. 손에 익히는게 중요하겠죠.. 그나저나 C#스크립트가 손에 잘 안익어서 걱정입니다.^^;










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



열심히 Unity3d를 공부하고있는데요.. 지난시간에 이어서 OnGUI 메소드를 좀 살펴보려고 합니다.

화면에 UI를 표시하는 방법으로 이미 알고 있고요..

픽셀값을 기준으로 표시가 되는것은 알겠는데..

게임플레이를 하는 컴퓨터나 스마트폰과같이 해상도가 제각각인 실행 환경에서 화면사이즈에 맞춰 표시가 되야 할 필요가 분명 있겠죠..

이럴경우 어떻게 하는지 알아보겠습니다.

OnGUI Screen-Class


살펴보니.. Screen 클래스를 이용하여 화면사이즈를 알아 올 수 있습니다.  

Screen.width, Screen.height  프로퍼티를 이용합니다.


그래서 위 처럼.. 폭과 높이를 가져와 코딩을 하니..  화면사이즈가 변경이 되어도 크기에 맞춰 표시됩니다.



OnGUI Screen-Class


매 프레임마다 실행되는 OnGUI() 메소드안에 있기때문에.. Refresh와 같은 작업을 해 줄 필요가 없어 편리합니다.


OnGUI Screen-Class


근데 디자인도 좀 그렇고.. 아직 넘어야 할 산이 많습니다.

GUI를 이용하여 화면상에 버튼을 만들건지 패널을 만들건지.. 라디오버튼..등등을 만들때 오로지 소스코딩만으로 작업을 해야 하는게 번거롭고 능률이 안나는 것 같습니다.

하지만 처음부터 NGUI와같은 에셋을 바로 이용해버리면.. 기초도 하나도 모른 상태에서 더욱 혼란스럽기만 할 것 같아 차근차근 수순을 밟아가려고 합니다..

하지만.. 간단한 테스트를 해야 한다면.. 잠깐 사용하는것도 나쁘지 않을 것 같습니다. 



Unity3d GUI Button 만들기...!!


OnGUI에 대해 알아보고자 합니다.

Unity3d를 책으로 공부하고있는데..  정리도 할 겸... 

GUI는 Game내의 버튼이나 메뉴,설정등을 구현할 때 필수적으로 사용해야하는 기능입니다. 물론 NGUI와 같은 강력한 상용컴포넌트가 있긴합니다만.. 기본을 모르고 무작정 뛰어들 수 없어서.. 일단 책에 나와있는 예제등을 한번 다 실행시켜본 후 진행을 해볼까 합니다.

기본중에 아주 기본인데요.. 처음시작은 초라해 보일지 모르지만.. 첫 단추가 중요하니까요....

C#으로 작성을 해 보았습니다. 요즘 C#을 한참.. 배우고있거든요.. 근데 꾸준히 들여다보지 않으면.. 자꾸 문법을 까먹게되네요.. 익숙해지지 않아서..ㅜㅜ


GUI Script C#

우선 빈게임오브젝트를 만들어놓고.. GUITest라는 스크립트를 만들었습니다. 스크립트 파일을 드래그해서 게임오브젝트에 붙여 넣은 후..



아래와 같이 OnGUI()메소드안에 구현을 해 봤습니다.

이 메소드는.. 스크립트의 Update()메소드와 마찬가지로.. 매 프레임마다 실행이 됩니다.  

동영상파일이 30프레임이 넘어가면.. 깜밖임을 못 느끼듯이 동작을 한다고 봐야죠..  


OnGUI C# Sample
주석처리를 한 것과 아래에 구문은 동일한 문법이죠.. 아직 익숙치 않아서.. 

그리고 실행을 해보면..


OnGUI C# Sample

버튼을 클릭할 때 마다 콘솔창에 "You Clicked th button!"이라는 메시지가 뿌려집니다.

어떤가요? 정말쉽군요.. 이게 시작이니 쉽죠.. 차근차근 진행해가서.. 어서 책한권을 뚝딱! 마스터했으면 좋겠습니다.






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



개인정보보호법 관련해서 준비해야 할 것들이 정말 많은 것 같습니다.

제가 일하고 있는 회사에서.. 당장 적용해야 할 사항 중 하나가.. DBMS의 비밀번호와 같은 정보들에는 단방향 암호화 알고리즘의 경우 SHA-256/224 이상을 준비해야 하는데 걱정이네요.

확인해보니 저희 사이트에서 사용하는 데이터베이스의 경우 ORACLE-11gR2를 사용하고 있는데 SHA-0/1까지 지원하기 때문입니다.

ORACLE의 경우 12C 부터는 지원된다고 합니다 ㅜㅜ



   출처:위키백과
SHA-알고리즘



과거 방식인 SHA-0/1의 경우 취약점이 확인이 되어 SHA-2(나머지 것들을 이렇게 부름) 알고리즘을 적용하여 준비하라는 것 인데..  

준비에 대한 지원이 있는 것도 아니고, 데이터베이스 가격이 한두푼 하는 것도 아니잖아요?  지원이 안되는 암호화 방식을 법규에 맞게 적용 하자니.. 암호화 방식을 개발하거나.. 프로그램을 구매해서 적용해야 할 것 같은데 쉽지 않을 것 같습니다. ㅜㅜ

언제 찾아서 어떻게 적용을 할지.. 그리고... 컬럼이 암호화되면.. 연관된 소스들을 찾아서 전부 적용해야 하는데 쉽지 않을 것 같습니다.


이런 준비하느라  흰머리가 또 늘어나게 생겼네요 ㅎㅎ





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



  배경 화면이 없으니 정말 어떻게 해야 할지 난감 그 자체였거든요..   종이라면.. 색칠이라도 할 수 있고.. 그림판이나 포토샵이라면.. 배경 화면을 붙여 넣기라도 할 텐데..   이건 뭐.. 건드리는 것도 쉽지가 않으니.. ㅎㅎ

Unity에서 배경 화면을 설정하는 방법입니다. 어렵지 않습니다.  

막막하기만 한 Uinty인데 하나 씩 차근차근 해 나가려고 합니다.

일단.. 배경 화면에 관련된 Asset을 import 하시고요.. 기본 제공하는 패키지들인데..  일단 하는 방법을 알아뒀다가.. 나중에 바꿔야겠죠?

Unity Skyboxes Package

[Assets]-> [Import Package]-> [Skyboxes]-->[Import]

Unity Rander Settings

[Edit] -->  [Rander Settings]

Unity SkyBox drag-and-drop
추가된 에셋들중 Material중 원하는 것을 하나 선택하신 후 위 화면처럼 Skybox Material에 Drag-and-drop으로 끌어다 놓습니다.
이렇게 하니.. 배경 화면에 바로 적용 되었습니다. 제법 그럴 듯 하네요…
Unity SkyBox result


퀄리티도 생각보다 괜찮네요..  아직은 걸음마 단계여서 이것에도 충분히 만족합니다. ^^


열심히 책 보면서 공부하고 있습니다.








iptime 유/무선공유기 led불끄기!



안녕하세요 메르세데스입니다. iptime 유/무선공유기의 led점등기능이 있는데 잘 모르시는 분이 있어서 소개하려고 합니다.

가정집에 유/무선공유기 하나씩은 거의 다 있잖아요.. 스마트폰이 보급되면서 더욱 그리 된 것 같습니다.

 그런데 설치된 장소가 애매해서 밤에 불을 껐는데 파란색 led가 깜박이는 것이 신경 쓰이시는 분들에게 유용한 팁이 될 수 있을 것 같습니다.

공유기의 관리자 메뉴에 들어가시고..

iptime관리자메뉴

아래로 내려보시면..  [시스템관리]-> [기타설정] 부분에 잘 살펴보시면.. 

나이트LED 모드 라는 것을 찾으실 수 있습니다.


iptime 나이트led

말 그대로죠..!

기본 모드면.. 항상 연결 되어 있을때 led를 켜 놓은 것 입니다.
항상 끔 으로 설정하시면 꺼집니다.

하지만.. 모든 불이 꺼지는 것은 아닙니다. 전원불만 제외하고 나머지는 다 꺼지네요..
[Wan]포트와 [wifi]불 그리고 [lan]포트 led가 소등 됩니다.
 

설정이 정상적이지 않다면.. 플러그를 뽑은 후 다시 전원을 다시 켜 주세요…
그리고 스케쥴을 걸어서 저녁 시간에만 불이 깜박이지 않도록 설정할 수 있습니다. 하지만 그럴 필요가 있을까요?

아쉽기는 하지만.. 최소 꺼짐/켜짐을 확인해야 할 때가 있을지 모르니.. 그걸 염두 해두어 전원 불은 남겨 놓은 것 같습니다.

이런 설정으로 전기 요금이 많이 절약되지는 않겠지만..  깜박임이 없어져 신경이 덜 써질 것 입니다. ^^;






WAN Port를 사용한 네트워크 구성시 유의사항

WAN Port를 사용한 네트워크 구성시 유의사항


요즘  저렴한 가격으로 구입 가능한 유/무선 공유기를 이용하여 간단한 홈 네트워크를 구축할 수 있습니다.

WAN, LAN PORT

WAN, LAN포트에 대해 잘 이해하신다면.. 복잡한 구성이나 연결하였는데 잘 안되었던 상황들을 해결할 수 있습니다.

위의 사진에도 보이는 것처럼 “WAN”이라는 이름으로 표시가 되어있는 것이 WAN 포트가 되겠습니다. 일종의 업링크포트라고 하여.. 외부로부터 들어오는 신호를 받는 포트입니다.

인터넷 모뎀으로부터 나온 랜 선을 이곳에 꽂으면 됩니다.
이렇게 WAN 포트가 들어있는 장비를 저희는.. “공유기”라는 이름으로 부릅니다.  유선/유뮤선공유기~    

반면에 LAN포트만 있는 장비는 허브(Hub)라고 부르죠..    
이 포트가 있고 없고에 따라 구성하는 방법에 차이가 있습니다.
물론 WAN포트에 연결하지 않는다면 그냥 허브(Hub)로 사용하는 것이 됩니다.
이 포트를 기준으로 (만약 유/무선공유기에 연결을 하였다면)    옆에 있는 Lan포트들로 연결이 되거나 혹은 무선으로 연결된 단말들은 내부망으로 구성 됩니다.

WAN Connection

대개는 이런 식으로 연결을 하여 사용하기 때문에 큰 문제는 없지만..  이 구성 아래에.. 다시 유선 혹은 유/무선 공유기를 [WAN-PORT]를 이용하여 연결한다면
다르게 말하자면..아래에 다시 내부망을 구성한다는 이야기와 같습니다.
그렇다면 어떻게 해야 할 까요?

꽂는 거야 아래처럼 연결하면 되겠지만…    아래 연결한 유/무선공유기의 경우 GateWay IP를 위에 연결된 공유기와 다르게 설정해 주셔야 합니다.

만약 iptime공유기 제품이라면.. 모델과 종류에 상관없이 default로 설정된 GateWay IP가 192.168.0.1로 전부 동일합니다.

wan포트를 이용한 공유기 하단 공유기연결
빨간색은 WAN포트 이며 파란색은 LAN포트 입니다.  


그냥 연결만 하였다면..  두 장비의 GateWay IP 번호가 동일하게 되기 때문에 구성 상 문제가 발생합니다.

컴퓨터에서 웹페이지에 192.168.0.1를 입력하면 공유기의 관리자 페이지에 들어가게 됩니다.

그런데 위 그림에서 아래 아래에 연결된 공유기에 PC나 노트북에서 들어가 보면..(GATEWAY IP를 변경하지 않은 상태)   웹페이지를 몇 번씩 새로고침 해보면 바뀔 때마다 두 공유기의 관리자 페이지가 서로 표시가 될 것 입니다.

실제 인터넷 사용시 아예 인터넷이 안되는 것도 아니고.. 4~5분 사용하다가 갑자기 안되고 다시 좀 기다리면 되고를 반복하게 됩니다.

위의 그림처럼 연결된 공유기마다 IP대역을 중복되지 않도록 설정해준다면..WAN포트를 이용하여 내리 10개를 연결한다 하여도 구성상 의 문제가 되지 않습니다. 하지만 실 생활에서 이런 구성까지는 구성하게되는 상황은 거의 없다고 봐야죠.. 많아봤자 공유기 2~3개정도..

하지만 유/무선공유기를 이용하여 [DHCP]를 사용하여 스마트폰이나 노트북에 IP를 자동 할당 해야 하는 경우가 필요하다면... WAN포트를 이용한 구성이 효과적일 수 있습니다.





내 블로그에 나만의 RSS Feed를 구독해보자 (티스토리,블로그스팟)

내 블로그에 RSS Feed를 달아보자!


안녕하세요! 메르세데스입니다. 내 블로그에 RSS Feed 구독 창을 달아 보는것 을 알아보겠습니다. 뭐.. 티스토리나 구글블로그스팟 네이버등의 블로그를 운영해보시면.. 정말 괜찮은 블로거의 RSS를 등록해서 정보를 받아본다면 참 괜찮을 거라는 생각이 듭니다.

관련된 위젯이나.. 해당 블로그에서 기본적으로 제공해주는 소스들이 있어 적용하는 데에는 큰 어려움이 없으실 거라 생각이 드는데요 이번에 알아볼 것은 이런 기본적인 피드 말고 전문적으로 예쁘고 잘 만들어주는 쉽게 말해 내 입맛에 맞는 feed를 만드는 방법을 소개하려고 합니다.

저도 블로그를 하면서.. 찾아서 등록하여 봤더니 제법 괜찮습니다.  직관적이어서 큰 어려움이 없습니다.
feed.mikle.com 라는 사이트인데요..  영어 사이트 이지만..   나와있는 대로 진행하면 되기 때문에 제작하시는데 큰 어려움이 없으실 겁니다.
사이트에 들어가신 후

왼쪽 상단의 Feed URL 이라는 부분에 만들려고 하는 블로그나 받기를 원하는 rss 주소를 넣어주시면 됩니다. 또한..장점으로는 여러 주소를 중복으로 등록하여 한꺼번에 표시가 되도록 할 수 있다는 것입니다.


feed.mikle.com 사이트이용한 rss구독기만들기

또한 General 부분에 설정으로 입 맞에 맞게 사이즈를 조절할 수 있고 자동으로 스크롤이 되도록 한다거나.. 제목과 내용이 혼합되게 하거나..  폰트.. 글 하나 당 보여지는 글자 수 제한.. 표시되는 글의 숫자 등등.. 세세한 설정이 가능합니다.

오른쪽 상단의 Preview에 미리 보기가 표시가 되기 때문에 원하는 스타일로 설정하시면 되겠습니다.

제 티스토리블로그에서 아주 잘 동작을 하고.. 블로그스팟은 말할 것도 없이 잘 돌아갑니다.
하지만 네이버블로그에서는 위젯에 등록이 안되네요 참고 바랍니다.
그래서 저는 블로그 3개를 운영 중인데 한꺼번에 등록 시켜 만들어 놨습니다 잘 동작을 하네요..




티스토리 사이드바에 RSS 구독 등록 방법을 간단히 설명 드리자면..

정말 간단합니다.
관리자 메뉴에서 [사이드바]->[배너모듈]을 선택하여 원하는 위치에 끌어다 놓으신 후 아까 위에서 만들어진 스크립트 소스를 붙어 넣으시면 됩니다.

티스토리 사이드바 위젯추가1

적용되었는지 확인해보니 잘 됩니다. 근데 조금 딜레이가 있네요..



티스토리 위젯추가2



구글블로그스팟에서 등록하는 방법을 알아보겠습니다.

여기도 뭐 어렵지 않습니다.
관리 화면에서 [레이아웃]-->[가젯 추가] ->[HTML/JavaScript]를 선택하신 후..
마찬가지로 만들어진 소스를 붙어 넣어 적용하시면 됩니다.

블로그스팟위젯추가


다른 블로그도 이런 비슷한 기능을 하는 메뉴에서 적용을 하면 되겠죠.. 문제는 N사 인데요..  보안 때문인지.  위젯에 등록하려고 하면 등록이 안됩니다.

네이버위젯등록오류

이렇게 지원되지 않는 코드라면서.. 안되고.. 별도로 위젯뱅크와 같은 네이버와 제휴가 된 위젯으로 등록을 하면 가능하네요..
이상으로 내 블로그에 나만의 RSS Feed를 구독하는 방법을 알아봤습니다.