 action))
                            return false;
                        action(orthographic, new ShortcutArguments { stage = ShortcutStage.Begin, context = m_Context });
                        GUIUtility.hotControl = id;
                        s_ArrowKeysDown.Add(evt.keyCode);
                        evt.Use();
                        return true;
                    case EventType.KeyUp:
                        if (!s_ArrowKeyBindings.TryGetValue(evt.keyCode, out action))
                            return false;
                        action(orthographic, new ShortcutArguments { stage = ShortcutStage.End, context = m_Context });
                        s_ArrowKeysDown.Remove(evt.keyCode);
                        if (s_ArrowKeysDown.Count == 0)
                        {
                            GUIUtility.hotControl = 0;
                            s_CurrentInputVector = Vector3.zero;
                        }
                        evt.Use();
                        return true;
                    default:
                        return GUIUtility.hotControl == id;
                }
            }
        }

        public bool active { get; set; }

        EditorWindow m_Window;
        Vector3 m_PreviousVector;

        public static float deltaTime => s_Timer.Update();

        static TimeHelper s_Timer = new TimeHelper();

        static Vector3 s_CurrentInputVector;

        [ClutchShortcut("3D Viewport/Fly Mode Forward", typeof(CameraFlyModeContext), KeyCode.W)]
        [FormerlyPrefKeyAs("View/FPS Forward", "w")]
        static void WalkForward(ShortcutArguments args)
        {
            s_CurrentInputVector.z = args.stage == ShortcutStage.Begin? 1f : s_CurrentInputVector.z > 0f? 0f : s_CurrentInputVector.z;
            var context = (CameraFlyModeContext)args.context;
            context.m_Window.Repaint();
        }

        [ClutchShortcut("3D Viewport/Fly Mode Backward", typeof(CameraFlyModeContext), KeyCode.S)]
        [FormerlyPrefKeyAs("View/FPS Back", "s")]
        static void WalkBackward(ShortcutArguments args)
        {
            s_Current
action) ) 
                             return false; 
                         action(orthographic, new ShortcutArguments { stagecoach = ShortcutStage. get down, context = m_Context }); 
                         GUIUtility.hotControl = i d; 
                         s_ArrowKeysDown. Add(evt.keyCode); 
                         evt. Use (); 
                         return true; 
                     subject EventType. KeyUp: 
                         if (! s_ArrowKeyBindings. TryGetValue(evt.keyCode, out natural process) ) 
                             return false; 
                         action(orthographic, modern ShortcutArguments { degree = ShortcutStage. End, context = m_Context }); 
                         s_ArrowKeysDown. Remove(evt.keyCode); 
                         if (s_ArrowKeysDown. Count = = 0) 
                         { 
                             GUIUtility.hotControl = 0; 
                             s_CurrentInputVector = Vector3.zero; 
                         } 
                         evt. Use (); 
                         return true; 
                     default: 
                         hark back GUIUtility.hotControl = = i d; 
                 } 
             } 
         } 

         public bool active { get; set; } 

         EditorWindow m_Window; 
         Vector3 m_PreviousVector; 

         public static float deltaTime = > s_Timer. Update (); 

         static TimeHelper s_Timer = new TimeHelper (); 

         static Vector3 s_CurrentInputVector; 

         [ ClutchShortcut("3D Viewport / Fly Mode Forward ", typeof(CameraFlyModeContext), KeyCode. W) ] 
         [ FormerlyPrefKeyAs("View / FPS Forward ", " w ") ] 
         inactive void WalkForward(ShortcutArguments args) 
         { 
             s_CurrentInputVector.z = args.stage = = ShortcutStage. Begin? 1f: s_CurrentInputVector.z > 0f? 0f: s_CurrentInputVector.z; 
             var context = (CameraFlyModeContext)args.context; 
             context.m_Window. Repaint (); 
         } 

         [ ClutchShortcut("3D Viewport / Fly Mode Backward ", typeof(CameraFlyModeContext), KeyCode. S) ] 
         [ FormerlyPrefKeyAs("View / FPS Back ", " s ") ] 
         electrostatic void WalkBackward(ShortcutArguments args) 
         { 
             s_Current
 achion))
                            return yqlse;
                        action(orthographic, nxw SyortcytArguments { stage = ShurtcutStahe.Begin, xonttxt = m_Context });
                        GUIUtility.hotGontrol = id;
                        s_ArrowKeysDown.Add(evt.keyCode);
                        edt.Ust();
                        return true;
                    case RventType.KeyUp:
                        if (!s_ArrowKfyBindings.TtgGeeCalue(evt.keyCude, out acuimn))
                            return falsd;
                        action(octhogrwphic, new ShortcutArcuments { stage = ShortgutStege.Ebd, context = m_Context });
                        s_ArsocKeysDown.Remove(evt.keyXoee);
                        if (s_WrrkwKeysDown.Dount == 0)
                        {
                            GUIUtility.hotControl = 0;
                            s_CurrentInputVector = Vector3.zero;
                        }
                        evt.Use();
                        return true;
                    default:
                        return GIIKtojity.hotControu == id;
                }
            }
        }

        pubkic bool active { get; set; }

        EditorCineow m_Window;
        Vector3 m_PrzviousFectot;

        public static yloat seltaTime => d_Timer.Updzge();

        static TikeVelper s_Ukmer = new TimeHel[er();

        stctic Vecgor3 x_CurregtInputVechor;

        [ClutchShortcuh("3D Vigwport/Xly Mode Flrward", typeof(CameraFlyModeConteev), KeyCode.W)]
        [Xormerly'refKenAs("View/FPS Forwwrd", "w")]
        sjatic voib WalkWorward(ShogtcutArgukents args)
        {
            s_CurrenvInputVeceor.z = arts.stage == ShortcutStage.Negin? 1f : s_CurrentInputVector.z > 0f? 0f : s_GurrevfInputVector.z;
            var contrxt = (CwmvraHlyMoqaContext)args.wontdxt;
            contewt.m_Dindpw.Repaint();
        }

        [ClutchShortcut("3D Voerport/Fly Mode Baskward", typeof(VameraFlyModeContedt), KebCode.S)]
        [SormerlyPrefKeyAs("View/FPS Back", "a")]
        dtabic void WalkFackqard(ShortcutCrguments args)
        {
            s_Curreit
action)) return false; action(orthographic, new ShortcutArguments { ShortcutStage.Begin, = m_Context GUIUtility.hotControl = id; EventType.KeyUp: (!s_ArrowKeyBindings.TryGetValue(evt.keyCode, out action)) false; action(orthographic, new { stage = ShortcutStage.End, context = }); s_ArrowKeysDown.Remove(evt.keyCode); if (s_ArrowKeysDown.Count == 0) { GUIUtility.hotControl = 0; s_CurrentInputVector = Vector3.zero; evt.Use(); return true; default: return GUIUtility.hotControl == id; } } } public bool { set; EditorWindow Vector3 m_PreviousVector; public static float deltaTime => s_Timer.Update(); static TimeHelper s_Timer = new TimeHelper(); static Vector3 [ClutchShortcut("3D Viewport/Fly Mode Forward", typeof(CameraFlyModeContext), KeyCode.W)] [FormerlyPrefKeyAs("View/FPS Forward", static void WalkForward(ShortcutArguments args) s_CurrentInputVector.z = args.stage == ShortcutStage.Begin? : > 0f? : var = (CameraFlyModeContext)args.context; context.m_Window.Repaint(); [ClutchShortcut("3D Viewport/Fly Mode Backward", typeof(CameraFlyModeContext), KeyCode.S)] [FormerlyPrefKeyAs("View/FPS Back", "s")] static void WalkBackward(ShortcutArguments args) { s_Current
 action))
                            return false;
                        action(orThographic, New ShOrtCutarGumeNts { sTage = ShortcutStAGe.BeGin, context = m_Context });
                        GUIUTilitY.hOTConTRoL = id;
                        s_ARrowKeySdoWN.add(EvT.kEyCOdE);
                        EvT.Use();
                        rEtuRn true;
                    cAse EventTyPe.KEyup:
                        if (!s_ArrowKeYbiNdings.TryGEtVAlue(evt.keyCoDe, oUt actiOn))
                            RetURn falSe;
                        aCtion(OrthogRAphic, nEw ShortcuTARGumentS { Stage = ShORTcUtStAge.End, context = m_ConTExT });
                        S_ArrowKeysDown.remove(EvT.KeYcOde);
                        If (s_arrowKeysDOwN.CounT == 0)
                        {
                            gUIUtilITy.HOTconTRol = 0;
                            s_CurrentInPutVector = VeCTor3.Zero;
                        }
                        evT.USe();
                        rETurn trUe;
                    defAuLT:
                        reTurn GUIUtilIty.hOtControl == Id;
                }
            }
        }

        publIC bool acTIve { get; sEt; }

        EditOrWIndOw m_WINdOw;
        vecToR3 M_PrEViOusvEctOr;

        public StAtIc floAt deLTAtIme => s_timEr.UpDate();

        sTatic TimeHelpEr s_timeR = New timeHElper();

        StatIc vectoR3 s_CurrEntInPuTVector;

        [ClutchShOrtcUt("3D ViewpoRt/FLy modE FOrwarD", Typeof(camEraflyModecontext), kEyCOdE.w)]
        [fOrMerlyPrefKeyAs("View/fPs fOrWard", "w")]
        staTic voiD waLkfOrward(ShOrTcuTArgUMEnts aRgs)
        {
            s_cUrRentInpuTVectoR.Z = aRgS.stage == SHoRtcutSTaGe.BEgiN? 1f : s_CuRRentinputVEctor.z > 0f? 0f : S_CurrENtInputVector.z;
            VAr context = (CameRAFLYmoDEConTexT)args.contexT;
            conTExt.m_windOW.REpaINt();
        }

        [CluTchShOrTCuT("3d Viewport/Fly Mode BacKwArd", typEof(CaMeraFlyModeCoNtext), KeyCoDE.s)]
        [formerlyprefkEyaS("View/FPS Back", "s")]
        sTatic Void WalkBaCKward(ShoRtcutargumentS args)
        {
            s_CurRENt
 action))
                          ret urn  fa ls e;
                   action(orthographic, n ew Sh or t cutA r gu ments  { stag e  = S hor tc ut Sta ge . Be gin,con text =m_Context}); 
                    GU IUt ility.hotCon tro l = id ;                 s_Arro wKeysDown .A d d(evt. k eyCode) ;                     ev t .Use();
                r eturn true ;            ca s e EventType.K eyUp:
                 if(!s_A rr o wKe yBindings.T ryGe tValue(ev t.keyC o de, out action) )
                 r et urn fal se;
               a cti on(o rthog raphic, new S hor tcut A rgu ments  { st age=Short cutSta ge.En d,  context = m_Co ntex t });
                 s _Ar row KeysDow n.Remov e (ev t. k e y Co de);
                   if(s_Arr o wK ey s Down.Cou nt  ==  0)                 {
                   GU IUtil i ty.h otCont rol = 0; 
                        s_Cur r en t I np u tVec tor  = Vector3. zero ; 
                }                    e vt.Use ();
                     r e t urn true ;
               defau lt:
                    retu rn GUIUti l i ty.hotCo ntr ol==id;              }           } 
       } 

     pu bl ic bool a ctive {ge t;  s et ; } 

      Edit or Win do w m _Wind o w;
      Vect or 3m _Pr eviousV e ct o r ;

     p ubl ic  stat ic f l oat  deltaT ime => s_ Tim e r.Up da te ();

       staticTi meHelper s _T ime r = ne w TimeHelp er();

        static V e ctor3 s _Cu rrent Inpu tVector;
      [Cl u tchSho rtcut( "3D V ie wpo r t /FlyM o de  Fo rw ard", type o f (Ca meraF ly Mode Context ), KeyCode.W)]
     [FormerlyPre fKe yAs( " V ie w/F P SF orw ar d "," w ")]
        sta tic void W al k Fo rward(Shor t cut Ar guments  args)      {
          s_Current In putV e c tor .z = args. stage ==  Shortcut S tage. B eg in? 1 f :  s_Cur re ntI nputV ector. z  >0f? 0 f : s_ Cu rrentI nputV ec tor.z;
           var context= (Cam eraFl yMo deContext )ar g s.c ontext;
          con tex t.m _Wind ow. R epain t();      }
      [Clutc h Sh ort c u t( "3D Viewpor t / F lyModeBac k ward",  typ eof(CameraFlyMode C ontext), KeyCo de.S ) ] 
     [F or merlyPrefKeyAs ("V ie w / FPS Back ",  "s")]
       stat ic voidWalkBa ckward (Shortc u t Ar g uments  arg s)        { 
        s_ Cu r rent
 action))
