한 걸음 두 걸음

unity 유니티 ] 객체만들기 / 이동시키기 / 색 넣기 / 이미지 배경 넣기 / Tiling / 중력넣기 rigidbody / prefebs만들어 사용하기 / addForce스크립트 적용시키기 본문

Unity

unity 유니티 ] 객체만들기 / 이동시키기 / 색 넣기 / 이미지 배경 넣기 / Tiling / 중력넣기 rigidbody / prefebs만들어 사용하기 / addForce스크립트 적용시키기

언제나 변함없이 2019. 1. 21. 11:27
반응형

여기 누르면 

기본적으로 제공되는 객체에 대해 알 수 있다.


구체적으로 inspector에서 속성을 변경시킬 수 있다.

position(위치) : x, y, z좌표
rotation(회전) : x, y, z각도
scale(축)

오일러각도값을 받는다.


(오일러값은 4개의 좌표를 사용하기에(한 개의 값은 사람이 알아볼 수 없습니다) 이를 쿼터니언으로 받아 사용합니다 : )

가끔 짐벌락 현상이 발생하는데 이는 x, y축이 정상회전할 때 z축이 회전하지 않는 등 어느 한 축이 회전하지 않는 현상이다.

  • 이를 해결하기 위한 알고리즘을 코터니언이라고 한다.(구체적으로 쿼터니언은 회전할 때 계산하기위해 쓰인다.)


새롭게 3D Object를 만들어보자.

이 때 새로 만들어진 객체의 position은 원점일 수도 있고 아닐 수도 있다. 그리고 x,y,z를 뜻하는 빨강 파랑 초록을 드래그하여 이동시킬 수 있다

새롭게 만든 오브젝트는 Position는 (0,0,0)으로 세팅해주는 것이 좋은데

직접 입력해줘도 되지만, 아래의 기어 아이콘을 눌러

reset를 눌러주면 알아서 원점으로 세팅된다.


마찬가지로

큐브 객체 만들어준 후,

리셋해주면

이렇게 원점으로 들어간다.

이런식으로 종이면에 겹쳐버리기 때문에종이만큼 y축을 0.5 올려주면 종이 위로 딱 올라간다.

색을 입혀보자

만들었으면, 옆에 스포이드 모양 옆을 눌러서

아래창을 만들어준다.

해당 재료를 만들었으면 큐브에 드래그앤 드랍해서 색을 입혀줄 수 있다.

이제 땅을 만들어줄건데,

이와같은 땅 이미지를 하나 정한 후, asset 파일 내부에 land1.png로 넣어주면 유니티에서 사용할 수 있다.

만든 프로젝트 파일 경로로 가서

asset파일 내부에 이미지 파일을 넣어주면

이러케 알아서 유니티 프로그램 내부로 동기화됩니당~


이미지같은 경우 저작권 문제가 발생하기 때문에 이는 저장자사용 승인(동의) 비밀 유지 협약(NDA)를 꼭 맺어서 사용해야한다.(동업자들과 함께 제 3자에게 컨텐츠에 대한 정보를 발설하지 않겠다는 약속을 맺어야한다. 유출할 시 손해배상을 청구할 수 있다. (법원에 가면 해당 서류가 있으니 가서 쓰는 것이 좋다.)

그리고 만약 다른 사람들이 만들어놓은 작품을 끌어다 쓸 경우 SLA(service license agreement)를 통해 동의를 받아야한다. 이는 교육용 목적일 경우 큰 문제가 없을지도 모르겠지만 상업적인 목적일 경우 반드시 확인하는 것이 좋다.

(특히 오픈소스 주의해야한다. 전시회에 나갈 떄는 상업용으로 들어가기 떄문에 visual studio license등을 체크해주어야한다.)


이미지 넣은 것을 Plane에 끌어 넣고난 후,

이렇게 해서 타일링으로 이미지를 여러개 밀도있게 넣을 수 있다.

중력설정 후

플레이를 해주면 이제 unity 내부에 떠있던 도형이 땅에 떨어지는 모습을 볼 수 있다.


점심먹고왔음

Collder (collision 충돌) 설정해주기위해 이렇게 사용하는데 이는 운동학의 물리 개념을 구현시켜주기위하기 위함이다.

정역학, 동역학 설정

이곳에서의 static 설정을 해주면 된다. (움직이지 않는 것 - 배경 / 움직이는 것 - 캐릭터)

v는 정점을 찾아서 정점과 정점을 맞춰줄 때 쓰이는 단축키이다.

여기서 시야를 설정할 수 있다.

이제 작은 벽면을 세웠으니 그룹핑해서 자식으로 만들어주어 사용할 것이다.

새로 하나 만들어주자

새로 만든 empty 아래에 드래그앤드랍으로 넣어주면

부모자식관계로 그룹핑되어 사용할 수 있다.

중력의 방향 설정하ㅣ

apply prefeb / 최신버전이라 UI가 달라서였음


여기서 override 버튼 누르고나면 apply all버튼 있어서 다들 재설정할 수 있었음!
그리고 새로 만들어지는 prefeb에 대해서도 동일하게 적용시켰음

충돌영역 설정하기

이 때 충돌영역을 벽에 닿을 수 있도록 넓혀주어야 닿았을 때 부서진다.

이 때 wall을 구성하는 cube의 속성값

3차원 vector로 구성되어있다.

vector3.zero / vector3.right / vector3. forward ... 로 이뤄진다.



help에 있는

에서 addForce값을 검색해보면

복붙해줌

조금 수정
저장

여기서 이름 맞아야

이런 에러 없이 적용가능

이렇게 적용시킴(여기서는 중력이 아닌 force를 주는 기능을 하도록 넣은 것임)

그 외에도 코드에서 Vector3.back * thrust 등으로 값을 주면 됨

드래그 값 주면 공기저항이 달라져서 떨어지는 속도; 저항값이 달라져서 다른 결과값을 얻을 수 있다고 하시는데
여기서 drag값을 변경해서 해주어야함!!
그리고 mass는 질량값이다.

drag값이 클 수록 저항이 심해서 움직임이 지지부진할 거야.

반응형