/// This checks whether the Examine button is pressed, and (if so) whether /// the cursor has moved significantly since last check. If it has, it will /// recalculate what it is looking at. 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(); } } else if (!float.IsNegativeInfinity(lastMousePosition.x)) { lastMousePosition = Vector2.negativeInfinity; if (selector == null) { selector = camera.GetComponent <CompositeItemSelector>(); } selector.DisableCamera(); } }
private void Start() { // Mirror is kinda whack if (!hasAuthority) { Destroy(this); } camera = CameraManager.singleton.examineCamera; selector = camera.GetComponent <CompositeItemSelector>(); Assert.IsNotNull(UiPrefab); uiInstance = Instantiate(UiPrefab); examineUi = uiInstance.GetComponent <ExamineUI>(); }
private void Start() { // Mirror is kinda whack if (!hasAuthority) { Destroy(this); } // Establish our minimum frequency timer. This is used to ensure // that objects moving into our cursor are detected. updateFrequency = 1f / MIN_UPDATES_PER_SECOND; updateTimer = 0f; camera = CameraManager.singleton.examineCamera; selector = camera.GetComponent <CompositeItemSelector>(); Assert.IsNotNull(UiPrefab); uiInstance = Instantiate(UiPrefab); examineUi = uiInstance.GetComponent <ExamineUI>(); }
private void Start() { // Prevent duplicate examinators from being in the scene in multiplayer. if (!isLocalPlayer) { Destroy(this); return; } // Establish our minimum frequency timer. This is used to ensure // that objects moving into our cursor are detected. updateFrequency = 1f / MIN_UPDATES_PER_SECOND; updateTimer = 0f; camera = CameraManager.singleton.examineCamera; selector = camera.GetComponent <CompositeItemSelector>(); Assert.IsNotNull(UiPrefab); uiInstance = Instantiate(UiPrefab); examineUi = uiInstance.GetComponent <ExamineUI>(); }