2026-03-16 18:00 FPS 스타일의 정면 고정 이동 80% - 카메라Rig를 통한 aim카메라 전환 진행중

This commit is contained in:
2026-03-16 18:04:25 +09:00
parent 9171033db8
commit e52c17f322
9 changed files with 163 additions and 32 deletions

View File

@@ -0,0 +1,48 @@
using System.Collections.Generic;
using Unity.Cinemachine;
using UnityEngine;
public abstract class CameraRigBase : CinemachineCameraManagerBase, IInputAxisOwner
{
protected PlayerCharacterController _controller;
protected abstract IReadOnlyList<CinemachineVirtualCameraBase> CameraCandidates { get; }
protected virtual void Awake()
{
}
protected override void Start()
{
base.Start();
}
protected abstract override CinemachineVirtualCameraBase ChooseCurrentCamera(Vector3 worldUp, float deltaTime);
public virtual void GetInputAxes(List<IInputAxisOwner.AxisDescriptor> axes)
{
}
//우선순위 제일 높은 카메라를 가져옴
protected CinemachineVirtualCameraBase GetHighestPriorityCamera()
{
// 자식에서 할당한 카메라들
IReadOnlyList<CinemachineVirtualCameraBase> candidates = CameraCandidates;
if (candidates == null) return null;
CinemachineVirtualCameraBase highest = null;
float maxPrio = float.MinValue;
foreach (CinemachineVirtualCameraBase cam in candidates)
{
if (cam != null && cam.Priority.Value > maxPrio)
{
maxPrio = cam.Priority.Value;
highest = cam;
}
}
return highest;
}
}