본문 바로가기

IT/유니티

6. 유니티 교육 (유니티 기본)

1. 유니티 기본정리


유니티뿐만이 아니라 어떤 툴이든지 편하게 사용하려고 가장 중요한것이 아마도 단축키라고 할수있다.

예전에 군대에서 전산병으로 근무했을때 아직도 기억하는것이, 자대 배치받고 멍하니 있으니까

선임병이 엑셀과 한글 단축키 목록을 가져오더니 이번주까지 다 못외오면 죽는다고 협박했던 기억이 떠오른다.

하...정말 힘들었지만, 한 1년넘게 하다보니까 내스스로도 무슨 엑셀과 한글의 신이 된거 같은 느낌이 들었다..ㅋㅋ

이와 같이 어떤 툴에 익숙해지는게 가장 중요한것은 바로 단축키! 


유니티도 역시 많은 단축키가 있지만, 가장 중요한 단축키에 대해서 알아보자!




가장 중요한 단축키는 아마도 q,w,e,r이라고 할수 있다.


q는 환면이동으로, 마우스 왼쪽클릭하고 화면을 이동시킬수 있다.


w는 객체이동이라고 할수 있다. w를 누르고 객체를 클릭하면 그 객체의 x,y,z의 화살표가 나온다

이 화살표를 드래그하면 그 객체만 따로 이동시킬수 있다.

 

e는 객체의 회전이다. 객체의 x,y,z축의 회전을 할수 있게 해준다.


r은 객체의 크기를 조정할수 있다. 역시 x,y,z축을 기준으로 크기를 조정할수 있고, 

가운대를 클릭후 드레그하면, 비율대로 크기로 조정할수 있다.



이 이외에도 z, x가 있다.

z는 기준점을 조정할수 있는데, pivot과 center로 변환할수 있다.

여기서 pivot은 전통적인 3d의 개념으로 사람을 기준으로 보면 발바닥이라고 할수있다.

center는 말그대로 그 객체의 가운데를 기준으로 한다.


x는 좌표계를 조정할수 있는데, local과 global로 변환할수 있다.

글로벌 좌표계와 각 객체와 좌표계는 달라질수 있으므로, 신경을 써야 할것이다.

(자동차 겜에서 우회전을 했을대 자동차의 좌표계가 우측으로 돌아가야지, 글로벌 좌표계 돌아가면 안될것이다.)




그리고 유니티는 게임 엔진이다 보니까 재생과 일시정지 그리고 스텝이있다.


단축키는 다음과 같다

CTRL/CMD+P 재생(Play)

CTRL/CMD+SHIFT+P 일시정지(Pause)

CTRL/CMD+ALT+P 단계 실행(Step)


재생은 게임을 실행한것이고,

일시정지는 말그대로 실행중인 겜을 정지시킨것이며,

단계실행은 프레임단위로 한단계식 실행시키는 것이다.





2. Jimmy Vegas 튜토리얼을 보고 정리 


*Snap? 스냅?


미국 유니티 유튜브 강좌에서 배운것

객체를 이동시킬때 ctrl를 누른채로 이동시키면 일정값만큼만 이동하는데 이것을 snap이라고 한다.

디폴트값으로는 1이 설정되어 있는데, 이값을 수정하고 싶으면,

edit에서 가장아래에 있는 snap setting에서 수정할수 있다.





*객체 묶기


유니티로 게임을 만들다 보면 수많은 객체들을 생성해야만할것이다.

이때 모든 객체를 각자 움직이면 힘들테니까 객체를 묶어서 하나의 객체처럼 사용할수 있다.

gameObject에서 emtpy오브젝트를 생성하고 그 오브젝트 밑에다가 다 드레그 하면 끝!

예를 들어 큐브 몇개를 이용해서 집을 만들고 집만드는데 사용한 모든 큐브를 이 빈객체에 넣고

객체이름을 집으로 하면 나중엥 복사해서 사용하기가 편하진다.




*FPS뷰 캐릭터 추가하기


assets에서 마우스 오른쪽 버튼 누르고, import package에서 characters를 추가

조금 시간이 걸리는데, 추가가 끝나면 standard assets에 생깁니다. 

이 폴더 안에 보면, 캐릭터 안에 firstpersoncharacter폴더를 보면, 

prefabs안에 FPSController를 드래그해서 놓으면 된다.

일인칭뷰 캐릭터를 추가하고 ctrl+p로 실행시키면 내가 만든 월드에서 캐릭터를 조종할수 있다.

참 신기방기하내...이렇게 쉽게..ㅠㅠ

난 뭐하러 혼자 엔진만든다고 개고생을 한건가..ㅠㅠ




*지형(terrain)


이건뭐...신이 된거같은 느낌을 준다. 마치 샌드박스 겜처러 지형을 만들수 있다.

gameObject-> 3D Object안에 있는 terrain

지형이 바로 생성되며 지형을 클릭하면 inspector에서 지형을 조정할수 있는 옵션들이 보인다.

지형을 올려서 산을 만든다던지, 

뽀족한 산을 깍아서 낮은 구릉을 만든다던지.

디자인적인 센스만 있으면 멋진 지형을 만들수 있을거 같다.

물론 난 예술에 관한 모든 센스가 없지만....

괜찮다...애셋스토어에서 돈으로 사야지...ㅋㅋㅋ


Tip. 지형 올리는 부분에서 shift누르고 클릭하면 지형을 내린다.

Tip. 지형의 inspector에서 terrain에 설정아이콘을 클릭하면 material을 커스텀으로 해줘야 더 자연스러울때도 있다


Tip. 가끔식 캐릭터가 지형을 통과할때가 있는데 이때에는 지형에서 rigidbody 컴포넌트를 추가후에 

Is Kinematic를 체크한다.


Tip. 기본 애셋의 water를 사용하는데 물이 만약 핑크색으로 나온다면, 이것은 세이더의 문제로 

이문제를 해결하기 위해서는 세이더 편집화면으로 가서 (c#코드임) 

The shader had the value "unity_ObjectToWorld" repeated throughout it. I just replaced it with "_Object2World" and it worked.

위와 같이 편지하면 된다. 

즉, unity_ObjectToWorld 를 _Object2World 로 바꿔준다.

임시방편이라고는 하는데, 뭐 최신버젼으로 받아서 같은 결과가 나오면, 이렇게라도 수정하자!