void Update()
    {
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);

            touchPosition = touch.position;

            if (!objectTouched && (touch.phase == TouchPhase.Began))
            {
                Ray        ray = arCamera.ScreenPointToRay(touch.position);
                RaycastHit hitObject;

                if (Physics.Raycast(ray, out hitObject))
                {
                    PlacementObject placementObject = hitObject.transform.GetComponent <PlacementObject>();

                    if (placementObject != null)
                    {
                        menuController.objectMenuUI.SetActive(true);
                    }
                }
            }
        }
    }
Exemplo n.º 2
0
 // Update is called once per frame
 void Update()
 {
     if (Input.touchCount > 0)
     {
         Touch t = Input.GetTouch(0);
         touchPosition = t.position;
         if (t.phase == TouchPhase.Began)
         {
             Ray        ray = arCamera.ScreenPointToRay(t.position);
             RaycastHit hitObject;
             if (Physics.Raycast(ray, out hitObject))
             {
                 PlacementObject placementObj = hitObject.transform.GetComponent <PlacementObject>();
                 if (placementObj != null)
                 {
                     if (currentObj.tag == placementObj.tag)
                     {
                         currentObj.matched   = true;
                         placementObj.matched = true;
                     }
                     ChangeSelectObject(placementObj);
                     currentObj = placementObj;
                 }
             }
         }
     }
 }
    void Update()
    {
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            touchPosition = touch.position;

            if (touch.phase == TouchPhase.Began)
            {
                Ray        ray = Camera.ScreenPointToRay(touch.position);
                RaycastHit hitObject;
                if (Physics.Raycast(ray, out hitObject))
                {
                    lastSelectedObject = hitObject.transform.GetComponent <PlacementObject>();
                    if (lastSelectedObject != null)
                    {
                        ChangeSelectedObject(lastSelectedObject);
                    }
                }
                else
                {
                    lastSelectedObject = null;
                    if (lastSelectedObject == null)
                    {
                        PlacementObject[] allObjects = FindObjectsOfType <PlacementObject>();
                        foreach (PlacementObject placementObject in allObjects)
                        {
                            placementObject.Selected = false;
                        }
                    }
                }
            }
        }
    }
Exemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        if (Input.touchCount > 0)
        {
            Touch posicion = Input.GetTouch(0);
            touchPosicion = posicion.position;

            if (posicion.phase == TouchPhase.Began)
            {
                Ray        ray = arCamara.ScreenPointToRay(posicion.position);
                RaycastHit hitObject;

                if (Physics.Raycast(ray, out hitObject))
                {
                    PlacementObject placementObjects = hitObject.transform.GetComponent <PlacementObject>();
                    if (placementObjects != null)
                    {
                        if (placementObjects.gameObject == Verdura)
                        {
                            Vida.Changelife();
                            Points.removePoints(10);
                        }
                    }
                }
            }
        }
    }
Exemplo n.º 5
0
 void Update()
 {
     if (_disabled)
     {
         return;
     }
     if (Input.GetKeyDown(KeyCode.F2))
     {
         EndPlacement();
     }
     if (_currentlyActiveObject != null)
     {
         if (Input.GetAxisRaw("Rotate") != 0)
         {
             _currentlyActiveObject.transform.Rotate(Vector3.up, RotationSpeed * Time.unscaledDeltaTime * Input.GetAxisRaw("Rotate"));
         }
         if (updateRaycastHit())
         {
             _currentlyActiveObject.gameObject.SetActive(true);
             _currentlyActiveObject.transform.position = _lastHit.point;
             if (_currentlyDragging)
             {
                 if (!Input.GetMouseButton(0))
                 {
                     _currentlyDragging = false;
                     _currentlyActiveObject.SetInPlacedState();
                     _currentlyActiveObject = null;
                 }
             }
             else
             {
                 if (Input.GetMouseButtonDown(0))
                 {
                     var placedObject = Instantiate(_currentlyActiveObject);
                     placedObject.SetInPlacedState();
                     _placedObjects.Add(placedObject);
                     EndPlacement();
                     OnObjectPlaced();
                 }
             }
         }
         else
         {
             _currentlyActiveObject.gameObject.SetActive(false);
         }
     }
     else
     {
         if (Input.GetMouseButtonDown(0) && updateRaycastHit())
         {
             var placedObject = _lastHit.collider.GetComponentInParent <PlacementObject>();
             if (placedObject != null)
             {
                 _currentlyActiveObject = placedObject;
                 _currentlyActiveObject.SetInPlacementState();
                 _currentlyDragging = true;
             }
         }
     }
 }
