유니티:힘으로 오브젝트 이동: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
(새 문서: {{유니티}} == 개요 == 플레이어가 직접 조작할 수도 있지만, 외부의 힘으로 인해 물체가 이동하기도 한다. 자연스러운 물리적 움직임을 만...)
 
잔글편집 요약 없음
 
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 기준 최신판

틀:유니티

  1. 유니티:개요
  2. 유니티:기본 조작
    1. 유니티:에셋스토어
  3. 유니티:카메라
  4. 유니티:오브젝트
    1. 유니티:데이터 입력받기
    2. 유니티:오브젝트 이동(오브젝트 조작)
    3. 유니티:힘으로 오브젝트 이동
    4. 유니티:충돌 이벤트
    5. 유니티:오브젝트 작성 tip
    6. 유니티:프리팹
  5. 유니티:코딩기초
    1. 유니티:C sharp 코딩 편의기능
    2. 유니티:MonoBehaviour
    3. 유니티:이벤트 메서드
    4. 유니티:컴포넌트 조작하기
  6. 유니티:UI
  7. 유니티:게임 내 화면
  8. 유니티:플레이어
    1. 유니티:모델
    2. 유니티:캐릭터 이동
    3. 유니티:애니메이션
    4. 유니티:주인공 시점
  9. 유니티:맵
    1. 유니티:투명한 벽 만들기
    2. 유니티:내비게이션
  10. 유니티:씬
  11. 유니티:몬스터
  12. 유니티:아이템
  13. 유니티:음향
    1. 유니티:배경음
    2. 유니티:효과음
  14. 유니티:빌드
  15. 유니티:VR
    1. 유니티:VR:UI
    2. 유니티:VR:VR로 변환
  16. 유니티:팁

개요[편집 | 원본 편집]

플레이어가 직접 조작할 수도 있지만, 외부의 힘으로 인해 물체가 이동하기도 한다. 자연스러운 물리적 움직임을 만들기 위해 힘에 반응하게끔 만들어보자.

입력에 따라 물체가 특정방향성의 속도를 갖게 할 수도 있지만, 물체와의 상호작용을 위해 힘이 발생하게 하는 편이 자연스럽다.

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의 회전을 만들어낸다.)