본문 바로가기

유니티

[유니티] 캔버스를 부모로 설정시 Transform이 바뀌는 문제 해결

[부모 설정]

[문제]

오브젝트를 생성하여 캔버스를 부모로 지정할때 Transform의 값이 0,0,0이 아닌 캔버스의 posX,posY를 -로 바꾼 값으로 나왔다 .  새로 생긴 UI 가 캔버스의 중앙에 오지 않고 왼쪽 하단으로 가게 되었다 .

캔버스
자식의 Transform
문제상황

[해결]

부모를 설정시 원래 World Position을 사용하지 않게 한다 .

부모를 설정해주는 SetParent의 설명을 보면 , 부모외에 인자가 하나 존재한다 .

public void SetParent ( Transform Parent , bool worldPositionStays );

worldPositionStays는 true인 경우 개체가 이전과 동일한 World Space상의 위치, 회전 및 크기를 유지하도록

부모에 상대적이게 위치, 크기 및 회전이 수정된다 . 해당 값의 디폴트 매개변수는 true이다 .

 

해당 값을 false로 두면 원래 가지고 있던 값인 0,0,0으로 설정됨을 볼 수 있다 .

 transform.SetParent ( Parent , false );

 

출처

유니티 Document - SetParent