+ 전투에서 사용되는 Item 오브젝트의 InteractionUi의 camera를 UiCamera로 연동 + Item의 드랍 방식을 같은 위치에서 랜덤한 위치로 흩뿌리는 방식으로 변경 + 술통, 쓰레기통 상호작용 추가 + 손님이 음료를 요구할 때, 음료 전달 기능 추가 + 가구 Opaque Unlit으로 재질 변경
80 lines
2.0 KiB
C#
80 lines
2.0 KiB
C#
using Sirenix.OdinInspector;
|
|
using Unity.Cinemachine;
|
|
using UnityEngine;
|
|
|
|
namespace BlueWater
|
|
{
|
|
public class CombatCameraManager : Singleton<CombatCameraManager>
|
|
{
|
|
// Components
|
|
#region Components
|
|
|
|
[Title("카메라")]
|
|
[SerializeField]
|
|
private Transform _cinemachineCameras;
|
|
|
|
[field: SerializeField]
|
|
public CinemachineCamera BaseCombatCamera { get; private set; }
|
|
|
|
public Camera MainCamera { get; private set; }
|
|
public Camera UiCamera { get; private set; }
|
|
|
|
#endregion
|
|
|
|
// Unity events
|
|
#region Unity events
|
|
|
|
protected override void OnAwake()
|
|
{
|
|
Initialize();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
if (!GameManager.Instance) return;
|
|
|
|
GameManager.Instance.OnInstantiatePlayer += SetFollow;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
if (!GameManager.Instance) return;
|
|
|
|
GameManager.Instance.OnInstantiatePlayer -= SetFollow;
|
|
}
|
|
|
|
#endregion
|
|
|
|
// Initialize methods
|
|
#region Initialize methods
|
|
|
|
private void Initialize()
|
|
{
|
|
_cinemachineCameras = GameObject.Find("CinemachineCameras").transform;
|
|
BaseCombatCamera = _cinemachineCameras.Find("BaseCombatCamera").GetComponent<CinemachineCamera>();
|
|
|
|
BaseCombatCamera.Priority = 1;
|
|
|
|
MainCamera = GetComponent<Camera>();
|
|
UiCamera = MainCamera.transform.Find("UiCamera").GetComponent<Camera>();
|
|
}
|
|
|
|
#endregion
|
|
|
|
// Methods
|
|
#region Methods
|
|
|
|
public void SetFollow(Transform target)
|
|
{
|
|
BaseCombatCamera.Follow = target;
|
|
}
|
|
|
|
// public void SetFollowAndLookAt(Transform target)
|
|
// {
|
|
// BaseCombatCamera.Follow = target;
|
|
// BaseCombatCamera.LookAt = target;
|
|
// }
|
|
|
|
#endregion
|
|
}
|
|
} |