public EStateType Update(float in_time) { //if(Mathf.Approximately(_owner.GetVectorBetweenCameraAndPoint().magnitude, 0f)) //if(_owner.GetVectorBetweenCameraAndPoint().magnitude < 0.001f) if (_owner.IsAngleObtuse()) { _owner.StopAllCameraMovements(); Debug.Log(string.Format("GO TO IDLE; Distance = {0}", _owner.GetVectorBetweenCameraAndPoint().magnitude)); return(EStateType.Idle); } Vector3 cam_velocity_project = Vector3.Project(_owner.GetCameraVelocity(), _owner.GetVectorBetweenCameraAndPoint().normalized); Vector3 point_velocity_project = Vector3.Project(_owner.GetPointVelocity(), _owner.GetVectorBetweenCameraAndPoint().normalized); if (cam_velocity_project.magnitude < point_velocity_project.magnitude) { Debug.Log(string.Format("GO TO ACCELERATE; Distance = {0}", _owner.GetVectorBetweenCameraAndPoint().magnitude)); return(EStateType.Accelerate); } Debug.Log(string.Format("GETSLOW: Current Camera Velocity = {0}, Current Point Velocity = {1}, Distance Between Camera and Point = {2}", _owner.GetCameraVelocity().magnitude, _owner.GetPointVelocity().magnitude, _owner.GetVectorBetweenCameraAndPoint().magnitude)); return(EStateType.GetSlow); }