문제해결

UI 크기에 Sprite Renderer 위치 맞추기

samosa 2024. 7. 22. 14:52
  • Sprite renderer (2D physics 사용 위해)
  • UI

두 시스템 간에 위치 정렬이 필요했다. 내가 하고 싶었던 것은.. 카메라에 렌더되는 최종 캔버스 겉면을 따라서 sprite renderer 충돌체가 정렬되는 것.

 

이게 뭐라고 완전 헤맸다.

orthographic size를 써야 한다.

 

   private void SetPosition()
        {
            var orthographicSize = Camera.orthographicSize * Camera.aspect;
            
            switch (positionType)
            {
                case PositionType.Left:
                    transform.position = new Vector3(-orthographicSize, transform.position.y, transform.position.z);
                    break;
                case PositionType.Right:
                    transform.position = new Vector3(orthographicSize, transform.position.y, transform.position.z);
                    break;
                case PositionType.Top:
                    transform.position = new Vector3(transform.position.x, Camera.orthographicSize, transform.position.z);
                    break;
                case PositionType.Bottom:
                    transform.position = new Vector3(transform.position.x, -Camera.orthographicSize, transform.position.z);
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }