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); }
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; } }
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); }
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); }
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); }