merged mit noah und juilius

This commit is contained in:
DerTyp187
2021-09-25 16:33:18 +02:00
parent 904b534695
commit 935eb3c0be
30 changed files with 8270 additions and 28 deletions

View File

@@ -0,0 +1,66 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BuildingPlacement : MonoBehaviour
{
TerrainCollider terrainCollider;
public GameObject terrain;
Ray ray;
public float rotation = 0;
[SerializeField] public GameObject building;
[SerializeField] bool isPlacing = false;
private Building currentBuilding;
void Start()
{
currentBuilding = building.GetComponent<Building>();
}
void Update()
{
if (Input.GetButtonDown("Build")) { // Wenn man den Button 'B'
if (isPlacing) { // Wenn man 'B' zum zweiten mal dr<64>ckt
isPlacing = false;
currentBuilding.isColliding = 0;
currentBuilding.isPlacing(false);
building.SetActive(false); // Blueprint wird deaktiviert
}
else { // Wenn man zum ersten mal 'B' dr<64>ckt
building.SetActive(true); // Blueprint wird aktiviert
isPlacing = true;
}
}
if (building.transform != null && isPlacing) {
currentBuilding.isPlacing(true);
getRaycastMousePosition();
rotateObject();
if (Input.GetMouseButtonDown(0) && currentBuilding.isColliding == 0) { // Wenn es nicht Collidiert und man Links Klickt
isPlacing = false;
currentBuilding.isPlacing(false);
Instantiate(building, building.transform.position, building.transform.rotation); // Placed das Gebäude
building.SetActive(false); // Blueprint wird deaktiviert
}
}
}
void getRaycastMousePosition() // Position of Mouse in World-Space
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitData;
if (terrain.GetComponent<Collider>().Raycast(ray, out hitData, Mathf.Infinity))
{
building.transform.position = hitData.point;
}
}
void rotateObject()
{
if (Input.GetButtonDown("CounterRotate")) { // If Player presses button 'Left ALT' + 'R'
building.transform.Rotate(0, -10, 0); // Rotates the building counter clockwise
}
else if (Input.GetButtonDown("Rotate")) { // If Player presses button 'R'
building.transform.Rotate(0, 10, 0); // Rotates the building clockwise
}
}
}