Unity/2
[Unity] Vector3.MoveTowards
조민상
2023. 12. 28. 18:21
Vector3.MoveTowards 는 현재 위치에서 목표 위치로 일정한 속도로 이동하는 함수이다. 현재 위치, 목표 위치, 속도를 인자로 넘겨주고 transform.position에 대입하면 된다. 속도 값이 작을 수록 빠르게 이동한다. 아래는 예제 코드이다.
public class MoveTowards : MonoBehaviour
{
Vector3 Target = new Vector3(1, 1, 0);
float Speed = 1f;
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, Target, Speed * Time.deltaTime);
}
}
이 함수를 이용하여, 오브젝트가 목표위치 네곳을 반시계 방향으로 반복적으로 돌아가는 코드를 만들어보았다.
public class MoveTowards : MonoBehaviour
{
Vector3 Target = new Vector3(0, 0, 0);
Vector3 Target2 = new Vector3(5, 0, 0);
Vector3 Target3 = new Vector3(5, 5, 0);
Vector3 Target4 = new Vector3(0, 5, 0);
float Speed = 1f;
void Start()
{
transform.position = Target;
}
void Update()
{
if(transform.position.x < 5 && transform.position.y == 0)
{
transform.position = Vector3.MoveTowards(transform.position, Target2, Speed * Time.deltaTime);
}
if(transform.position.x == 5 && transform.position.y < 5)
{
transform.position = Vector3.MoveTowards(transform.position, Target3, Speed * Time.deltaTime);
}
if(transform.position.x > 0 && transform.position.y == 5)
{
transform.position = Vector3.MoveTowards(transform.position, Target4, Speed * Time.deltaTime);
}
if(transform.position.x == 0 && transform.position.y > 0)
{
transform.position = Vector3.MoveTowards(transform.position, Target, Speed * Time.deltaTime);
}
}
}