본문 바로가기

Unity Basic/03. Unity C# script basic

Unity Basic ch. 11] 스크립트 Transform 구성요소 제어하기

게임 오브젝트의 구성요소 중에 Transform 이 있는데 이는 위치, 회전, 크기에 관한 정보를 가지고 있다.

 

 

1) Position 제어하기

-----------------------------------------

트랜스폼.포지션 = 백터값

=>

transform.position = new vector3(1,1,0);

-----------------------------------------

 

트랜스폼 포지션에 값을 넣어주려면 새로운 벡터값을 생성하고 넣어 주어야한다.

가독성을 높이기위해서 벡터 변수를 만들어서 넣을 수도 있다.

-----------------------------------------

백터3 백터이름 = 새로운백터생성(좌표값);

트랜스폼.포지션 = 백터이름;

=>

Vector3 vec = new Vector3(1,1,0);

transform.position = vec;

-----------------------------------------

 

Start() 함수에 넣어보자.

========================

public class PlayerMove : MonoBehaviour
{

    void Start()
    {
       Vector3 vec = new Vector3(1,1,0); 
       transform.position = vec;
    }

    void Update()
    {
       
    }
}

========================

 

저장하고, 플레이 버튼을 눌러보자.

 

플레이어가 1,1,0 위치로 이동하고 중력을 받아서 밑으로 떨어지는 것을 볼 수 있다.

 

**

transform.position은 정해진 좌표로 이동한다. 이번에는 만큼 이동하는 걸로 보자.

 

-----------------------------------------

백터3 백터이름 = 새로운백터생성(좌표값);

트랜스폼.트랜슬레이트 (백터이름);

=>

Vector3 vec = new Vector3(1,1,0);

transform.Translate (vec);

-----------------------------------------

 

========================

public class PlayerMove : MonoBehaviour
{

    void Start()
    {
       Vector3 vec = new Vector3(5,0,0); 
       transform.Translate (vec);
    }

    void Update()
    {
       
    }
}

========================

 

 

저장하고 현재 위치를 1,0,0으로 설정해보자.

 

플레이를 눌러보면 x값이 6이 되는것을 볼 수 있다. 

 

 

2) Rotation

-----------------------------------------

백터3 백터이름 = 새로운백터생성(좌표값);

트랜스폼.회전 (백터이름);

=>

Vector3 vec = new Vector3(0,30,0);

transform.rotation = Quaternion.Euler(vec); 

-----------------------------------------

 

========================

public class PlayerMove : MonoBehaviour
{

    void Start()
    {
       Vector3 vec = new Vector3(0,30,0); 
       transform.rotation = Quaternion.Euler(vec); 
    }

    void Update()
    {
       
    }
}

========================

 

플레이 버튼을 눌러보면  Rotation.y가 30이 되는걸 볼 수 있다.

 

 

*** 상대값 로데이션

 

-----------------------------------------

백터3 백터이름 = 새로운백터생성(좌표값);

트랜스폼.회전 (백터이름);

=>

Vector3 vec = new Vector3(0,30,0);

transform.Rotate(vec);

-----------------------------------------

 

========================

public class PlayerMove : MonoBehaviour
{

    void Start()
    {
       Vector3 vec = new Vector3(0,30,0); 
       transform.Rotate(vec);
    }

    void Update()
    {
       
    }
}

========================

 

로테이션에 y값을 10으로 넣고 실행해보자.

플레이 버튼을 누르면 로테이션이 변경되있는것을 확인 할 수 있다.

 

 

3) Scale 

 

-----------------------------------------

백터3 백터이름 = 새로운백터생성(좌표값);

트랜스폼.스케일 (백터이름);

=>

Vector3 vec = new Vector3(0,30,0);

transform.localScale = vec;

-----------------------------------------

 

========================

public class PlayerMove : MonoBehaviour
{

    void Start()
    {
       Vector3 vec = new Vector3(10,10,0); 
       transform.localScale = vec;
    }

    void Update()
    {
       
    }
}

========================

 

플레이 버튼을 눌러보면 스케일이 10,10으로 변한것을 볼 수 있다.

 

 

이번시간에는 Transform에 대해서 살펴 봤다.

많이 유용한 내용들이니 복붙해서 유용하게 사용하길 바랍니다.