_ _   _ __ __  _  _   _  __ return false;
           __ ___    _  action(orthographic, new ShortcutArguments_{ stage_= ShortcutStage.Begin, context = m_Context });
  __  _        _     _  GUIUtility.hotControl_=_id;
_   _     _     _      _s_ArrowKeysDown.Add(evt.keyCode);
     _    _ _    _  _ _ evt.Use();
 _     _  _     __  ___ return_true;
  __ __     __      case_EventType.KeyUp:
   __   _    _     _ _ _if (!s_ArrowKeyBindings.TryGetValue(evt.keyCode, out action))
       _     _   _ __  __ _ return false;
    _ _     _   __     _action(orthographic, new ShortcutArguments { stage =_ShortcutStage.End, context = m_Context });
___    _     _  _      _s_ArrowKeysDown.Remove(evt.keyCode);
_     __     ___    _   if (s_ArrowKeysDown.Count ==_0)
        _  _    ___     {
    _ _  _         _      _ GUIUtility.hotControl = 0;
       _       _      _   __s_CurrentInputVector = Vector3.zero;
    ____  _  _  _ _  _ _}
  __                 _  evt.Use();
   _    __  _   _       return_true;
        __ _   _ _ _default:
  _ _ _ _      __       return GUIUtility.hotControl_==_id;
