Files
traffic-unity/Assets/Scripts/BuildingSystem/StreetBuilding.cs
Janis fe2da27074 dfg
2022-12-14 21:47:16 +01:00

63 lines
1.5 KiB
C#

using UnityEngine;
public class StreetBuilding : MonoBehaviour
{
GameObject currentStreetPSO;
Vector3 startPosition;
private void Update()
{
if (Input.GetKeyDown(KeyCode.H))
{
if (currentStreetPSO == null)
{
StartBuilding();
}
else
{
StopBuilding();
}
}
if (currentStreetPSO != null)
{
if (Input.GetKeyDown(KeyCode.J))
{
if (currentStreetPSO.GetComponent<PlaceableStreetObject>().placeable)
{
PlaceBuilding();
}
}
}
}
private void StartBuilding()
{
startPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
startPosition.z = 0;
currentStreetPSO = Instantiate(PrefabDictionary.instance.oneWayStreetPSO, startPosition, Quaternion.identity);
}
private void StopBuilding()
{
Destroy(currentStreetPSO);
currentStreetPSO = null;
startPosition = Vector3.zero;
}
private void PlaceBuilding()
{
Transform placedTransform = currentStreetPSO.transform;
GameObject newStreet = Instantiate(PrefabDictionary.instance.oneWayStreet, placedTransform.position, placedTransform.rotation);
newStreet.transform.localScale = placedTransform.localScale;
newStreet.GetComponent<StreetContainer>().Place();
StopBuilding();
}
}