public void UnregisterInputReceiver(IInputBound inputReceiver) { if (inputReceiver is IKeyboardInputBound) { RemoveReceiverFrom <KeyboardMoveInputController>(inputReceiver); } if (inputReceiver is IJoystickInputBound) { RemoveReceiverFrom <JoystickMoveInputController>(inputReceiver); } }
public void RegisterInputReceiver(IInputBound inputReceiver) { if (inputReceiver is IKeyboardInputBound) { AddReceiverTo <KeyboardMoveInputController>(inputReceiver); } if (inputReceiver is IJoystickInputBound) { AddReceiverTo <JoystickMoveInputController>(inputReceiver); } }
private void RemoveReceiverFrom <T>(IInputBound inputReceiver) where T : MoveInputControllerBase { MoveInputControllerBase targetController = null; foreach (MoveInputControllerBase value in _inputReceiverCollection.Keys) { if (value is T) { targetController = value; break; } } if (targetController != null) { _inputReceiverCollection[targetController].Remove(inputReceiver); } }
private void AddReceiverTo <T>(IInputBound inputReceiver) where T : MoveInputControllerBase { if (!_isInited) { Init(); } MoveInputControllerBase targetController = null; foreach (MoveInputControllerBase value in _inputReceiverCollection.Keys) { if (value is T) { targetController = value; break; } } if (targetController != null) { _inputReceiverCollection[targetController].Add(inputReceiver); } }