목표: 3D 카메라로 바라보는 3D 오브젝트의 위치에 UI 카메라 상의 캔버스에 이미지를 표시
>> 사용 이유: 내가 선호하는 구조가 3D 카메라와 UI카메라의 복합적인 구조
using System;
using UnityEngine;
public static class ToolCamera
{
public static Vector3 ConvertPosition3DTo2DLocal(this Camera _camera3D,
Camera _camera2D, Canvas _canvas, Vector3 _position3D)
{
// :: 3D 카메라에서의 3D 위치를 3D 카메라에서의 2D 위치로 변경
Vector3 position2Din3D = _camera3D.WorldToScreenPoint(_position3D);
// :: 3D 카메라에서의 2D 위치를 UI(2D) 카메라에서의 2D 로컬 위치로 변경
Vector2 result;
RectTransformUtility.ScreenPointToLocalPointInRectangle(
_canvas.transform as RectTransform, position2Din3D, _camera2D, out result);
// :: Z축은 0으로 고정
return new Vector3(result.x, result.y, 0);
}
}
'Unity' 카테고리의 다른 글
[Unity] UI가 카메라를 바라보게 만들기 (0) | 2023.01.18 |
---|---|
[Unity] TextMeshPro의 숫자 카운팅 애니메이션(올라가거나 내려가는 애니메이션 처리) (0) | 2023.01.17 |
[Unity] 2개의 애니메이션(감정 + 행동)을 동시에 실행하기 (0) | 2023.01.15 |
[Unity Error] Resources.LoadAll<Sprite> 가 작동을 안할 때 (0) | 2023.01.12 |
[Unity] GPGS 설치시 빌드가 안될 때: 성공 (0) | 2022.12.15 |