Exemplo n.º 6
0
    void Update()
    {
        // do not capture events unless the welcome panel is hidden
        if (welcomePanel.activeSelf)
        {
            return;
        }

        if (generateRayAfterSeconds >= rayTimer)
        {
            // creates a ray from the screen point origin
            Ray ray = arCamera.ScreenPointToRay(selector.transform.position);

            RaycastHit hitObject;
            if (Physics.Raycast(ray, out hitObject, rayDistanceFromCamera))
            {
                PlacementObject placementObject = hitObject.transform.GetComponent <PlacementObject>();
                if (placementObject != null)
                {
                    ChangeSelectedObject(placementObject);
                }
            }
            else
            {
                ChangeSelectedObject();
            }

            rayTimer = 0;
        }
        else
        {
            rayTimer += Time.deltaTime * 1.0f;
        }
    }
    void Update()
    {
        // do not capture events unless the welcome panel is hidden
        if (welcomePanel.activeSelf)
        {
            return;
        }

        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);

            touchPosition = touch.position;

            if (touch.phase == TouchPhase.Began)
            {
                Ray        ray = arCamera.ScreenPointToRay(touch.position);
                RaycastHit hitObject;
                if (Physics.Raycast(ray, out hitObject))
                {
                    PlacementObject placementObject = hitObject.transform.GetComponent <PlacementObject>();
                    if (placementObject != null)
                    {
                        ChangeSelectedObject(placementObject);
                    }
                }
            }
        }
    }
    public void InstantiateObject(int objectIndex)
    {
        PlacementObject  obj1    = Instantiate(objects[objectIndex], PlacementController.RayCastToWorld().position + Vector3.one, Quaternion.identity);
        ButtonController button1 = Instantiate(buttonController);

        button1.transform.parent = controlPanel.transform;
        button1.obj = obj1;
    }
Exemplo n.º 9
0
 public void EndPlacement()
 {
     if (_currentlyActiveObject != null)
     {
         Destroy(_currentlyActiveObject.gameObject);
         _currentlyActiveObject = null;
     }
 }
Exemplo n.º 10
0
 void Start()
 {
     foreach (Transform child in PlacementTileHolder.transform)
     {
         PlacementTiles.Add(child);
     }
     PlacementObject = Instantiate(PlacementObject);
 }
    void Update()
    {
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            touchPosition = touch.position;

            if (touch.phase == TouchPhase.Began)
            {
                Ray        ray = arCamera.ScreenPointToRay(touch.position);
                RaycastHit hitObject;
                if (Physics.Raycast(ray, out hitObject))
                {
                    lastSelectedObject = hitObject.transform.GetComponent <PlacementObject>();
                    if (lastSelectedObject != null)
                    {
                        ChangeSelectedObject(lastSelectedObject);
                    }
                }
                else
                {
                    lastSelectedObject = null;
                    if (lastSelectedObject == null)
                    {
                        PlacementObject[] allObjects = FindObjectsOfType <PlacementObject>();
                        foreach (PlacementObject placementObject in allObjects)
                        {
                            placementObject.Selected = false;
                        }
                    }
                }

                if (arRaycastManager.Raycast(touchPosition, hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon))
                {
                    Pose hitPose = hits[0].pose;

                    if (lastSelectedObject == null)
                    {
                        lastSelectedObject = Instantiate(placedPrefab, hitPose.position, hitPose.rotation).GetComponent <PlacementObject>();
                    }
                }
            }

            if (touch.phase == TouchPhase.Moved)
            {
                if (arRaycastManager.Raycast(touchPosition, hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon))
                {
                    Pose hitPose = hits[0].pose;

                    if (lastSelectedObject != null && lastSelectedObject.Selected)
                    {
                        lastSelectedObject.transform.parent.position = hitPose.position;
                        lastSelectedObject.transform.parent.rotation = hitPose.rotation;
                    }
                }
            }
        }
    }
