LocationZones.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. /// <summary>
  6. /// Панель зон
  7. /// </summary>
  8. public class LocationZones : MonoBehaviour
  9. {
  10. public Dictionary<uint, ZoneInfo> ZoneInfos = new Dictionary<uint, ZoneInfo>();
  11. // Start is called before the first frame update
  12. void Start()
  13. {
  14. }
  15. // Update is called once per frame
  16. void Update()
  17. {
  18. }
  19. /// <summary>
  20. /// Добавление новой зоны в панель
  21. /// </summary>
  22. /// <param name="zone"></param>
  23. public void AddZone(Zone zone)
  24. {
  25. var zone_info = Instantiate(Resources.Load("GameObjects/ZoneInfo", typeof(ZoneInfo))) as ZoneInfo;
  26. ZoneInfos.Add(zone.id, zone_info);
  27. zone_info.text.text = zone.name;
  28. zone_info.zone = zone;
  29. zone_info.transform.SetParent(gameObject.GetComponent<ScrollRect>().content.transform);
  30. }
  31. /// <summary>
  32. /// Добавление списка зон
  33. /// </summary>
  34. /// <param name="zones"></param>
  35. public void AddRangeZones(List<Zone> zones) {
  36. foreach (var z in zones)
  37. AddZone(z);
  38. }
  39. /// <summary>
  40. /// Удаление зоны
  41. /// </summary>
  42. /// <param name="id"></param>
  43. public void DeleteZone(uint id)
  44. {
  45. if (ZoneInfos.ContainsKey(id))
  46. {
  47. Destroy(ZoneInfos[id].gameObject);
  48. ZoneInfos.Remove(id);
  49. }
  50. }
  51. /// <summary>
  52. /// Удаление всех зон из панели
  53. /// </summary>
  54. public void DeleteAllZones()
  55. {
  56. foreach (var z in ZoneInfos)
  57. Destroy(z.Value);
  58. }
  59. /// <summary>
  60. /// Зона пользователя
  61. /// </summary>
  62. /// <param name="user_id"></param>
  63. public void UserPosition(User user, Structure user_pos)
  64. {
  65. foreach (var z in ZoneInfos)
  66. {
  67. z.Value.UserDetectPosition(user, user_pos);
  68. }
  69. }
  70. }