private void PlaceObject() { Vector2 screenPoint = Vector2.zero; Camera camera = HoloKitCamera.Instance.cameraCenter; switch (placePointer) { case PlacePointer.CenterScreen: screenPoint = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f); break; case PlacePointer.Touch: screenPoint = Input.touches[0].position; break; } if (HoloKitUITool.IsOverUI(Input.touches[0].position)) { return; } Ray ray = camera.ScreenPointToRay(screenPoint); RaycastHit rayHit; if (Physics.Raycast(ray, out rayHit, float.MaxValue, placeMask)) { holder.SetActive(!holder.activeSelf); if (holder.activeSelf) { holder.transform.position = rayHit.point + new Vector3(0, 0, 0.2f); if (isRotateToCamera) { Quaternion lookRotation = camera.transform.rotation; //holder.transform.rotation = Quaternion.Euler(new Vector3(0f, lookRotation.eulerAngles.y + 180f, 0f)); holder.transform.rotation = Quaternion.Euler(new Vector3(0f, lookRotation.eulerAngles.y, 0f)); } if (onPlace != null) { onPlace.Invoke(); } } else { if (onHide != null) { onHide.Invoke(); } } } }
private void Update() { if ((isPlaceOnTouch && Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began && !HoloKitUITool.IsOverUI(Input.touches[0].position))) { PlaceObject(); } }