[Unity] Vector의 Set()으로 수정이 안 됐던 이유
유니티 개발을 진행하다 보면, 게임 오브젝트를 움직이거나 회전하는 등 벡터(Vector)를 조작할 일이 많습니다. 그런데, 쓰다보니 Set() 함수가 적용이 안 되는 것을 여러 번 확인한 적이 있었습니다. float x = ... float y = ... float z = ... ... transform.position.Set(x, y, z); // 동작하지 않음 왜 바뀌지 않을까요? 정답은 Vector는 구조체(struct)이므로 value type이기 때문입니다. 값 형식은 스택(stack)에 저장되며, 블록(block)이 끝나는 순간 메모리를 자동 반납하여 사라집니다. 제일 결정적으로 원본이 전달되는 것이 아니라 복사본이 전달된다는 게 큰 특징이구요. transform.position의 구현 부분을..