Exemple #1
0
    public EStateType Update(float in_time)
    {
        float cur_velocity   = _owner.GetCameraVelocity().magnitude;
        float deceleration   = _owner.GetCameraDeceleration();
        float break_distance = -(cur_velocity * cur_velocity) / (2 * deceleration);

        Debug.Log(string.Format("ACCELERATE: Break distance = {0}, Current Camera Velocity = {1}, Current Point Velocity = {2}, Distance Between Camera and Point = {3}",
                                break_distance, cur_velocity, _owner.GetPointVelocity().magnitude, _owner.GetVectorBetweenCameraAndPoint().magnitude));

        if (break_distance < _owner.GetVectorBetweenCameraAndPoint().magnitude)
        {
            return(EStateType.Accelerate);
        }
        else
        {
            Debug.Log(string.Format("GO TO GETSLOW; Distance = {0}", _owner.GetVectorBetweenCameraAndPoint().magnitude));
            return(EStateType.GetSlow);
        }
    }