Paradox Simulation

728x90
반응형

Unity에서 유닛(Player)가 움직이려면 입력을 잘 넣어줘야한다.

 

기초적으로는 다음과 같이 넣을 수 있다.

 

if(Input.GetKey(KeyCode.UpArrow) == true){
    playerRigidbody.AddForce(0f, 0f, speed);
}
if(Input.GetKey(KeyCode.DownArrow) == true){
    playerRigidbody.AddForce(0f, 0f, -speed);
}
if(Input.GetKey(KeyCode.RightArrow) == true){
    playerRigidbody.AddForce(speed, 0f, 0f);
}
if(Input.GetKey(KeyCode.LeftArrow) == true){
    playerRigidbody.AddForce(-speed, 0f, 0f);
}

말그대로 script에 UpArrow, DownArrow.. 이런식으로 키를 하나하나 배정해준다.

Input .GetKey 안에 있는 키코드를 통하여 true의경우는 입력이 됐을때이다.

 

Rigidbody 에 해당하는 속력같은것들은 다음과 같이 정의했다.

 

    private Rigidbody playerRigidbody; // 이동에 사용할 리지드 바디 컴포넌트
    public float speed = 8f; // 플레이어 이동 속력

해당 정의한 내용을 토대로 하이어라키에 적용해보자.

 

 

하이어라키에 Player를 넣고,

 

 

Rigidbody를 추가하자.

 

추가방법은

 

다음과같이 Add Component 부분을 클릭하여 Rigidbody 를 검색하면된다.

 

 

스크립트 적용한 프로젝트 파일에서 스크립트를 Player부분으로 드래그 해보자.

 

해당 플레이어에 스크립트가 적용된다.

 

물론 스크립트 내용중에 다음과같이 작성하면 빠르게 진행된다.

 

    void Start()
    {
        playerRigidbody = GetComponent<Rigidbody>();
    }

(어떤 리지드바디를 적용할것인지 Component를 가져오는 방법임.)

 

그러면 이제 이동을 할 수 있게 된다.

 

물론 이런 방법도 있지만, 추가적인 방법이있다.

 

우선 우리는 평면적으로 움직임을 구현하려고 하는 프로젝트이기 때문에,

 

        float xInput = Input.GetAxis("Horizontal");
        float zInput = Input.GetAxis("Vertical");

        float xSpeed = xInput * speed;
        float zSpeed = zInput * speed;

        Vector3 newVelocity = new Vector3(xSpeed, 0f, zSpeed);

        playerRigidbody.velocity = newVelocity;

해당 구문을 Update부분에 넣어보자.

 

GetAxis의 경우엔 미리 프로젝트에 설정된 경로에 지정되어있다.

 

Unity - Edit - Project Settings - Input Manager를 보면 Horizontal, Vertical .. 이런것들을 어떤 키로 이용할지 정의되어있다.

(기초 세팅값은 화살표키와 보조키 WASD 로 이동한다)

728x90
반응형

'DEV > Unity' 카테고리의 다른 글

Unity 게임 개발 공부 1 - Rotate 관련해서  (0) 2024.04.21
250x250
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band