Vector3.magnitude는 벡터의 길이(크기)를 나타내는 속성입니다. 벡터의 길이는 원점(0,0,0)에서 해당 벡터가 가리키는 점까지의 거리로 정의됩니다. 이는 벡터의 각 성분(x, y, z)의 제곱 합의 제곱근으로 계산됩니다.
벡터의 크기를 계산하고, 이를 이용한 다양한 작업을 이해하기 위한 예제 코드를 살펴보겠습니다.
using UnityEngine;
public class VectorMagnitudeExample : MonoBehaviour
{
void Start()
{
// 벡터 정의
Vector3 vector = new Vector3(3, 4, 0);
// 벡터의 크기 계산
float magnitude = vector.magnitude;
// 결과 출력
Debug.Log("Vector: " + vector);
Debug.Log("Magnitude: " + magnitude);
}
}
위 코드는 (3, 4, 0) 벡터의 크기를 계산합니다. 이 벡터는 3-4-5 삼각형과 같기 때문에, 크기는 5가 됩니다.
정규화는 벡터의 방향은 유지하면서 길이를 1로 만드는 작업입니다. 정규화된 벡터는 단위 벡터라고도 합니다.
using UnityEngine;
public class NormalizeVectorExample : MonoBehaviour
{
void Start()
{
// 벡터 정의
Vector3 vector = new Vector3(3, 4, 0);
// 벡터 정규화
Vector3 normalizedVector = vector.normalized;
// 정규화된 벡터의 크기 계산
float normalizedMagnitude = normalizedVector.magnitude;
// 결과 출력
Debug.Log("Original Vector: " + vector);
Debug.Log("Normalized Vector: " + normalizedVector);
Debug.Log("Magnitude of Normalized Vector: " + normalizedMagnitude);
}
}
위 코드는 (3, 4, 0) 벡터를 정규화하여 방향은 유지하되 길이를 1로 만듭니다. 정규화된 벡터의 크기는 항상 1입니다.
아래 코드는 플레이어가 대각선으로 이동할 때 속도가 너무 빠른 문제를 해결하기 위해 벡터를 정규화하여 일관된 이동 속도를 유지합니다.
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f;
private Rigidbody rb;
private float horizontal;
private float vertical;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
}
void FixedUpdate()
{
Vector3 moveInput = new Vector3(horizontal, 0.0f, vertical);
// 벡터의 크기를 체크하고 1보다 크면 정규화
if (moveInput.magnitude > 1)
{
moveInput = moveInput.normalized;
}
Vector3 newPosition = rb.position + moveInput * moveSpeed * Time.fixedDeltaTime;
rb.velocity = Vector3.zero;
rb.MovePosition(newPosition);
}
}
이 예제들은 Vector3.magnitude와 정규화의 개념을 이해하고, 실용적인 게임 개발 작업에 적용하는 방법을 보여줍니다.
절차적 맵 생성 (0) | 2024.07.19 |
---|---|
UI - 캐릭터 HP 바 만들기 (0) | 2024.07.19 |
리지드바디 MovePosition() 캐릭터 이동 및 점프 구현 (0) | 2024.07.17 |
유니티 캐릭터 자동회전 방지, 물체 확인용 레이 그리기 (0) | 2024.07.17 |
유니티 캐릭터 트레일 효과 만들기, 분신 효과 (1) | 2024.07.14 |