CapersProject/Assets/02.Scripts/Ui/Tycoon/IndicatorUi.cs
2024-11-19 15:03:43 +09:00

91 lines
3.6 KiB
C#

// using System.Collections.Generic;
// using BlueWater.Npcs.Customers;
// using BlueWater.Tycoons;
// using Sirenix.OdinInspector;
// using UnityEngine;
//
// namespace BlueWater.Uis
// {
// public class IndicatorUi : MonoBehaviour
// {
// [SerializeField, Required]
// private GameObject _uiIndicator;
//
// [SerializeField]
// private Vector2 _widthPadding;
//
// [SerializeField]
// private Vector2 _heightPadding;
//
// private RectTransform _canvasRectTransform;
// private Camera _mainCamera;
// private Dictionary<Customer, GameObject> _customerindicators = new();
// private int _screenWidth;
// private int _screenHeight;
//
// private void Start()
// {
// _canvasRectTransform = GetComponent<RectTransform>();
// _mainCamera = TycoonCameraManager.Instance.MainCamera;
//
// //EventManager.OnCreateCustomer += AddUiIndicator;
// }
//
// private void OnDestroy()
// {
// //EventManager.OnCreateCustomer -= AddUiIndicator;
// }
//
// private void LateUpdate()
// {
// _screenWidth = Screen.width;
// _screenHeight = Screen.height;
//
// foreach (var element in _customerindicators)
// {
// var customer = element.Key;
// var indicator = element.Value;
// if (!customer)
// {
// _customerindicators.Remove(customer);
// Destroy(indicator.gameObject);
// return;
// }
// var target = customer.BalloonUi.transform;
// var screenPosition = _mainCamera.WorldToScreenPoint(target.position);
//
// if (!target.gameObject.activeSelf)
// {
// indicator.SetActive(false);
// continue;
// }
//
// if (screenPosition.z > 0 && screenPosition.x > 0 && screenPosition.x < _screenWidth && screenPosition.y > 0 && screenPosition.y < _screenHeight)
// {
// indicator.SetActive(false);
// }
// else
// {
// indicator.SetActive(true);
// var clampedScreenPosition = screenPosition;
// clampedScreenPosition.x = Mathf.Clamp(screenPosition.x, 0f + _widthPadding.x, _screenWidth - _widthPadding.y);
// clampedScreenPosition.y = Mathf.Clamp(screenPosition.y, 0f + _heightPadding.x, _screenHeight - _heightPadding.y);
// RectTransformUtility.ScreenPointToLocalPointInRectangle(_canvasRectTransform, clampedScreenPosition, _mainCamera, out var localPoint);
// indicator.transform.localPosition = localPoint;
//
// var cameraCenterPosition = new Vector3(_screenWidth * 0.5f, _screenHeight * 0.5f, screenPosition.z);
// var direction = (screenPosition - cameraCenterPosition).normalized;
// var angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
// indicator.transform.localRotation = Quaternion.Euler(0f, 0f, angle - 90f);
// }
// }
// }
//
// private void AddUiIndicator(Customer customer)
// {
// var newUiIndicator = Instantiate(_uiIndicator, transform);
// newUiIndicator.SetActive(false);
// _customerindicators.Add(customer, newUiIndicator);
// }
// }
// }