private void UpdateBuildingPreview()
    {
        Ray ray = mainCamera.ScreenPointToRay(Mouse.current.position.ReadValue());

        //If Ray Does't Hit Something Then Return
        if (!Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, groundMask))
        {
            return;
        }

        //Dragging Building Preview Object
        buildingPreviewInstance.transform.position = hit.point;
        //If Building Preview Is Not Active
        if (!buildingPreviewInstance.activeSelf)
        {
            //Activate Preview While Dragging
            buildingPreviewInstance.SetActive(true);
        }

        //Setting Building Preview Color Looking CanPlace Situation

        Color color = player.CanPlaceBuilding(buildingCollider, hit.point) ? Color.green : Color.red;

        buildingRendererInstance.material.SetColor("_BaseColor", color);
    }
Esempio n. 2
0
    private void UpdateBuildingPreview()
    {
        Ray ray = mainCamera.ScreenPointToRay(Mouse.current.position.ReadValue());

        if (!Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, floorMask))
        {
            return;
        }

        buildingPreviewInstance.transform.position = hit.point;

        if (!buildingPreviewInstance.activeSelf)
        {
            buildingPreviewInstance.SetActive(true);
        }

        Color color = player.CanPlaceBuilding(buildingCollider, hit.point) ? Color.green : Color.red;

        buildingRendererInstance.material.SetColor("_BaseColor", color);

        foreach (var material in buildingRendererInstance.materials)
        {
            material.color = color;
        }
    }
Esempio n. 3
0
    private void UpdateBuildingPreview()
    {
        //If we hit the floor layermask. Set the preview instance = hit position.
        Ray ray = mainCamera.ScreenPointToRay(Mouse.current.position.ReadValue());

        if (!Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, floorMask))
        {
            return;
        }
        //Beyond here mouse is hitting valid placement layer

        //Set preview position to hit position.
        buildingPreviewInstance.transform.position = hit.point;

        //Activate instance if it is not active.
        if (!buildingPreviewInstance.activeSelf)
        {
            buildingPreviewInstance.SetActive(true);
        }

        //Set color based upon RTSPLAYER CanPlaceBuilding Check. We then assign the buildingRendererMaterial Color.
        Color color = player.CanPlaceBuilding(buildingCollider, hit.point) ? Color.blue : Color.red;       //Ternery operator. If true do first. If false do second

        buildingRendererInstance.material.SetColor("_BaseColor", color);
    }
Esempio n. 4
0
    void UpdateBuildingPreview()
    {
        // not dragging
        if (buildingPreviewInstance == null)
        {
            return;
        }

        // Make sure the mouse is over the floor (hits the floor)
        if (!MUtils.WasAHit(out RaycastHit hit, floorMask))
        {
            return;
        }

        // move to the hit
        buildingPreviewInstance.transform.position = hit.point;

        // if the preview is not active...
        if (!buildingPreviewInstance.activeSelf)
        {
            buildingPreviewInstance.SetActive(true);
        }

        var color = player.CanPlaceBuilding(buildingCollider, hit.point) ? Color.green : Color.red;

        // update color depending on "placeability"
        buildingRendererInstance.material.SetColor("_BaseColor", color);
    }
Esempio n. 5
0
    private void UpdateBuildingPreview()
    {
        try {
            Vector3 pos = Input.touchCount > 0 ? Input.GetTouch(0).position : Mouse.current.position.ReadValue();

            Ray ray = mainCamera.ScreenPointToRay(pos);

            if (!Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, floorMask))
            {
                return;
            }

            buildingPreviewInstance.transform.position = hit.point;

            if (!buildingPreviewInstance.activeSelf)
            {
                buildingPreviewInstance.SetActive(true);
            }

            Color color = player.CanPlaceBuilding(buildingCollider, hit.point) ? Color.green : Color.red;

            buildingRendererInstance.material.SetColor("_BaseColor", color);
        }catch (Exception) {}
    }
    private void UpdateBuildingInstance()
    {
        if (buildingPrevievInstance == null)
        {
            return;
        }
        isRelase = false;
        var ray = mainCamera.ScreenPointToRay(Mouse.current.position.ReadValue());

        if (!Physics.Raycast(ray, out var hit, Mathf.Infinity, floorMask))
        {
            return;
        }

        buildingPrevievInstance.transform.position = hit.point;
        if (!buildingPrevievInstance.activeSelf)
        {
            buildingPrevievInstance.SetActive(true);
        }

        var color = player.CanPlaceBuilding(boxCollider, hit.point) ? Color.green : Color.red;

        buildingRenderer.material.SetColor("_BaseColor", color);
    }