public void CameraDown(DigitalEvent digitalEvent) { if (inFreeRoamMode && cameraTransform != null && digitalEvent.State == DigitalState.Held) { cameraTransform.Position += UnitVector3D.YAxis.ScaleBy(-FreeRoamCameraMoveDelta); } }
public void CameraRight(DigitalEvent digitalEvent) { if (inFreeRoamMode && cameraTransform != null && digitalEvent.State == DigitalState.Held) { cameraTransform.Position += cameraTransform.Forward.CrossProduct(UnitVector3D.YAxis).ScaleBy(-FreeRoamCameraMoveDelta); } }
public void CameraBackward(DigitalEvent digitalEvent) { if (inFreeRoamMode && cameraTransform != null && digitalEvent.State == DigitalState.Held) { var forward = cameraTransform.Forward; forward = new Vector3D(forward.X, 0, forward.Z).Normalize(); cameraTransform.Position += forward.ScaleBy(-FreeRoamCameraMoveDelta); } }
protected virtual void onDigitalEvent() { if (_digital.Checked) { DigitalEvent?.Invoke(this, new AnalogDigitalEventArgs(AnalogDigital.Digital)); } else { DigitalEvent?.Invoke(this, new AnalogDigitalEventArgs(AnalogDigital.Analog)); } }
public void ProcessInput(DigitalEvent mouseDownEvent) { if (mouseDownEvent.State == DigitalState.Down) { Ray ray = UnityEngine.Camera.main.ScreenPointToRay(UnityEngine.Input.mousePosition); bool isAlwaysOnTop = instance.Entity?.GetComponent <AlwaysOnTop>() != null; bool hitIntercepted = false; bool hitMe = false; var hits = Physics.RaycastAll(ray, Mathf.Infinity); foreach (var hit in hits) { if (hit.collider.transform == transform) { hitMe = true; } else if (ApiProviderData.GameObjects.TryGetValue(hit.collider.transform.gameObject, out Entity otherE)) { if (otherE.GetComponent <AlwaysOnTop>() != null) { hitIntercepted = true; } else { if (instance.UsingChildren) { Entity parent = otherE; while (parent != 0) { parent = parent.GetComponent <Parent>().ParentEntity; if (parent == instance.Entity) { hitMe = true; break; } } } if (!hitMe) { hitIntercepted = true; } } } } if (hitMe && (!hitIntercepted || isAlwaysOnTop)) { Select(); } } }
public void StartMouseDrag(DigitalEvent digitalEvent) { isMouseDragging = digitalEvent.State == DigitalState.Held; if (digitalEvent.State == DigitalState.Down) { // TODO cursor stuff // Cursor.lockState = CursorLockMode.Locked; // Hide and lock cursor so the mouse doesn't leave the screen // Cursor.visible = false; } else if (digitalEvent.State == DigitalState.Up) { // Cursor.lockState = CursorLockMode.None; // Show and unlock cursor when done // Cursor.visible = true; } }
public void CameraBoost(DigitalEvent digitalEvent) { UseSpeedModifier = inFreeRoamMode && digitalEvent.State == DigitalState.Held; }