Exemplo n.º 12
0
 public void DisableObjectPlacement()
 {
     if (_currentlyActiveObject != null)
     {
         Destroy(_currentlyActiveObject.gameObject);
         _currentlyActiveObject = null;
     }
     _disabled = true;
 }
Exemplo n.º 13
0
    void Update()
    {
        // do not capture events unless the welcome panel is hidden
        if (welcomePanel.activeSelf)
        {
            return;
        }

        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);

            touchPosition = touch.position;

            if (touch.phase == TouchPhase.Began)
            {
                Ray        ray = arCamera.ScreenPointToRay(touch.position);
                RaycastHit hitObject;
                if (Physics.Raycast(ray, out hitObject))
                {
                    lastSelectedObject = hitObject.transform.GetComponent <PlacementObject>();
                    if (lastSelectedObject != null)
                    {
                        PlacementObject[] allOtherObjects = FindObjectsOfType <PlacementObject>();
                        foreach (PlacementObject placementObject in allOtherObjects)
                        {
                            placementObject.Selected = placementObject == lastSelectedObject;
                        }
                    }
                }
            }

            if (touch.phase == TouchPhase.Ended)
            {
                lastSelectedObject.Selected = false;
            }
        }

        if (arRaycastManager.Raycast(touchPosition, hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon))
        {
            Pose hitPose = hits[0].pose;

            if (lastSelectedObject == null)
            {
                lastSelectedObject = Instantiate(placedPrefab, hitPose.position, hitPose.rotation).GetComponent <PlacementObject>();
            }
            else
            {
                if (lastSelectedObject.Selected)
                {
                    lastSelectedObject.transform.position = hitPose.position;
                    lastSelectedObject.transform.rotation = hitPose.rotation;
                }
            }
        }
    }
Exemplo n.º 14
0
 void ClearSelection()
 {
     if (lastSelectedObject != null)
     {
         lastSelectedObject.IsSelected = false;
         lastSelectedObject.GetComponent <Outline>().enabled = false;
         onObjectSelected.Raise(false);
     }
     lastSelectedObject = null;
 }
Exemplo n.º 15
0
 public void UpdateUIAccordingToSelectedObject(PlacementObject selectedObject)
 {
     if (selectedObject == null)
     {
         UpdateAnnotationUI(new PlacementObject.Annotation());
         return;
     }
     UpdateManipUI(selectedObject);
     UpdateAnnotationUI(selectedObject.annotation);
 }
Exemplo n.º 16
0
    public void StartPlacement(GameObject prefab)
    {
        if (_currentlyActiveObject != null)
        {
            Destroy(_currentlyActiveObject.gameObject);
        }
        var newObject = Instantiate(prefab);

        _currentlyActiveObject = newObject.AddComponent <PlacementObject>();
        _currentlyActiveObject.CreatedFromPrefab = prefab;
        _currentlyActiveObject.SetInPlacementState();
    }
