using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace UnityCommon { public class FollowState : CameraState { private Transform tfTarget; private Transform tfOriginalParent; public FollowState(Camera camera, Transform target) : base(camera) { tfTarget = target; } private float fieldOfViewOriginal = 60; public override void Enter() { base.Enter(); tfOriginalParent = m_camera.transform.parent; fieldOfViewOriginal = m_camera.fieldOfView; m_camera.DOFieldOfView(28, 0.5f); m_camera.transform.SetParent(tfTarget); m_camera.transform.localPosition = Vector3.zero; m_camera.transform.localRotation = Quaternion.identity; //SetCameraPosition(tfTarget.position, tfTarget.rotation, () => //{ // m_camera.transform.SetParent(tfTarget); //}); } public override void Exit() { base.Exit(); m_camera.fieldOfView = fieldOfViewOriginal; m_camera.transform.SetParent(tfOriginalParent); } } }