문제: Cinemachine을 사용할 때 Virtual Camera를 캐릭터에서 오브젝트(모닥불)로 변경할 때 흔들림이 발생

  • 원인
    • Follow와 LookAt에 오브젝트를 넣을 때 해당 카메라가 따라가고, 바라보며 흔들리는 현상
  • 제약 및 현 상황
    • 한 번만 발생
    • Follow와 LookAt 둘 다 써야 조금 더 보기 좋은 상황, 즉, 둘 다 써야 함
    • Delay를 넣으면 미묘하게 느낌이 안 좋음
  • 해결
    • Follow와 LookAt을 따로 메소드로 변경
    • 우선도를 바꾸기 전에 전 단계(현재 케이스는 설치 결정 팝업 화면)에서 이미 해당 메소드를 실행
      • (기존 변경) 현재 Instantiate될 오브젝트를 카메라가 따라가고 있는데, 좌표 타일 자체를 따라가도록 변경
  • 추가
    • 오브젝트가 움직일 때(위치가 바뀔 때) Follow와 LookAt도 그대로 놔둔 채로 움직이면 흔들림이 발생
      • 어차피 방향이 정해졌다면 Follow만 처리해서 위치 변경
블로그 이미지

RIsN

,

목표: 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);
    }
}

 

블로그 이미지

RIsN

,