본문 바로가기
UNITY/Basic

Throw

by neohtux 2016. 12. 28.
728x90

게임 오브젝트에 힘을 줘서 움직임을 만드는 방법. 


게임 오브젝트에 힘을 주어 움직임을 만들려면 해당 게임 오브젝트에 물리 작용을 처리할 리지드바디(Rigdbody)


컴포넌트가 필요.



[참고]

6번재 줄의 힘을 달리하면 가해지는 힘의 양을 조절 하여 날아가는 거리를 조절 할 수 있다.


9번째줄의 백터값 또한 16번째줄의 힘과 백터값을 곱하기때문 날아가는 거리를 조절 할 수 있다.


Vector3(각 x, y, z 축 방향) 


위 코드는 800을 각 x , y 축으로 기존의 힘의 반으로 400의 힘으로 x, y 축으로 해당 오브젝트에 힘을가함.

[참고]


GetComponent로 Rigidbody를 불러와 AddForce 함수를 참조하여 AddForce의 매개변수에 연산된 백터 값을 넣어주면


해당 스크립트를 컴포넌트로 갖는 게임 오브젝트가 반응함.


아래는 캡슐모양의 게임오브젝트를 예로듬.


(첫 화면)


(마우스 왼쪽 버튼을 눌렀을 경우)


(종료)





※ FixedUpdate


 - Update 메서드는 기기의 성능차에 따라 프레임 사이에 호출되는 시간이 차이가 날 수 있다. 


그래서, 이동 계산을 적용 할 때 타임(Time.deltaTime) 값을 곱했었지만, FixedUpdate는 프레임 속도와는 독립적으로


신뢰할 수 있는 타이머에서 호출되기 때문 고정된 시간마다 호출되게 설계되어 있다.



그래서 유니티에서는 화면을 그리는(렌더링) 작업은 Update에서 처리하고 


물리 엔진 작업은FixedUpdate에서 별개로 처리한다.


기기의 성능차에 따라 프레임 속도가 낮더라도 실제로 물리적 계산은 일어나야 하기 때문이다.




※ GetComponent< >


 - 게임 오브젝트의 컴포넌트를 스크립트에서 코드로 가져오기 위한 메서드.


 ex) GetComponent <가져오고 싶은 컴포넌트 이름>


 GetComponent<Rigidbody>() 이렇게 하면 인스펙터 뷰의 리지드바디 컴포넌트를 가져오는 것.



300x250

'UNITY > Basic' 카테고리의 다른 글

Vector3의 magnitude와 normalized  (0) 2020.06.30
Jump  (0) 2016.12.28
identity(회전 일치)  (0) 2016.12.27
Rotate  (0) 2016.12.27
Player basic move  (0) 2016.11.21

댓글