Exemplo n.º 17
0
    void Update()
    {
        // do not capture events unless the welcome panel is hidden
        if (welcomePanel.activeSelf)
        {
            return;
        }

        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);

            touchPosition = touch.position;

            if (touch.phase == TouchPhase.Began)
            {
                Ray        ray = arCamera.ScreenPointToRay(touch.position);
                RaycastHit hitObject;

                // if we got a hit meaning that it was selected
                if (Physics.Raycast(ray, out hitObject))
                {
                    PlacementObject placementObject             = hitObject.transform.GetComponent <PlacementObject>();
                    MeshRenderer    placementObjectMeshRenderer = placedObject.GetComponent <MeshRenderer>();
                    if (placementObject != null)
                    {
                        placementObject.Selected = true;
                        placementObjectMeshRenderer.material.color = activeColor;

                        if (displayCanvas)
                        {
                            placementObject.ToggleCanvas();
                        }
                    }
                } // nothing selected so set the sphere color to inactive
                else
                {
                    PlacementObject placementObject             = placedObject.GetComponent <PlacementObject>();
                    MeshRenderer    placementObjectMeshRenderer = placedObject.GetComponent <MeshRenderer>();
                    if (placementObject != null)
                    {
                        placementObject.Selected = false;
                        placementObjectMeshRenderer.material.color = inactiveColor;

                        if (displayCanvas)
                        {
                            placementObject.ToggleCanvas();
                        }
                    }
                }
            }
        }
    }
Exemplo n.º 18
0
    public PlacementObject PlaceObject(Vector3 position, Quaternion rotation, Color color, string priority, string audio, string text, string image)
    {
        //ARReferencePoint newAnchor = anchorManager.AddReferencePoint(appStateManager.placementCursorPose);
        PlacementObject newPlaced = Instantiate(objectToPlace, position, rotation);

        newPlaced.gameObject.transform.GetComponent <MeshRenderer>().material.SetColor("_EmissionColor", color);
        newPlaced.SetOverlayText(priority);
        newPlaced.audioPath = audio;
        newPlaced.imagePath = image;
        newPlaced.textPath  = text;
        placementObjects.Add(newPlaced);
        return(newPlaced);
    }
Exemplo n.º 19
0
    public void Upgrade()
    {
        var interacting = CanvasUI_Main_cs.GetInteracting();
        var h           = interacting.HouseHoldItemData;

        if (interacting != null && interacting.HouseHoldItemData.Upgrade != null)
        {
            MainGameManager.Cash -= interacting.HouseHoldItemData.upgradeCost;

            Vector3    p = interacting.transform.position;
            Quaternion r = interacting.transform.rotation;

            bool canMove   = interacting.CanMove,
                 canDelete = interacting.CanDelete;

            GameObject.Destroy(interacting.gameObject);

            GameObject obj = GameObject.Instantiate(h.Upgrade.prefab);
            obj.name = h.Upgrade.name;
            obj.transform.position = p;
            obj.transform.rotation = r;
            var     placementObj = obj.AddComponent <PlacementObject>();
            Vector2 wd           = CalculateWidthAndDepth(h.Upgrade);
            placementObj.width = wd.x;
            placementObj.depth = wd.y;
            var houseHoldItem = obj.AddComponent <HouseHoldItem_monobehaviour>();
            houseHoldItem.SetHouseHoldItemDataID(h.Upgrade.ID);
            houseHoldItem.CanMove   = canMove;
            houseHoldItem.CanDelete = canDelete;

            _this.currently_buying = houseHoldItem;
            _this.currentlyPlacing = placementObj;


            var transforms = currently_buying.gameObject.GetComponentsInChildren <Transform>();
            foreach (var t in transforms)
            {
                if (t.GetComponent <MeshCollider>() == null)
                {
                    var collider = t.gameObject.AddComponent <MeshCollider>();
                    collider.sharedMesh = t.gameObject.GetComponent <MeshFilter>().sharedMesh;
                    collider.convex     = true;
                }
            }

            currently_buying = null;
            currentlyPlacing = null;

            CanvasUI_Main_cs.RequestCloseUpgrade();
        }
    }
