using System.Collections.Generic; using AsteroidGame.Entities.Structures.Scripts; using UnityEngine; using UnityEngine.InputSystem; namespace AsteroidGame.Handlers { public class BuildingHandler : MonoBehaviour { [Header("Connections")] [SerializeField] private Camera _camera; [Header("Assigned on start")] [SerializeField] int buildingSelector = 0; [Header("Prefabs")] [SerializeField] private List buildings = new List(); private void OnClick(InputValue value) { Vector3 tempVec = new Vector3(); Plane plane = new Plane(Vector3.up, Vector3.zero); Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.ReadValue()); if (plane.Raycast(ray, out float distance)) { tempVec = ray.GetPoint(distance); } //var tempVec = new Vector3(Mouse.current.position.ReadValue().x, Mouse.current.position.ReadValue().y, -_camera.transform.position.z); // var point = _camera.ScreenToWorldPoint(tempVec); // var ray = _camera.ScreenPointToRay(tempVec); // print($"Mouse:{Mouse.current.position.ReadValue()} world:{point}"); // if (!Physics.Raycast(ray, out var hit)) return; // var pos = hit.transform.position; // print($"{hit.transform.name} was hit! world:{pos}"); Instantiate(buildings[buildingSelector], tempVec, Quaternion.identity, transform); //var spawnPoint = new Vector3(1, 1, 0); //Instantiate(buildings[buildingSelector], spawnPoint, Quaternion.identity, transform); // print($"BuildManagerClick"); } // public void PlaceStructure(GameObject _tileGO) // { // Tile _tile = _tileGO.GetComponentInChildren(); // // // Debug.Log($"Placing tower on Tile: {_tileGO.transform.position}"); // Debug.Log($"Placing tower on Node: {_node.coordinates}"); // // if (scoreHandler.CurrentBalance - buildings[buildingSelector].Cost < 0) // { // print("Insufficient Funds!"); // return; // } // else // { // scoreHandler.ModifyWealth(-buildings[buildingSelector].Cost); // } // } // public Vector2Int GetVector2(GameObject _o) // { // return new Vector2Int((Mathf.RoundToInt(_o.transform.position.x) / 10), // (Mathf.RoundToInt(_o.transform.position.z / 10))); // } } }