static void AssignActions(InputObjectUI io) { switch (io._type) { case InputType.Hold: io.WhenDown = SetTrue; io.WhenUp = SetFalse; io.WhenEnter = x => io._inputState = Input.GetKey(KeyCode.Mouse0); io.WhenExit = SetFalse; break; case InputType.Down: io.WhenDown = SetTrueOneFrame_Down; io.WhenUp = delegate { }; io.WhenEnter = delegate { }; io.WhenExit = delegate { }; break; case InputType.Up: bool isPressed = false; io.WhenDown = x => isPressed = true; io.WhenUp = x => { if (isPressed) { SetTrueOneFrame_Up(x); } }; io.WhenEnter = delegate { }; io.WhenExit = x => isPressed = false; break; } }
static IEnumerator CR_SetTrueForOneFrame(InputObjectUI io) { io._inputState = true; yield return(new WaitForEndOfFrame()); io._inputState = false; }
static void SetFalse(InputObjectUI io) { io._inputState = false; }
static void SetTrueOneFrame_Up(InputObjectUI io) { io.StartCoroutine(CR_SetTrueForOneFrame(io)); }
//Actions static void SetTrue(InputObjectUI io) { io._inputState = true; }