728x90
유니티에는 크게 2가지 Data Type이 있는데 Value Type과 Reference Type으로 나뉜다.
Value는 특정 값을 가지는 반면, Reference는 Value값이 저장된 메모리의 주소를 가진 형태이다.
이 두 가지 타입의 차이는 데이터를 copy할 때 나타나는데,
Value타입은 변수를 복사한 후 복사본을 사용해도 원본 변수에 아무 영향을 미치지 못하지만,
Reference타입은 복사 시 메모리 주소 전체를 가지여고 때문에 데이터 수정 시 원본에까지 영향을 미친다.
Value Type의 경우,
pos는 Vector3 데이터 타입이기 때문에 trasform.position 변수에 아무런 영향을 주지 못하고,
결과적으로 transform에도 변화가 없다. 스크립트를 적용 후 유니티에서 플레이할 경우 오브젝트가 이동하지 않는다.
Reference Type의 경우,
tran이라는 이름을 가진 Transform 객체의 메모리 주소를 가져와 데이터를 수정하기 때문에
원본 transform의 position 값이 변하게 된다. 스크립트를 적용 후 유니티에서 플레이할 경우 오브젝트가 이동된다.
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/built-in-types
728x90
'게임 프로그래밍 > C#' 카테고리의 다른 글
C# 유니티 함수 Invoke & InvokeRepeating (0) | 2021.08.04 |
---|---|
C# 유니티 함수 Instantiate (0) | 2021.08.03 |
C# 유니티 DeltaTime (0) | 2021.08.03 |
C# 유니티 함수 GetAxis & GetAxisRaw 특징 비교 (0) | 2021.08.03 |
C# 유니티 함수 Destroy (0) | 2021.07.29 |