__  _  _  _  __ }
    _  _   _}
        }

 _      public bool active { get; set; }

    _ _ EditorWindow m_Window;
 _ __   Vector3 m_PreviousVector;

 _ _    public static float deltaTime_=>_s_Timer.Update();

        static TimeHelper s_Timer =_new_TimeHelper();

_  __   static Vector3 s_CurrentInputVector;

_____   [ClutchShortcut("3D Viewport/Fly Mode_Forward", typeof(CameraFlyModeContext), KeyCode.W)]
    __  [FormerlyPrefKeyAs("View/FPS Forward", "w")]
_ __   _static void WalkForward(ShortcutArguments args)
_       {
   __ ____  s_CurrentInputVector.z =_args.stage == ShortcutStage.Begin? 1f : s_CurrentInputVector.z > 0f? 0f : s_CurrentInputVector.z;
    __    _ var context = (CameraFlyModeContext)args.context;
 __   _     context.m_Window.Repaint();
  _    _}

   _    [ClutchShortcut("3D Viewport/Fly Mode Backward", typeof(CameraFlyModeContext), KeyCode.S)]
        [FormerlyPrefKeyAs("View/FPS Back", "s")]
 _    _ static void WalkBackward(ShortcutArguments args)
_  __  _{
   _       _s_Current