유니티 물체이동시키기

2020. 4. 21. 16:58유니티실습

반응형

안녕하세요 유니터 비기너입니다.

이번 글에선 물체를 이동시키는 몇가지 방법에 대해 다뤄보겠습니다.

 

Input.getKey

식별된 키를( ※ Keycode.W) 누르고있는동안 true 값을 반환하는 함수로

특정키를 입력받고 처리할 때 주로 사용합니다.

 

vector3(x,y,z)

백터란 방향과 크기를 포함한 단어이며 백터3는 3차원 백터를 표시한다는 것입니다.

vector3(0, 1, 0)에 의미를 해석해본다면 y방향으로 1만큼의 크기를 갖고있다고 할 수 있습니다.

vector3.up 

Y 방향의 1의 크기를 갖고있습니다. vector3(0, 1, 0)

vector3.down 

Y 방향의 -1의 크기를 갖고있습니다. vector3(0, -1, 0)

vector3.left

X 방향의 -1의 크기를 갖고있습니다. vector3(-1, 0, 0)

 

vector3.right

X 방향의 1의 크기를 갖고있습니다. vector3(1, 0, 0)

 

transform.position 예제

void Udpate()
{
    
    if (Input.GetKey(KeyCode.W)) {
        transform.position += Vector3.up * Time.deltaTime;
    }

    if (Input.GetKey(KeyCode.S)) {
        transform.position += Vector3.down * Time.deltaTime;
    }

    if (Input.GetKey(KeyCode.A)) {
        transform.position += Vector3.left * Time.deltaTime;
    }

    if (Input.GetKey(KeyCode.D)) {
        transform.position += Vector3.right * Time.deltaTime;
    }
}

transform.position

유니티 에디터 월드공간에서 오브젝트의 좌표를 나타내며 위의 스크립트 구현내용과 같이
백터의 힘을 작용시키면 입력 된 방향과 크기만큼 물체 이동이 가능합니다.

 transform.Translate 예제

void Udpate()
{
    
    if(Intput.GetKey(KeyCode.W)) {
    	transform.Translate(Vector.up * Time.deltaTime, Camera.main.transform);
    }
    
    if(Intput.GetKey(KeyCode.S)) {
    	transform.Translate(Vector.down * Time.deltaTime, Space.World);
    }
    
    if(Intput.GetKey(KeyCode.A)) {
    	transform.Translate(Vector.left * Time.deltaTime, Space.Self);
    }
    
    if(Intput.GetKey(KeyCode.D)) {
    	transform.Translate(Vector.right * Time.deltaTime);
    }
}

 

transform.Tranlate(vector3, space)

transform.position과 동일하게 방향과 크기를 적용받아 물체를 이동하지만
좌표계(camera, world, local)의 기준으로 상대적으로 이동한다는게 차이점이다.

 

위와 같은 방식을 응용하여 슈팅게임의 비행물체를 키 입력을 받아서 이동시키는 것이 가능하며

이외에도 정말 많고 다양한 방식으로 물체를 이동시킬 수 있습니다.

 

마지막으로 물체를 이동하기 위해선 이동할 대상과, 백터의 방향과 크기를 부여하여

이동이 가능하다는 사실한가지를 꼭 파악하고 가셨으면 좋겠습니다.

 

지금까지 읽어주신 분들에게 감사드리고

좀 더 좋은 정보로 다시 뵙겠습니다. 

감사합니다.

 


https://play.google.com/store/apps/details?id=com.NeighborGamer.escape

 

패러디방탈출 캐리비안의해적 - Google Play 앱

※게임방법※ - 주위에 단서들을 획득하세요. - 퀴즈를 풀어 단서를 획득하세요. - 단서를 사용하여 방을 탈출하세요. - 힌트를 사용하여 막혔던 문제를 해결해보세요.

play.google.com

반응형