private void OnGUI() { if (Event.current.Equals(Event.KeyboardEvent("escape"))) { menu.SetActive(!menu.activeSelf); cam.LockCamera(menu.activeSelf); Cursor.visible = menu.activeSelf; if (Cursor.lockState != CursorLockMode.None && menu.activeSelf) { Cursor.lockState = CursorLockMode.None; } else if (Cursor.lockState != CursorLockMode.Locked && !menu.activeSelf) { Cursor.lockState = CursorLockMode.Locked; } } }
void Update() { if (uiControls.HoldUIIsActive()) { return; } if (!ItemHandler.inRange) { return; } if (!Input.GetKey(KeyCode.R)) { if (disabled) { return; } if (Cursor.lockState != CursorLockMode.Locked) { Cursor.lockState = CursorLockMode.Locked; } Cursor.visible = false; rimMenu.SetActive(false); mainCamera.LockCamera(false); disabled = true; if (!selected) { return; } rimColorSelector.SetActive(false); Selector pointer = selector.GetComponent <Selector>(); colorSelect = false; selected = false; mouseTravel = new Vector2(0f, 0f); uiControls.SetActiveCreationUI(false); if (ItemHandler.inRange) { uiControls.SetActiveMainUI(true); } if (pointer.GetSelection() == null) { return; } MenuCollisionHandler handler = pointer.GetSelection().GetComponent <MenuCollisionHandler>(); if (handler.id < 0) { handler.Deselect(); return; } spawner.Spawn(handler.id, isPainting ? CP.TheColor : Color.clear); handler.Deselect(); isPainting = false; return; } if (!colorSelect) { if (Cursor.lockState != CursorLockMode.None) { Cursor.lockState = CursorLockMode.None; } mouse = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")); mouse = Vector2.Scale(mouse, new Vector2(sensitivity * smoothness, sensitivity * smoothness)); smooth.x = Mathf.Lerp(smooth.x, mouse.x, 1f / smoothness); smooth.y = Mathf.Lerp(smooth.y, mouse.y, 1f / smoothness); mouseTravel += smooth; selector.transform.localRotation = Quaternion.AngleAxis(-mouseTravel.x, Vector3.forward); if (!selected) { uiControls.SetActiveCreationUI(true); uiControls.SetActiveMainUI(false); mainCamera.LockCamera(true); rimMenu.SetActive(true); selected = true; disabled = false; } } if (!Input.GetKey(KeyCode.Mouse0)) { return; } if (isPainting) { return; } uiControls.SetActiveCreationUI(false); colorSelect = true; rimColorSelector.SetActive(true); if (!Cursor.visible) { Cursor.visible = true; } if (Cursor.lockState != CursorLockMode.None) { Cursor.lockState = CursorLockMode.None; } CP.SetNewColor(Color.white); isPainting = true; }
// Update is called once per frame void FixedUpdate() { if (uiControls.CreateUIIsActive()) { return; } if (!carrying) { if (!Input.GetKey(KeyCode.E)) { return; } var ray = cam.ScreenPointToRay(middle); if (!Physics.Raycast(ray, out var hit)) { return; } if (hit.collider.CompareTag("Switch")) { //TO BE DONE return; } if (!(hit.distance < pickUpDistance)) { return; } var selection = hit; if (!selection.transform.CompareTag("Selection")) { return; } uiControls.SetActiveHoldUI(true); uiControls.SetActiveMainUI(false); uiControls.SetActiveChangeColor(true); uiControls.SetActiveConfirmColor(false); wheel = selection.transform.gameObject.GetComponent <WallSnapper>(); carried = selection; carrying = true; release = false; } else { if (!destroyed) { CarryObject(carried); //for some reason sometimes this statement does not react and it takes few clicks for it to work.... if (Input.GetKey(KeyCode.Mouse2)) { float rotx = Input.GetAxisRaw("Mouse X") * rotationSpeed * Mathf.Deg2Rad; float roty = Input.GetAxisRaw("Mouse Y") * rotationSpeed * Mathf.Deg2Rad; carried.transform.RotateAround(Vector3.up, -rotx); carried.transform.RotateAround(Vector3.right, roty); if (!lockedForRotation) { carried.rigidbody.freezeRotation = true; uiControls.SetActiveHoldUI(false); Cursor.lockState = CursorLockMode.None; camLook.LockCamera(true); lockedForRotation = true; } } else if (Input.GetKeyUp(KeyCode.Mouse1) && !isPainting) { camLook.LockCamera(true); rimColorSelector.SetActive(true); Cursor.visible = true; if (Cursor.lockState != CursorLockMode.None) { Cursor.lockState = CursorLockMode.None; } objectRenderer = carried.transform.gameObject.GetComponentsInChildren <Renderer>(); CP.SetNewColor(objectRenderer[0].material.color); isPainting = true; uiControls.SetActiveChangeColor(false); uiControls.SetActiveConfirmColor(true); } else if (Input.GetKeyUp(KeyCode.Mouse1) && isPainting) { camLook.LockCamera(false); rimColorSelector.SetActive(false); Cursor.visible = false; if (Cursor.lockState != CursorLockMode.Locked) { Cursor.lockState = CursorLockMode.Locked; } isPainting = false; } else if (Input.GetKey(KeyCode.Delete)) { uiControls.SetActiveHoldUI(false); if (ItemHandler.inRange) { uiControls.SetActiveMainUI(true); } RimSpawner.DestroyRim(carried.transform.gameObject); destroyed = true; } if (isPainting) { foreach (Renderer renderer in objectRenderer) { renderer.material.color = CP.TheColor; } } } if (!Input.GetKey(KeyCode.Mouse2) && lockedForRotation) { carried.rigidbody.freezeRotation = false; Cursor.lockState = CursorLockMode.Locked; camLook.LockCamera(false); lockedForRotation = false; uiControls.SetActiveHoldUI(true); } if (Input.GetKey(KeyCode.E)) { return; } if (release) { return; } camLook.LockCamera(false); lockedForRotation = true; rimColorSelector.SetActive(false); if (!Cursor.visible) { Cursor.visible = false; } if (Cursor.lockState != CursorLockMode.Locked) { Cursor.lockState = CursorLockMode.Locked; } isPainting = false; carrying = false; if (destroyed) { destroyed = false; return; } uiControls.SetActiveHoldUI(false); if (ItemHandler.inRange) { uiControls.SetActiveMainUI(true); } Cursor.visible = false; carried.rigidbody.useGravity = true; release = true; } }