camera_system #5
@ -4889,63 +4889,6 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 04cb72fe661fd534b950283199ac4a83, type: 3}
|
m_Script: {fileID: 11500000, guid: 04cb72fe661fd534b950283199ac4a83, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
--- !u!1001 &1922601885
|
|
||||||
PrefabInstance:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Modification:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransformParent: {fileID: 0}
|
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: 3914215459674519121, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: GameManager
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7699237936705830620, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
|
||||||
m_RemovedGameObjects: []
|
|
||||||
m_AddedGameObjects: []
|
|
||||||
m_AddedComponents: []
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 9f16b0b665c13444aaced76f8dfe3136, type: 3}
|
|
||||||
--- !u!114 &1926192729
|
--- !u!114 &1926192729
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -32569,9 +32512,9 @@ GameObject:
|
|||||||
- component: {fileID: 5019153103791118558}
|
- component: {fileID: 5019153103791118558}
|
||||||
- component: {fileID: 3688312069522590479}
|
- component: {fileID: 3688312069522590479}
|
||||||
- component: {fileID: 6463147863076644390}
|
- component: {fileID: 6463147863076644390}
|
||||||
- component: {fileID: 3956599978295396428}
|
- component: {fileID: 6463147863076644391}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: BaseCam
|
m_Name: RestaurantBaseCamera
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@ -40437,20 +40380,6 @@ Transform:
|
|||||||
- {fileID: 4542424994289489336}
|
- {fileID: 4542424994289489336}
|
||||||
m_Father: {fileID: 7160408128829955619}
|
m_Father: {fileID: 7160408128829955619}
|
||||||
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
|
||||||
--- !u!114 &3956599978295396428
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 3015334612608266903}
|
|
||||||
m_Enabled: 0
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 4d75924d76b05344aa410607bc57db98, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
BoundingVolume: {fileID: 0}
|
|
||||||
SlowingDistance: 0
|
|
||||||
--- !u!4 &3964656713841077124
|
--- !u!4 &3964656713841077124
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -62175,6 +62104,19 @@ MonoBehaviour:
|
|||||||
DissipationDistance: 100
|
DissipationDistance: 100
|
||||||
PropagationSpeed: 343
|
PropagationSpeed: 343
|
||||||
DefaultVelocity: {x: 0, y: -1, z: 0}
|
DefaultVelocity: {x: 0, y: -1, z: 0}
|
||||||
|
--- !u!114 &6463147863076644391
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3015334612608266903}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1b1ef0319328bf84a98bed912be4c61d, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
<Id>k__BackingField: RestaurantBaseCamera
|
||||||
--- !u!108 &6464483386687510218
|
--- !u!108 &6464483386687510218
|
||||||
Light:
|
Light:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -85997,7 +85939,6 @@ SceneRoots:
|
|||||||
m_Roots:
|
m_Roots:
|
||||||
- {fileID: 1041959416}
|
- {fileID: 1041959416}
|
||||||
- {fileID: 45031421}
|
- {fileID: 45031421}
|
||||||
- {fileID: 1922601885}
|
|
||||||
- {fileID: 1972254857}
|
- {fileID: 1972254857}
|
||||||
- {fileID: 1804444097}
|
- {fileID: 1804444097}
|
||||||
- {fileID: 5280945432206803416}
|
- {fileID: 5280945432206803416}
|
||||||
|
31
Assets/_DDD/_Scripts/CameraSystem/CameraGameObject.cs
Normal file
31
Assets/_DDD/_Scripts/CameraSystem/CameraGameObject.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using Unity.Cinemachine;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DDD
|
||||||
|
{
|
||||||
|
public class CameraGameObject : MonoBehaviour
|
||||||
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public string Id { get; private set; }
|
||||||
|
|
||||||
|
private CinemachineCamera _cinemachineCamera;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_cinemachineCamera = GetComponent<CinemachineCamera>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
CameraManager.Instance.RegisterCamera(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
CameraManager.Instance.UnRegisterCamera(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetPriority() => _cinemachineCamera.Priority;
|
||||||
|
public void SetPriority(int newPriority) => _cinemachineCamera.Priority = newPriority;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1b1ef0319328bf84a98bed912be4c61d
|
@ -1,61 +1,44 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using Unity.Cinemachine;
|
using Unity.Cinemachine;
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace DDD
|
namespace DDD
|
||||||
{
|
{
|
||||||
public enum CameraType
|
public class CameraManager : Singleton<CameraManager>, IManager
|
||||||
{
|
|
||||||
BaseCam = 0,
|
|
||||||
}
|
|
||||||
|
|
||||||
public class CameraManager : Singleton<CameraManager>
|
|
||||||
{
|
{
|
||||||
[ShowInInspector, ReadOnly]
|
[ShowInInspector, ReadOnly]
|
||||||
private Dictionary<CameraType, CinemachineCamera> _cameraDict;
|
private Dictionary<string, CameraGameObject> _cameraGameObjects;
|
||||||
|
|
||||||
private CinemachineBrain _cinemachineBrain;
|
private CinemachineBrain _cinemachineBrain;
|
||||||
|
|
||||||
protected override void OnAwake()
|
public void Init()
|
||||||
{
|
{
|
||||||
base.OnAwake();
|
_cameraGameObjects = new Dictionary<string, CameraGameObject>();
|
||||||
|
|
||||||
_cinemachineBrain = GetComponent<CinemachineBrain>();
|
_cinemachineBrain = GetComponent<CinemachineBrain>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ChangeScene(SceneType sceneType)
|
public void PostInit()
|
||||||
{
|
{
|
||||||
var foundCams = FindObjectsByType<CinemachineCamera>(FindObjectsInactive.Include, FindObjectsSortMode.None);
|
|
||||||
_cameraDict = new Dictionary<CameraType, CinemachineCamera>(foundCams.Length);
|
|
||||||
|
|
||||||
foreach (var cam in foundCams)
|
|
||||||
{
|
|
||||||
if (Enum.TryParse<CameraType>(cam.name, out var type))
|
|
||||||
{
|
|
||||||
if (!_cameraDict.TryAdd(type, cam))
|
|
||||||
Debug.LogWarning($"중복된 CameraType: {type}");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"Enum에 없는 카메라 이름: {cam.name}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sceneType == SceneType.Restaurant)
|
|
||||||
{
|
|
||||||
SwitchCamera(CameraType.BaseCam);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SwitchCamera(CameraType cameraType, CinemachineBlendDefinition.Styles blendStyle = CinemachineBlendDefinition.Styles.Cut, float blendDuration = 1f)
|
public void RegisterCamera(CameraGameObject cameraGameObject)
|
||||||
|
{
|
||||||
|
_cameraGameObjects.TryAdd(cameraGameObject.Id, cameraGameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UnRegisterCamera(CameraGameObject cameraGameObject)
|
||||||
|
{
|
||||||
|
_cameraGameObjects.Remove(cameraGameObject.Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SwitchCamera(CameraGameObject cameraGameObject, CinemachineBlendDefinition.Styles blendStyle = CinemachineBlendDefinition.Styles.Cut, float blendDuration = 1f)
|
||||||
{
|
{
|
||||||
_cinemachineBrain.DefaultBlend = new CinemachineBlendDefinition(blendStyle, blendDuration);
|
_cinemachineBrain.DefaultBlend = new CinemachineBlendDefinition(blendStyle, blendDuration);
|
||||||
foreach (var pair in _cameraDict)
|
foreach (var item in _cameraGameObjects)
|
||||||
{
|
{
|
||||||
pair.Value.Priority = (pair.Key == cameraType) ? 10 : 0;
|
int newPriority = item.Value.Id == cameraGameObject.Id ? 10 : 0;
|
||||||
|
item.Value.SetPriority(newPriority);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,8 +45,8 @@ Camera:
|
|||||||
m_GameObject: {fileID: 7292682221138498026}
|
m_GameObject: {fileID: 7292682221138498026}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_ClearFlags: 1
|
m_ClearFlags: 2
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
m_projectionMatrixMode: 1
|
m_projectionMatrixMode: 1
|
||||||
m_GateFitMode: 2
|
m_GateFitMode: 2
|
||||||
m_FOVAxisMode: 0
|
m_FOVAxisMode: 0
|
8
Assets/_DDD/_Scripts/GenerateGoogleSheet/Prefab.meta
Normal file
8
Assets/_DDD/_Scripts/GenerateGoogleSheet/Prefab.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b3f6eaeb89086ab49a743c6cb3f4ddd2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user