고민했던 부분입니다. GPT가 도와주어서 이해했습니다 하지만 GPT에 대한 저의 믿음이 부족해서 제가 이해한 것이 맞는지 다시 한번 질문드리게 되었습니다!
childTransform.position = new Vector3(0, -1, 0);
위 코드에서, childTransform은 참조 타입이고 new Vector3는 구조체로 값 타입이다.
불가능하다. 하지만 childTransform이라는 변수는 Transform 타입을 할당한 변수이며, transform 컴포넌트의 “.position” 은 Vector3를 속성으로 가진다. 즉 childTransform.position은 값 타입이다. 참조 타입의 속성이 값 타입인 경우 문제가 발생하지 않는다.
그렇기에 같은 값 타입은 Vector3를 할당해도 문제가 발생하지 않는다. 다른 방법으로는 다음과 같은 방법이 있다.
// 값 타입을 참조 타입으로 감싸는 변환
Transform myTransform = new GameObject().transform;
Vector3 position = new Vector3(1, 2, 3);
myTransform.position = position;
Transform myTransform = new GameObject().transform;
Transform TargetTransform = new GameObject().transform;
myTransform.position = TargetTransform.position;
참조와 값 타입의 변환 규칙을 이용하여 할당한 방법이다.
위 정리가 맞는지 질문 드리고 싶습니다!
또한 추가적으로 알아두면 좋은 부분을 작성해 주신다면 감사하겠습니다!
Comment
int, float, vector3,
gameo ,transfrom