유니티:힘으로 오브젝트 이동: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
(새 문서: {{유니티}} == 개요 == 플레이어가 직접 조작할 수도 있지만, 외부의 힘으로 인해 물체가 이동하기도 한다. 자연스러운 물리적 움직임을 만...) |
잔글편집 요약 없음 |
||
1번째 줄: | 1번째 줄: | ||
{{유니티}} | {{유니티}} | ||
== 개요 == | ==개요== | ||
플레이어가 직접 조작할 수도 있지만, 외부의 힘으로 인해 물체가 이동하기도 한다. 자연스러운 물리적 움직임을 만들기 위해 힘에 반응하게끔 만들어보자. | 플레이어가 직접 조작할 수도 있지만, 외부의 힘으로 인해 물체가 이동하기도 한다. 자연스러운 물리적 움직임을 만들기 위해 힘에 반응하게끔 만들어보자. | ||
17번째 줄: | 17번째 줄: | ||
</syntaxhighlight>GetComponent<> //이건 자신 내부의 컴포넌트를 가져온다는 의미이다. 꺽쇠 안에 그 컴포넌트를 넣는다. | </syntaxhighlight>GetComponent<> //이건 자신 내부의 컴포넌트를 가져온다는 의미이다. 꺽쇠 안에 그 컴포넌트를 넣는다. | ||
=== tip === | ===tip=== | ||
물리현상 관련 명령은 FixedUpdate() 내에 사용하는 것이 권장된다. | 물리현상 관련 명령은 FixedUpdate() 내에 사용하는 것이 권장된다. | ||
<br /> | <br /> | ||
== 힘 가하기 == | ==힘 가하기== | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
public class 함수명:MonoBehaviour { | public class 함수명:MonoBehaviour { | ||
54번째 줄: | 54번째 줄: | ||
|} | |} | ||
=== 이동할 때 힘이 자연스레 발생하게끔. === | ===이동할 때 힘이 자연스레 발생하게끔.=== | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
변수=GetComponent<Rigidbody>(); //변수 초기화함. | 변수=GetComponent<Rigidbody>(); //변수 초기화함. | ||
67번째 줄: | 67번째 줄: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 회전에 대한 고려(토크) === | ===회전에 대한 고려(토크)=== | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
변수.AddTorque(벡터, 옵션?); //옵션이 있을까? | 변수.AddTorque(벡터, 옵션?); //옵션이 있을까? | ||
</syntaxhighlight>축에 따른 회전을 만들어낸다.(물리적인 회전과 반대방향이다. ex) y축에 대해 회전한다는 명령은 물리에서 -y의 회전을 만들어낸다.) | </syntaxhighlight>축에 따른 회전을 만들어낸다.(물리적인 회전과 반대방향이다. ex) y축에 대해 회전한다는 명령은 물리에서 -y의 회전을 만들어낸다.) |
2020년 9월 7일 (월) 21:25 기준 최신판
- 유니티:개요
- 유니티:기본 조작
- 유니티:카메라
- 유니티:오브젝트
- 유니티:코딩기초
- 유니티:UI
- 유니티:게임 내 화면
- 유니티:플레이어
- 유니티:맵
- 유니티:씬
- 유니티:몬스터
- 유니티:아이템
- 유니티:음향
- 유니티:빌드
- 유니티:VR
- 유니티:팁
개요[편집 | 원본 편집]
플레이어가 직접 조작할 수도 있지만, 외부의 힘으로 인해 물체가 이동하기도 한다. 자연스러운 물리적 움직임을 만들기 위해 힘에 반응하게끔 만들어보자.
입력에 따라 물체가 특정방향성의 속도를 갖게 할 수도 있지만, 물체와의 상호작용을 위해 힘이 발생하게 하는 편이 자연스럽다.
RigidBody에 집중한다.
스크립트를 만든 후 RigidBody 컴포넌트를 변수화 하여 사용해야 한다.
public class 함수명:MonoBehaviour {
Rigidbody 변수명;
void Start(){
변수=GetComponent<Rigidbody>(); //변수 초기화함. 컴포넌트를 가져온다는 의미.
변수.velocity=new Vector3(1, 2, 3); //초기 속력을 정의할 수 있다.
......}
GetComponent<> //이건 자신 내부의 컴포넌트를 가져온다는 의미이다. 꺽쇠 안에 그 컴포넌트를 넣는다.
tip[편집 | 원본 편집]
물리현상 관련 명령은 FixedUpdate() 내에 사용하는 것이 권장된다.
힘 가하기[편집 | 원본 편집]
public class 함수명:MonoBehaviour {
Rigidbody 변수명;
void Start(){
변수=GetComponent<Rigidbody>(); //변수 초기화함.
변수.AddForce(벡터)
변수.AddForce(벡터, 옵션)
무게가 클 수록 더 큰 힘을 가해주어야 움직인다.
옵션 | 설명 | ||
---|---|---|---|
ForceMode.Impulse | 점프할 때, 이동할 때 다양하게 사용. | ||
이동할 때 힘이 자연스레 발생하게끔.[편집 | 원본 편집]
변수=GetComponent<Rigidbody>(); //변수 초기화함.
변수.AddForce(벡터)
void FixedUpdate() {
if(Input.GetButtonDown("조작") (
Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal"),
0,
Input.GetAxisRaw("Horizontal")) //키를 누르는 길이에 따라 달리 작용하게.
변수.AddForce(vec, 옵션)
회전에 대한 고려(토크)[편집 | 원본 편집]
변수.AddTorque(벡터, 옵션?); //옵션이 있을까?
축에 따른 회전을 만들어낸다.(물리적인 회전과 반대방향이다. ex) y축에 대해 회전한다는 명령은 물리에서 -y의 회전을 만들어낸다.)