친절한효자손 취미생활

[유니티 기초] 태양계 만들기 상편 - 지구와 달의 궤도 설정



자, 지난시간에 계속 이어서 쭈욱 진행하고 있구요,

저번시간까지는, 객체지향에 대해 설명과 동시에, 스크립트를 유니티 툴에서 수치를 변경하여

속도조절 하는 방법을 알아보았지요???




이번 시간은, 조금 더 디테일하게 들어가 보도록 하지요^^


태양계 만들기 상편으로서, 여기서는, 간단히 태양 / 지구 / 달 만 만들고,

지구는 태양 주위를 자전하며 돌고,

달은 지구 주위를 자전하며 도는 것을 구현해 보도록 하죠.



지난번 강의들은, 이곳 유니티 카테고리에서 확인하실 수 있습니다^^





자, 오브젝트 생성은 전시간에 많이 설명했기 때문에 별도로 설명은 안드리고,

현재 만들어진 오브젝트는 태양, 지구, 달 이렇게 3가지가 있습니다.


이건 눈으로 보이는 오브젝트이고, 추가적으로 이후에

형태는 없지만, 좌표상에 분명 존재하고 있는 빈 오브젝트를 만들꺼에용.





자바스크립트는, 지난시간에 사용한 속도조절해주는 스크립트를 그대로 사용합니다.





태양은, 속도를 1로 주고요~





지구는 3정도 주고~





달은 5로 줬습니다.

그러므로, 태양이 가장 느리고, 달이 가장 빨리 자전하겠지요?





자, 이제 공전축을 만들기 위해서, 빈 오브젝트를 생성할 꺼에요.

그러면 빈 오브젝트는 총 몇개를 만들어야 할까요???


네^^ 맞습니다. 두개죠.

지구가 태양과 공전하는 궤도 하나,

달이 지구랑 공전하는 궤도 하나~!


이렇게 선택해 주시면, 화면에 빈 오브젝트가 나올거에요.





네. 이렇게 왼쪽에는 GameObject 라고 나오고, 실제 화면에선 좌표만 표시됩니다.





그리고, 여기에도 회전값을 줘야 합니다.

마찬가지로, 자바스크립트를 드래그해서, 빈 오브젝트에 끌어다 올리시면,


초록색상자에 표시된 것처럼, 스크립트가 나타납니다.

그리고 이 부분도, 행성과 같은 스크립트 이므로, 숫자 수치를 변경해주면, 회전속도가 바뀌겠지요.





이런식으로 저는 공전축을 두개가 아닌, 세개를 만들었는데,

그 이유는...그냥 심심해서 카메라도 돌려보고 싶기 때문이죠^^;


그리고, 저 오브젝트 이름을 변경하는 방법은, 원하는 오브젝트를 선택하신 다음에, F2 를 누르시면 됩니다.





태양을 중심으로 돌아야 되니까, 태양의 중심좌표 좌표값을 잘 봐주시길 바랍니다.


지금 스샷엔 없지만, 태양을 찍어보시면, 좌표가 X는 -1, Y는 1, Z는 15 였습니다.

그래서, 지구는 태양을 중심으로 돌아야 하니까, 지구공전축 빈 오브젝트도 태양과 중심점이 같게 위치를 이동시켜 줍니다.


생각중


태양에다가 지구를 그냥 끌어다 놓고 돌리면 안되는건가??? 라고 의문이 드실 수도 있습니다.


맞아요. 그렇게 해도 돌긴 돌아요. 그러나, 이렇게 하면,

태양의 회전속도와 지구가 태양 주변을 도는 속도가 같게 되죠??


제가 빈 오브젝트를 만든 이유는, 태양이랑 지구 공전 속도를 다르게 하기 위함이죠.





같은 방법으로, 지구의 좌표도 잘 기억해 두시고, 3/3/3 이군요.





달은 지구를 중심으로 도니까, 지구 중심으로 같게 이동 시켰습니다.





카메라는 뭐...적당히~ 이건 정확하지 않아도 돼요^^

그냥 근처에 적당히 갖다 주시고, 기울기도 줘보세요~ 뱅글 뱅글 돌면서 다양하게 보일꺼에요^^





이제 궤도를 설정해 줘야죠.


우선, 지구는 태양 주변을 돌아야 되니까,

지구 공전축에 끌어다 놓죠.





햇갈리실까봐 다시 설명합니다.


태양이랑 지구공전축이랑 지금 그냥 오브젝트냐~ 빈 오브젝트냐~ 그 차이 입니다.

좌표나 나머지 설정은 모두 같은데, 단지 제가 차이를 나게 하려는건, 다름아닌

회전속도 입니다.


끌어다 놓으면 저렇게 되죠?





이번엔 달 공전축 입니다.


저것만 보면 의아해 하시겠죠?

달공전축은 지구에 넣어야 하는거 아닌가? 라는 의문요.


오케이3


지구에다 안 놓고, 지구공전축에 놓은 이유는,

지구는 지구공전축, 즉! 태양의 주변을 뱅글뱅글 돌게되는데, 그러면 돌때마다 중심값도 변하죠?


만약, 달 공전축을 지구에 놓으면, 지구는 고정된 포인트다 보니, 달은 그냥 뱅글뱅글 돌기만 합니다.

그래서 지구공전축에 객체구조로 되게끔 만들어 준 것이죠.





달은, 당연히 달공전축에 놓구요~!





이렇게 되면 완성 입니다^^





카메라 오브젝트는, 카메라 회전축에~ 살포시~





이렇게 되면 완성 입니다^^


감사


태양과, 지구, 달 회전속도는 1 / 3 / 5 였지요?


태양과 지구공전축 속도를 다르게 해 주고,

지구와 달공전축 속도도 다르게 해 주세요^^ 마이너스도 상관 없습니다.

하지만 궤도니까, 같은 방향으로 모두 돌되, 속도가 달라야 겠지요^^


카메라 회전축 속도는 뭐...알아서...ㅎㅎㅎ;;;



0



그러면, 보시는 것처럼 태양의 자전속도와 지구의 공전속도가 다르죠?

마찬가지로, 지구의 자전속도와 달의 공전속도도 다릅니다.


게임뷰에서 볼까요???




0



이렇게 됩니다^^ 하하하~! 재밌지요????



소풍


이런식으로, 이제 나머지 행성들을 만들어서 그 행성수만큼 공전할 수 있게끔, 빈 오브젝트를 만들어서

회전속도를 각각 부여해서 회전시키면 아주 멋진 태양계가 완성이 될 것 같죠???


다음 시간에 마지막 과정을 하도록 할께요^^




이 블로그를 후원해주실 분들을 모집합니다!

이 글을 공유합시다

facebook twitter googleplus kakaostory naver

본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.