private void Start() { // Mirror is kinda whack if (!hasAuthority) { Destroy(this); } Assert.IsNotNull(UiPrefab); uiInstance = Instantiate(UiPrefab); examineUi = uiInstance.GetComponent <ExamineUI>(); Assert.IsNotNull(examineUi); uiInstance.SetActive(false); selector = Camera.main.transform.GetChild(0).GetComponent <CompositeItemSelector>(); }
private void Update() { if (!isClient) { return; } if (Input.GetButton("Examine")) { Vector3 mousePosition = Input.mousePosition; Vector2 position = new Vector2(mousePosition.x, mousePosition.y); Vector3 cameraPos = camera.transform.position; Quaternion rotation = camera.transform.rotation; if (Vector2.Distance(position, lastMousePosition) > 1 || Vector3.Distance(cameraPos, lastCameraPosition) > 0.05 || Quaternion.Angle(rotation, lastCameraRotation) > 0.1) { lastMousePosition = position; lastCameraPosition = cameraPos; lastCameraRotation = rotation; CalculateExamine(); } examineUi.SetPosition(position); } else if (!float.IsNegativeInfinity(lastMousePosition.x)) { lastMousePosition = Vector2.negativeInfinity; ClearExamine(); if (selector == null) { selector = camera.GetComponent <CompositeItemSelector>(); } selector.DisableCamera(); } }