IconItem.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using LitJson;
  2. using ShadowStudio.Model;
  3. using System;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. using UnityEngine.EventSystems;
  8. using UnityEngine.UI;
  9. using XRTool.Util;
  10. using XRTool.WorldUI;
  11. public class IconItem : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler
  12. {
  13. public static Vector3 ItemPos;
  14. private ArtHandler handler;
  15. public ArtInfo info;
  16. private XRIcon icon;
  17. private Button icon3DBtn;
  18. private GameObject ChoiceBack;
  19. void Start()
  20. {
  21. ChoiceBack = transform.Find("Root/ChoiceBack").gameObject;
  22. }
  23. void Update()
  24. {
  25. timeAllClick = timeAllClick + Time.deltaTime;
  26. }
  27. public void Init(ArtInfo artInfo)
  28. {
  29. this.info = artInfo;
  30. icon = transform.Find("Root/UIRoot/XRIcon").GetComponent<XRIcon>();
  31. icon3DBtn = GetComponent<Button>();
  32. //icon3DBtn.onClick.AddListener(OnClick);
  33. handler = ArtInfoMgr.Instance.CreateArtHandler(info);
  34. var sprite = handler.GetIcon();
  35. if (sprite)
  36. {
  37. icon.icon = sprite as Texture2D;
  38. icon.AutoSetSprite();
  39. }
  40. else
  41. {
  42. handler.GetIcon((tex) =>
  43. {
  44. sprite = tex;
  45. if (sprite)
  46. {
  47. icon.icon = sprite as Texture2D;
  48. icon.AutoSetSprite();
  49. }
  50. });
  51. }
  52. //print(artInfo.ArtName+"--"+sprite);
  53. }
  54. private void OnClick()
  55. {
  56. }
  57. private void HeidBack()
  58. {
  59. ChoiceBack.SetActive(false);
  60. }
  61. private float timeClick;
  62. private float timeAllClick;
  63. public void OnPointerDown(PointerEventData eventData)
  64. {
  65. timeAllClick = Time.deltaTime;
  66. timeClick = Time.deltaTime;
  67. }
  68. public void OnPointerUp(PointerEventData eventData)
  69. {
  70. }
  71. public void OnPointerClick(PointerEventData eventData)
  72. {
  73. if ((timeAllClick - timeClick) < 0.2f)
  74. {
  75. IconItem.ItemPos = this.transform.position;
  76. WSHandler.Room.CreateGood(info.AID,info.ArtId, info.ArtName, UnityUtil.ArtTransferInfo(info), "", ShowViewMgr.Instance.roomId);
  77. ChoiceBack.SetActive(true);
  78. Invoke("HeidBack", 0.2f);
  79. }
  80. }
  81. }