반응형
Unity에서는 C# 스크립트를 사용하여 오브젝트의 위치를 이동시킬 수 있습니다. 아래는 기본적인 방법입니다.
1. Transform 컴포넌트의 position 값을 변경
Transform 컴포넌트의 position 속성을 직접 변경하여 오브젝트의 위치를 이동시킬 수 있습니다.
using UnityEngine;
public class ObjectMover : MonoBehaviour
{
void Update()
{
transform.position = new Vector3(0, 1, 0);
}
}
위 코드는 매 프레임마다 오브젝트의 위치를 (0, 1, 0)으로 이동시킵니다.
2. Translate 메서드 사용
Transform 컴포넌트의 Translate 메서드를 사용하여 오브젝트를 상대적으로 이동시킬 수 있습니다.
Translate 메서드는 Transform 컴포넌트에서 제공하는 메서드로, 해당 오브젝트를 상대적으로 이동시킬 수 있습니다. 즉, 현재 위치를 기준으로 x, y, z 축 방향으로 상대적으로 이동시키는 것입니다.
Translate 메서드는 다음과 같은 매개 변수를 가집니다.
public void Translate(float x, float y, float z, [Space] Space relativeTo = Space.Self);
- x, y, z : 각 축 방향으로 이동할 양을 나타냅니다.
- relativeTo : 이동 방향을 설정합니다. 기본값은 Space.Self로, 현재 오브젝트를 기준으로 이동합니다. Space.World로 설정하면, 세계 좌표계를 기준으로 이동합니다.
예를 들어, 아래 코드는 매 프레임마다 오브젝트를 (0, 1, 0)만큼 상대적으로 이동시킵니다.
using UnityEngine;
public class ObjectMover : MonoBehaviour
{
void Update()
{
transform.Translate(0, 1, 0);
}
}
위 코드는 매 프레임마다 오브젝트를 (0, 1, 0)만큼 상대적으로 이동시킵니다.
이렇게 Translate 메서드를 사용하면, 좌표를 계산하지 않고도 쉽게 오브젝트를 이동시킬 수 있습니다.
3. Rigidbody 컴포넌트 사용
Rigidbody 컴포넌트를 사용하여 물리엔진에 의한 이동도 가능합니다.
using UnityEngine;
public class ObjectMover : MonoBehaviour
{
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
rb.MovePosition(transform.position + new Vector3(0, 1, 0));
}
}
위 코드는 FixedUpdate 함수에서 Rigidbody의 MovePosition 메서드를 사용하여 오브젝트를 (0, 1, 0)만큼 이동시킵니다.
위 방법들을 조합하여 다양한 이동 방법을 구현할 수 있습니다.
'Unity' 카테고리의 다른 글
Unity에서 오일러각과 쿼터니언 (0) | 2023.03.21 |
---|---|
Unity에서 게임 오브젝트 회전하는 방법 (0) | 2023.03.19 |
연산자란? 연산자 종류 - 단항 연산자, 이항 연산자, 삼항 연산자 (0) | 2023.03.16 |
Unity 코루틴 - Coroutine (0) | 2023.03.10 |
Unity 스크립트 실행 순서 설정 (0) | 2023.03.09 |