public void UpdateCanvas() { //return; int poX = InputManager.PoX; int poY = InputManager.PoY; bool press = InputManager.IsPressed; MouseOver = Enable && IsInCanvasTexture(Convert.ToSingle(poX) / DrawScale, Convert.ToSingle(poY) / DrawScale) && (poX != 0 || poY != 0); if (MouseOver) { if (!PreMouseOver && Sound) { //player.Play(); Platform.Current.PlayEffect(@"Content\Sound\Select"); } if (OnMouseOver != null) { OnMouseOver.Invoke(null, null); } if (press) { PressButton(); } } }
public void DoThisOnMouseOver(Action act) { MIO = new OnMouseOver(delegate { act.Invoke(); }); }
public override void draw(Graphics graphics, float parentAlpha) { IDrawable checkbox = null; if (_isDisabled) { if (isChecked && style.checkboxOnDisabled != null) { checkbox = style.checkboxOnDisabled; } else { checkbox = style.checkboxOffDisabled; } } if (checkbox == null) { if (isChecked && style.checkboxOn != null) { checkbox = style.checkboxOn; } else if (_mouseOver && style.checkboxOver != null && !_isDisabled) { checkbox = style.checkboxOver; } else { checkbox = style.checkboxOff; } } OnMouseOver?.Invoke(_mouseOver); image.setDrawable(checkbox); base.draw(graphics, parentAlpha); }
private void FixedUpdate() { if (!isGameMenu && !isLostControl) { if (!isLockRotate) { horizontalInput = Input.GetAxis(AxisOptions.Horizontal.ToString()); if (Input.GetMouseButton(1)) { plane.SetNormalAndPosition(localDown, transform.position); ray = Camera.ScreenPointToRay(Input.mousePosition); if (plane.Raycast(ray, out hitDist)) { v3 = ray.GetPoint(hitDist); } else { v3 = transform.position + transform.TransformPoint(forward); } if (FlightMode.Sword == currentFlightMode) { isMouseOver = true; OnMouseOver?.Invoke(v3); } rotationEngine.RotateToTargetWithPlaneLimiter(v3); } else if (isMouseOver) { OnMouseOverEnd?.Invoke(); isMouseOver = false; } else if (Mathf.Abs(horizontalInput) > 0) { rotationEngine.Rotate(horizontalInput); } else { rotationEngine.SlowDown(); } } if (!isLockMove) { verticalInput = Input.GetAxis(AxisOptions.Vertical.ToString()); if (verticalInput > 0) { engine.Move(verticalInput); } else if (verticalInput < 0) { engine.Move(verticalInput / 2); } else { engine.SlowDown(); } } } }
public InstanceSelectorUI() : base(3742, "Inventory", true, false) { SetVisibleScenes(GameScenes.EDITOR); SetSize(500, 100, 300, Screen.height - 200); SetResizeable(true, true); OnMouseOver.Add(() => { InstanceVM.OnMouseOver(); }); OnMouseExit.Add(() => { InstanceVM.OnMouseExit(); }); }
public void Init(Vector2 positionInGrid, BoardManager board) { m_GridPosition = positionInGrid; m_BoardManager = board; OnMouseOver.AddListener(() => IsMouseOver = true); OnMouseOver.AddListener(() => m_BoardManager.OnTileSelected(this)); OnMouseExit.AddListener(() => IsMouseOver = false); OnMouseExit.AddListener(() => m_BoardManager.OnTileDeselected(this)); }
public virtual void MouseOver(MouseEventArgs e) { if (Enabled && !Hovered) { if (EffectiveBounds.Contains(e.Position)) { Hovered = true; OnMouseOver?.Invoke(this, EventArgs.Empty); } } }
internal void InvokeEvents() { OnMouseOver?.Invoke(this); if (!_isAttached) { Input.Mouse.ButtonValueChanged += OnMouse; Input.Touch.ButtonValueChanged += OnMouse; //ToDo: Define OnTouch() Input.Mouse.AxisValueChanged += OnAxisChanged; OnMouseEnter?.Invoke(this); } _isAttached = true; }
//SoundPlayer player = new SoundPlayer("Content/Textures/Resources/Start/Select"); public void Update(int poX, int poY, Vector2?basePos, bool press, bool sound) { MouseOver = Enable && IsInTexture(Convert.ToSingle(poX) / DrawScale, Convert.ToSingle(poY) / DrawScale, basePos) && (poX != 0 || poY != 0); if (MouseOver) { if (!PreMouseOver && sound) { //player.Play(); Platform.Current.PlayEffect(@"Content\Sound\Select"); } if (OnMouseOver != null) { OnMouseOver.Invoke(null, null); } if (press) { PressButton(); } } }
public override void draw(Graphics graphics, float parentAlpha) { updateImage(); OnMouseOver?.Invoke(_mouseOver); base.draw(graphics, parentAlpha); }
protected virtual async Task HandleMouseOverAsync(MouseEventArgs args) { await OnMouseOver.InvokeAsync(args); }
public virtual void MouseOver(UIMouseEvent evt) { MouseHovering = true; OnMouseOver?.Invoke(evt, this); Parent?.MouseOver(evt); }
public void OnPointerEnter(PointerEventData eventData) { OnMouseOver?.Invoke(); }
public void NotifyMouseOver(MouseEvent eventArgs) { OnMouseOver?.Invoke(this, eventArgs); }
internal void DispatchEvent(Map map, MapJsEventArgs eventArgs) { switch (eventArgs.Type) { case "click": OnClick?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "contextmenu": OnContextMenu?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "dblclick": OnDblClick?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "layeradded": OnLayerAdded?.Invoke(new MapEventArgs(map, eventArgs.Type)); break; case "layerremoved": OnLayerRemoved?.Invoke(new MapEventArgs(map, eventArgs.Type)); break; case "mousedown": OnMouseDown?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "mouseenter": OnMouseEnter?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "mouseleave": OnMouseLeave?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "mousemove": OnMouseMove?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "mouseout": OnMouseOut?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "mouseover": OnMouseOver?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "mouseup": OnMouseUp?.Invoke(new MapMouseEventArgs(map, eventArgs)); break; case "touchcancel": OnTouchCancel?.Invoke(new MapTouchEventArgs(map, eventArgs)); break; case "touchend": OnTouchEnd?.Invoke(new MapTouchEventArgs(map, eventArgs)); break; case "touchmove": OnTouchMove?.Invoke(new MapTouchEventArgs(map, eventArgs)); break; case "touchstart": OnTouchStart?.Invoke(new MapTouchEventArgs(map, eventArgs)); break; case "wheel": OnWheel?.Invoke(new MapEventArgs(map, eventArgs.Type)); break; } }
/// <summary> Adds the events for this html element directly to the text writer output </summary> /// <param name="Output"> Output to write directly to </param> public void Add_Events_HTML(TextWriter Output) { if (!String.IsNullOrWhiteSpace(OnClick)) { Output.Write("onclick=\"" + OnClick.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnContextMenu)) { Output.Write("oncontextmenu=\"" + OnContextMenu.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnDblClick)) { Output.Write("ondblclick=\"" + OnDblClick.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnMouseDown)) { Output.Write("onmousedown=\"" + OnMouseDown.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnMouseEnter)) { Output.Write("onmouseenter=\"" + OnMouseEnter.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnMouseLeave)) { Output.Write("onmouseleave=\"" + OnMouseLeave.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnMouseMove)) { Output.Write("onmousemove=\"" + OnMouseMove.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnMouseOver)) { Output.Write("onmouseover=\"" + OnMouseOver.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnMouseOut)) { Output.Write("onmouseout=\"" + OnMouseOut.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnMouseUp)) { Output.Write("onmouseup=\"" + OnMouseUp.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnKeyDown)) { Output.Write("onkeydown=\"" + OnKeyDown.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnKeyPress)) { Output.Write("onkeypress=\"" + OnKeyPress.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnKeyUp)) { Output.Write("onkeyup=\"" + OnKeyUp.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnLoad)) { Output.Write("onload=\"" + OnLoad.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnSelect)) { Output.Write("onselect=\"" + OnSelect.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnChange)) { Output.Write("onchange=\"" + OnChange.Replace("\"", "'") + "\" "); } if (!String.IsNullOrWhiteSpace(OnWheel)) { Output.Write("onwheel=\"" + OnWheel.Replace("\"", "'") + "\" "); } }
// Update is called once per frame void Update() { Camera cam = Camera.main; if (cam == null) { return; } // Addon feature: change camera angle to top-down by holding space Vector3 rot = new Vector3(Input.GetKey(KeyCode.Space) ? 90f : cameraAngle, cam.transform.eulerAngles.y, 0f); cam.transform.eulerAngles = rot; // Mouse movement or cursor keys pan the camera in XZ float panX = 0f; float panZ = 0f; bool panMode = false; if (Input.GetMouseButton(1) && !Input.GetMouseButton(0)) // right button { panMode = true; Cursor.lockState = CursorLockMode.Locked; panX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime; panZ = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime; if (invertMouse) { panX = -panX; panZ = -panZ; } } else { panX = Input.GetAxis("Horizontal") * keyPanSpeed * Time.deltaTime; panZ = Input.GetAxis("Vertical") * keyPanSpeed * Time.deltaTime; panMode = panX != 0f || panZ != 0f; } if (panMode) { // apply relative to camera left/right but absolute forward/back, assume cam is not rolled Vector3 right = cam.transform.right; Vector3 forward = new Vector3(-right.z, 0f, right.x); groundpos += right * panX + forward * panZ; // groundpos.y always 0 (or maybe get the height of center tile later), x, z inside map border groundpos.x = Mathf.Clamp(groundpos.x, SceneMinX, SceneMaxX); groundpos.y = 0f; groundpos.z = Mathf.Clamp(groundpos.z, SceneMinZ, SceneMaxZ); } // Camera rotation around Y only if (Input.GetMouseButton(0) && Input.GetMouseButton(1)) // both buttons { Cursor.lockState = CursorLockMode.Locked; float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime; if (invertMouse) { mouseX = -mouseX; } rot.y -= mouseX; cam.transform.eulerAngles = rot; } else if (!Input.GetMouseButton(0) && !Input.GetMouseButton(1)) { Cursor.lockState = CursorLockMode.None; Ray ray = cam.ScreenPointToRay(Input.mousePosition); OnMouseOver?.Invoke(this.gameObject, new CameraRayEventArgs(ray)); } // Apply the ground position cam.transform.position = groundpos; // Mouse wheel zoom in/out by changing camera position // using translate so that rotation is considered and the ground pos focused float mouseWheel = Input.GetAxis("Mouse ScrollWheel") * mouseWheelSensitivity * Time.deltaTime; if (invertWheel) { mouseWheel = -mouseWheel; } zoomDistance = Mathf.Clamp(zoomDistance - mouseWheel, zoomDistanceMin, zoomDistanceMax); cam.transform.Translate(0f, 0f, -zoomDistance); if (postProcessLayer != null) { // see https://answers.unity.com/questions/1692992/how-to-change-depth-of-field-focal-length-from-a-s.html List <PostProcessVolume> volList = new List <PostProcessVolume>(); PostProcessManager.instance.GetActiveVolumes(postProcessLayer, volList, true, true); foreach (PostProcessVolume vol in volList) { PostProcessProfile ppp = vol.profile; if (ppp) { DepthOfField dof; if (ppp.TryGetSettings <DepthOfField>(out dof)) { dof.focusDistance.value = zoomDistance; dof.focalLength.value = zoomDistance; } } } } // If mouse over UI, disable selection and highlight effects, and don't allow left click if (EventSystem.current.IsPointerOverGameObject()) { // Create a ray facing away from screen, should hit nothing, simulation click/hover into void Ray ray = new Ray(transform.position, -transform.forward); OnMouseOver?.Invoke(this.gameObject, new CameraRayEventArgs(ray)); OnMouseClick?.Invoke(this.gameObject, new CameraRayEventArgs(ray)); } // Left click with mouse selects a tile else if (Input.GetMouseButtonDown(0) && !Input.GetMouseButton(1)) // left button { // Cast a ray and let the GameManager decide what to do with that Ray ray = cam.ScreenPointToRay(Input.mousePosition); // To test the ray better change GetMouseButtonDown() to Input.GetMouseButton() // Debug.DrawRay(ray.origin, ray.direction * 300, Color.red); OnMouseClick?.Invoke(this.gameObject, new CameraRayEventArgs(ray)); } }
public bool MouseOver(UIMouseEventData e) { OnMouseOver?.Invoke(e); return(true); }
void Awake() { _originalPos = transform.localPosition; _originalRot = transform.localRotation; base.Awake(); _collider = GetComponent <Collider>(); m_animator = GetComponentInParent <Animator>(); foreach (InteractionComponent com in m_interactiveComponents) { // caching lambda InteractionComponent currentComponent = com; OnMouseClick onClick = com.collider.gameObject.AddComponent <OnMouseClick>(); OnMouseOver onOver = com.collider.gameObject.AddComponent <OnMouseOver>(); OnMouseDrag onDrag = gameObject.AddComponent <OnMouseDrag>(); onDrag.onMouseDragBegin += OnComponentDragBegin; onDrag.onMouseDrag += OnComponentDragged; onDrag.onMouseDragEnd += OnComponentDragEnd; onClick.onMouseClick += (PointerEventData eventData) => { if (eventData.dragging) { return; } if (!IsInteracting) { return; } currentComponent.onInteract.Invoke(); }; onOver.onMouseOver += (PointerEventData eventData) => { if (!IsInteracting) { return; } m_isMouseOverInteraction = false; if (currentComponent.onInteract.GetPersistentEventCount() > 0) { m_isMouseOverInteraction = true; } if (!m_isDragging) { Cursor.SetCursor(cursorDrag, hotSpot, cursorMode); } if (m_isMouseOverInteraction && !m_isDragging) { Cursor.SetCursor(cursorClick, hotSpot, cursorMode); } m_isMouseOver = true; }; onOver.onMouseOut += (PointerEventData data) => { if (!IsInteracting) { return; } if (!m_isDragging) { Cursor.SetCursor(null, Vector2.zero, cursorMode); } m_isMouseOver = false; }; } }
public virtual void MouseOver(UIMouseEventArgs e) { MouseHovering = true; OnMouseOver?.Invoke(this, e); Parent?.MouseOver(e); }
internal void DispatchEvent(Map map, HtmlMarkerJsEventArgs eventArgs) { if (eventArgs.Options != null) { var popupOptions = Options.Popup; Options = eventArgs.Options; Options.Popup = popupOptions; } switch (eventArgs.Type) { case "click": OnClick?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "contextmenu": OnContextMenu?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "dblclick": OnDblClick?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "drag": OnDrag?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "dragend": OnDragEnd?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "dragstart": OnDragStart?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "keydown": OnKeyDown?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "keypress": OnKeyPress?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "keyup": OnKeyUp?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "mousedown": OnMouseDown?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "mouseenter": OnMouseEnter?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "mouseleave": OnMouseLeave?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "mousemove": OnMouseMove?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "mouseout": OnMouseOut?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "mouseover": OnMouseOver?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; case "mouseup": OnMouseUp?.Invoke(new HtmlMarkerEventArgs(map, eventArgs.Type, this)); break; } }
public override void PollEvents() { while (SDL_PollEvent(out var ev) == 1) { switch (ev.type) { case SDL_EventType.SDL_QUIT: OnQuit?.Invoke(); break; case SDL_EventType.SDL_KEYDOWN: AddKey((int)ev.key.keysym.sym); break; case SDL_EventType.SDL_KEYUP: RemoveKey((int)ev.key.keysym.sym); break; case SDL_EventType.SDL_TEXTINPUT: break; case SDL_EventType.SDL_MOUSEBUTTONDOWN: SetMouseButtonState(ev.button.button, true); break; case SDL_EventType.SDL_MOUSEBUTTONUP: SetMouseButtonState(ev.button.button, false); break; case SDL_EventType.SDL_MOUSEWHEEL: TriggerMouseScroll(ev.wheel.y * 120); break; case SDL_EventType.SDL_CONTROLLERDEVICEADDED: ProcessGamepadAdd(ev.cdevice.which); break; case SDL_EventType.SDL_CONTROLLERDEVICEREMOVED: ProcessGamepadRemove(ev.cdevice.which); break; case SDL_EventType.SDL_WINDOWEVENT: switch (ev.window.windowEvent) { case SDL_WindowEventID.SDL_WINDOWEVENT_SHOWN: break; case SDL_WindowEventID.SDL_WINDOWEVENT_CLOSE: OnQuit?.Invoke(); break; case SDL_WindowEventID.SDL_WINDOWEVENT_SIZE_CHANGED: var w = ev.window.data1; var h = ev.window.data2; if (screen_w != w || screen_h != h) { } screen_w = w; screen_h = h; OnWinResized?.Invoke(w, h); break; case SDL_WindowEventID.SDL_WINDOWEVENT_ENTER: OnMouseOver?.Invoke(); break; case SDL_WindowEventID.SDL_WINDOWEVENT_LEAVE: OnMouseLeave?.Invoke(); break; case SDL_WindowEventID.SDL_WINDOWEVENT_FOCUS_LOST: is_active = false; break; case SDL_WindowEventID.SDL_WINDOWEVENT_FOCUS_GAINED: is_active = true; break; } break; } } }