MinMap.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using DG.Tweening;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class MinMap : MonoBehaviour
  7. {
  8. public RectTransform mapPlayer;
  9. public Transform CrystalsParent;
  10. public Image point;
  11. public LineRenderer LineItem;
  12. public Transform LineParent;
  13. public RectTransform Rpoint;
  14. public Image Map;
  15. /// <summary>
  16. /// 所有路线
  17. /// </summary>
  18. public List<LineRenderer> list_route = new List<LineRenderer>();
  19. /// <summary>
  20. /// 小地图上所有Image
  21. /// </summary>
  22. public List<Image> listAllPoint;
  23. /// <summary>
  24. /// 显示角色在小地图的位置 ( Position EulerAngles)
  25. /// </summary>
  26. public void ShowPlayer(Vector3 pos, float rot)
  27. {
  28. mapPlayer.localPosition = pos;
  29. mapPlayer.localRotation = Quaternion.Euler(0, 0, -rot);
  30. }
  31. private void Update()
  32. {
  33. this.transform.localPosition = new Vector3(0.294f, 0.2405f,2.7f);
  34. this.transform.localEulerAngles = Vector3.zero;
  35. }
  36. /// <summary>
  37. /// 显示所有水晶点 (所有可触发交互的地方)
  38. /// </summary>
  39. /// <param name="list_Point"></param>
  40. public void ShowPoint(List<Vector3> list_Point)
  41. {
  42. for (int i = 0; i < list_Point.Count; i++)
  43. {
  44. var pos = list_Point[i];
  45. Image newPoint = Instantiate(point, CrystalsParent);
  46. newPoint.GetComponent<RectTransform>().localPosition = new Vector3(pos.x, -pos.y, 0);
  47. newPoint.gameObject.SetActive(true);
  48. listAllPoint.Add(newPoint.GetComponent<Image>());
  49. }
  50. mapPlayer.transform.SetAsLastSibling();
  51. }
  52. public void SetRoute(int index, bool isshow)
  53. {
  54. list_route[index].gameObject.SetActive(isshow);
  55. }
  56. public Material mats;
  57. public void SettingMapRoute(List<Vector3> listMapRoutePos, string linename)
  58. {
  59. var line = Instantiate(LineItem, LineParent);
  60. line.name = linename;
  61. line.GetComponent<LineRenderer>().material = mats;
  62. line.transform.localPosition = Vector3.zero;
  63. line.startWidth = 3;
  64. line.endWidth = 3;
  65. line.positionCount = 0;
  66. line.positionCount = listMapRoutePos.Count;
  67. for (int i = 0; i < listMapRoutePos.Count; i++)
  68. {
  69. line.SetPosition(i, listMapRoutePos[i]);
  70. }
  71. line.gameObject.AddComponent<LineEffect>();
  72. list_route.Add(line);
  73. }
  74. }