Vector3은 3D 게임을 만들 때 오브젝트의 위치를 x, y, z로 설정할 때 사용하는 구조체이다.
Vector2는 2D 게임을 만들 때 오브젝트의 위치를 x, y로 설정할 때 사용하는 구조체이다.
(구조체는 클래스처럼 변수와 메서드를 하나로 합친 구조로, 클래스보다 사용할 수 있는 기능이 제한되는 대신 빠르게 동작한다.)
Vector3 기본구조는 아래와 같다.
class Vector3
{
public float x;
public float y;
public float z;
//Vector용 멤버 메서드
}
Vector3과 Vector2는 좌표나 벡터로 사용될 수 있다.
만약 (1, 3) 이라는 좌표로 사용되었다면 오브젝트가 (1, 3) 위치에 배치된다.
반약 (1, 3) 이라는 벡터로 사용되었다면 오브젝트다 (1, 3) 위치로 움직인다.
Vector3는 Vector3.one, Vector3.zero, Vector3.up, Vector3.right, Vector3.left, Vector3.down 등의 변수가 있다.
Vector.one은 (1,1,1)을 의미하고, Vector.up은 (0,1,0) 점프할 때 주로 이용되어 편리하게 사용된다.
Vector2 에서 좌표는 덧셈이나 뺄셈을 통해 오브젝트를 양수나 음수 방향으로 이동할 수 있다.
양수방향으로 이동하는 예시를 들어보면 아래와 같다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
Vector2 playerPos = new Vector2(1.0f, 2.0f);
playerPos.x += 3.0f;
playerPos.y += 5.0f;
Debug.Log(playerPos);
}
}
결과 : 4.0, 7.0
변수 playerPos 의 위치 (x, y)를 (1.0, 2.0)으로 초기화 한 다음 (3.0, 5.0) 만큼 이동한다.
다음으로 뺄셈 예시를 들어보면
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
Vector2 startPos = new Vector2(1.0f, 2.0f);
Vector2 endPos = new Vector2(10.0f, 7.0f);
Vector2 dis = endPos - startPos;
Debug.Log(dis);
float leng = dis.magnitude;
Debug.Log(leng);
}
void Update()
{
}
}
결과 : (9.0, 5.0), 10.29563
* 참고로 magnitude는 vector2 클래스가 가지고 있는 멤버변수로, 벡터의 길이를 나타낸다.
'유니티 C# > C#' 카테고리의 다른 글
C#기초 - ToString 메서드 뜻 및 사용방법 (0) | 2023.07.18 |
---|---|
C#기초 - Rotate와 Translate 메서드 뜻 및 예시 (0) | 2023.07.06 |
C#기초 - 콜론(:)을 통한 상속(inheritance) 기능 사용 (0) | 2023.05.14 |
C#기초 - get과 set 접근자의 사용 (0) | 2023.05.14 |
C#기초 - 클래스 사용법 (0) | 2023.05.11 |
댓글