Exemplo n.º 20
0
 public void PlaceObject()
 {
     if (appStateManager.placementCursorIsSurface)
     {
         //logText.text = placementObjects.Count.ToString();
         ARReferencePoint newAnchor = anchorManager.AddReferencePoint(appStateManager.placementCursorPose);
         PlacementObject  newPlaced = Instantiate(objectToPlace, appStateManager.placementCursorPose.position, appStateManager.placementCursorPose.rotation, newAnchor.transform);
         //newPlaced.SetActiveMedia(false);
         placementObjects.Add(newPlaced);
         anchors.Add(newAnchor);
         DragDropBar.gameObject.SetActive(true);
         createRaycastPanel.SetActive(false);
     }
 }
 void ChangeSelectedObject(PlacementObject selected)
 {
     PlacementObject[] allOtherObjects = FindObjectsOfType <PlacementObject>();
     foreach (PlacementObject placementObject in allOtherObjects)
     {
         if (placementObject != lastSelectedObject)
         {
             placementObject.Selected = false;
         }
         else
         {
             placementObject.Selected = true;
         }
     }
 }
Exemplo n.º 22
0
 void RemoveSelectedObject(PlacementObject selected)
 {
     foreach (PlacementObject current in placementobjects)
     {
         if (selected != current)
         {
             current.IsSelected = false;
         }
         else
         {
             current.IsSelected = true;
             //   current.SetActive(false);
         }
     }
 }
Exemplo n.º 23
0
 void ChangeSelectedObject(PlacementObject selected)
 {
     foreach (PlacementObject current in placedObjects)
     {
         MeshRenderer meshRenderer = current.GetComponent <MeshRenderer>();
         if (selected != current)
         {
             current.IsSelected          = false;
             meshRenderer.material.color = inactiveColor;
         }
         else
         {
             current.IsSelected          = true;
             meshRenderer.material.color = activeColor;
         }
     }
 }
Exemplo n.º 24
0
 public void changeSelectedLabel(PlacementObject selected)
 {
     if (string.Equals(selected.getLabel().Trim(), "Emergency"))
     {
         selected.SetOverlayText("Low Priority");
         selected.gameObject.transform.GetComponent <MeshRenderer>().material.SetColor("_EmissionColor", Color.green);
     }
     else if (string.Equals(selected.getLabel().Trim(), "Medium"))
     {
         selected.SetOverlayText("Emergency");
         selected.gameObject.transform.GetComponent <MeshRenderer>().material.SetColor("_EmissionColor", Color.red);
     }
     else if (string.Equals(selected.getLabel().Trim(), "Low Priority"))
     {
         selected.SetOverlayText("Medium");
         selected.gameObject.transform.GetComponent <MeshRenderer>().material.SetColor("_EmissionColor", Color.yellow);
     }
 }
Exemplo n.º 25
0
 void SelectedObject(PlacementObject selected)
 {
     PlacementObject[] allOtherObjects = FindObjectsOfType <PlacementObject>();
     foreach (PlacementObject current in allOtherObjects)
     {
         MeshRenderer meshRenderer = current.GetComponent <MeshRenderer>();
         meshRenderer.enabled = true;
         if (selected != current)
         {
             current.Selected            = false;
             meshRenderer.material.color = inactiveColor;
         }
         else
         {
             current.Selected            = true;
             meshRenderer.material.color = activeColor;
         }
     }
 }
Exemplo n.º 26
0
 // Update is called once per frame
 void Update()
 {
     if (Input.touchCount > 0)
     {
         Touch touch = Input.GetTouch(0);
         if (touch.phase == TouchPhase.Began)
         {
             Ray        ray = arcamera.ScreenPointToRay(touch.position);
             RaycastHit hitObject;
             if (Physics.Raycast(ray, out hitObject))
             {
                 PlacementObject placementObject = hitObject.transform.GetComponent <PlacementObject>();
                 if (placementObject != null)
                 {
                     RemoveSelectedObject(placementObject);
                     hitObject.transform.gameObject.SetActive(false);
                 }
             }
         }
     }
 }
