void Update() { if (Input.touchCount == 0) { return; } Touch touch = Input.GetTouch(0); if (IsTouchOverUIObject(touch)) { return; } if (touch.phase == TouchPhase.Began) { if (m_RaycastManager.Raycast(touch.position, m_Hits, TrackableType.PlaneWithinPolygon)) { Pose hitPose = m_Hits[0].pose; if (spawnedObject != null) { // Destroy existing object Destroy(spawnedObject); } spawnedObject = Instantiate(placedPrefab, hitPose.position, hitPose.rotation); // content face the user Vector3 lookVector = Camera.main.transform.position - spawnedObject.transform.position; spawnedObject.transform.rotation = Quaternion.LookRotation(lookVector, Vector3.up); spawnedObject.transform.rotation = new Quaternion(0, spawnedObject.transform.rotation.y, 0, spawnedObject.transform.rotation.w) * Quaternion.Euler(0, 180, 0); ObjectPlacementHandler objectPlacementHandler = spawnedObject.GetComponent <ObjectPlacementHandler>(); objectPlacementHandler.SetObject(hitPose.position); m_UIPanelRoot.SetActive(true); ObjectPlaced?.Invoke(objectPlacementHandler); } } }
private void OnObjectPlaced(ObjectPlacementHandler placedObject) { if (placedObject != null) { if (m_ShowingTapToPlace) { if (m_TapToPlaceAnimation) { m_TapToPlaceAnimation.SetTrigger(k_FadeOffAnim); } m_ShowingTapToPlace = false; } } else { // Show tap to place again if (!m_ShowingTapToPlace) { if (m_TapToPlaceAnimation) { m_TapToPlaceAnimation.SetTrigger(k_FadeOnAnim); } m_ShowingTapToPlace = true; } if (m_ShowingMoveDevice) { if (m_MoveDeviceAnimation) { m_MoveDeviceAnimation.SetTrigger(k_FadeOffAnim); } m_ShowingMoveDevice = false; } } }
private void OnObjectedPlaced(ObjectPlacementHandler placedObject) { m_CurrentObject = placedObject; if (m_CurrentObject != null) { m_CurrentObject.objectMat.color = GetColor(m_CurrentColor); #if UNITY_ANDROID try { AndroidJavaClass jc = new AndroidJavaClass("com.company.product.OverrideUnityActivity"); AndroidJavaObject overrideActivity = jc.GetStatic <AndroidJavaObject>("instance"); overrideActivity.Call("itemPlacedInAR"); } catch (Exception e) { Debug.LogError(e.Message); } #elif UNITY_IOS NativeAPI.itemPlacedInAR(); #endif } }