public void Update(float deltaTime) { //pump message PumpMessage(); SenderEvent(new UpdateEvent(DateTime.Now, deltaTime)); SenderEvent(new RenderEvent(DateTime.Now, deltaTime)); //process the event while (EventCount != 0) { switch (GetEvent(true)) { case UpdateEvent update: OnUpdateEvent?.Invoke(this, update); break; case KeyBoardEvent keyBoard: OnKeyBoardEvent?.Invoke(this, keyBoard); break; case MouseClickEvent mouseClick: OnMouseClickEvent?.Invoke(this, mouseClick); break; case MouseWheelEvent mouseWheel: OnMouseWhellEvent?.Invoke(this, mouseWheel); break; case MouseMoveEvent mouseMove: OnMouseMoveEvent?.Invoke(this, mouseMove); break; case SizeChangeEvent sizeChange: OnSizeChangeEvent?.Invoke(this, sizeChange); break; } } }
void Update() { if (!Input.mousePosition.Equals(LastMouseInputPosition)) { OnMouseMove.Invoke( new OnMouseMoveEventData( LastMouseInputPosition, Input.mousePosition ) ); LastMouseInputPosition = Input.mousePosition; } if (Input.GetKey(KeyCode.Mouse0)) { OnMouseClick.Invoke( new OnMouseClickEventData( KeyCode.Mouse0, LastMouseInputPosition ) ); } if (Input.GetKey(KeyCode.Mouse1)) //?? any better way? { OnMouseClick.Invoke( new OnMouseClickEventData( KeyCode.Mouse1, LastMouseInputPosition ) ); } }