Exemplo n.º 27
0
    void Update()
    {
        if (Input.touchCount > 0)
        {
            Touch posicion = Input.GetTouch(0);
            touchPosicion = posicion.position;

            if (posicion.phase == TouchPhase.Began)
            {
                Ray        ray = arCamara.ScreenPointToRay(posicion.position);
                RaycastHit hitObject;

                if (Physics.Raycast(ray, out hitObject))
                {
                    PlacementObject placementObjects = hitObject.transform.GetComponent <PlacementObject>();
                    if (placementObjects != null)
                    {
                        if (placementObjects.gameObject == Arbol)
                        {
                            if (click == false)
                            {
                                click        = true;
                                frutaspawn   = new GameObject[5];
                                verduraspawn = new GameObject[2];
                                for (int i = 0; i < 5; i++)
                                {
                                    frutaspawn[i] = Instantiate(fruta.gameObject, new Vector3(gameObject.transform.position.x + Random.Range((float)-0.06, (float)0.06), gameObject.transform.position.y, gameObject.transform.position.z - Random.Range((float)0.015, (float)0.06)), Quaternion.identity);
                                    ListFruit.ListaFrutas.Add(frutaspawn[i].AddComponent <Fruta>());
                                }
                                for (int i = 0; i < 2; i++)
                                {
                                    verduraspawn[i] = Instantiate(Verdura, new Vector3(gameObject.transform.position.x + Random.Range((float)-0.06, (float)0.06), gameObject.transform.position.y, gameObject.transform.position.z - Random.Range((float)0.015, (float)0.06)), Quaternion.identity);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
Exemplo n.º 28
0
 void ChangeSelectedObject(PlacementObject selected)
 {
     Debug.LogError($"changing colour of obects");
     PlacementObject[] allOtherObjects = FindObjectsOfType <PlacementObject>();
     foreach (PlacementObject current in allOtherObjects)
     {
         Debug.LogError($"current is {current}");
         MeshRenderer meshRenderer = current.GetComponent <MeshRenderer>();
         meshRenderer.enabled = true;
         Debug.LogError($"mesh renderer{meshRenderer}");
         if (selected != current)
         {
             current.Selected            = false;
             meshRenderer.material.color = inactiveColor;
         }
         else
         {
             current.Selected            = true;
             meshRenderer.material.color = activeColor;
         }
     }
 }
Exemplo n.º 29
0
    void ChangeSelectedObject(PlacementObject selected = null)
    {
        foreach (PlacementObject current in placedObjects)
        {
            MeshRenderer meshRenderer = current.GetComponent <MeshRenderer>();
            if (selected != current)
            {
                current.Selected            = false;
                meshRenderer.material.color = inactiveColor;
            }
            else
            {
                current.Selected            = true;
                meshRenderer.material.color = activeColor;
            }

            if (displayOverlay)
            {
                current.ToggleOverlay();
            }
        }
    }
Exemplo n.º 30
0
    private void Update()
    {
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            touchPosition = touch.position;

            if (touch.phase == TouchPhase.Began)
            {
                Ray        ray = targetCamera.ScreenPointToRay(touchPosition);
                RaycastHit hitObject;
                if (Physics.Raycast(ray, out hitObject))
                {
                    lastSelectedObject = hitObject.transform.GetComponent <PlacementObject>();
                    if (lastSelectedObject != null)
                    {
                        PlacementObject [] allOtherObjects = FindObjectsOfType <PlacementObject>();
                        foreach (PlacementObject placementObject in allOtherObjects)
                        {
                            placementObject.Selected = placementObject == lastSelectedObject;
                        }
                    }
                }
            }
            if (touch.phase == TouchPhase.Ended)
            {
                lastSelectedObject.Selected = false;
            }
        }
        if (arRaycastManagerOrigin.Raycast(touchPosition, hits, UnityEngine.XR.ARSubsystems.TrackableType.PlaneWithinPolygon))
        {
            Pose hitPose = hits[0].pose;
            if (lastSelectedObject.Selected)
            {
                lastSelectedObject.transform.position = hitPose.position;
                lastSelectedObject.transform.rotation = hitPose.rotation;
            }
        }
    }