ItemFileView.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using ShadowStudio.Model;
  2. using ShadowStudio.UI;
  3. using System;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. using XRTool.WorldUI;
  9. public class ItemFileView : MonoBehaviour
  10. {
  11. private XRIcon xRIcon;
  12. private Text nameText;
  13. private Toggle toggle;
  14. public ArtContainer artContainer;
  15. public void Init(Texture2D texture2, ArtContainer artContainer, bool isone = false)
  16. {
  17. if (!xRIcon)
  18. {
  19. toggle = transform.GetComponent<Toggle>();
  20. toggle.onValueChanged.AddListener(OnChooseChange);
  21. FileListDlg.ChooseFileAction += OnClick;
  22. ToggleGroup toggleGroup = transform.GetComponentInParent<ToggleGroup>();
  23. toggle.group = toggleGroup;
  24. xRIcon = transform.GetComponentInChildren<XRIcon>();
  25. nameText = transform.GetComponentInChildren<Text>();
  26. }
  27. xRIcon.icon= texture2;
  28. xRIcon.AutoSetSprite();
  29. GoodsInfo info = artContainer.GetGoodsInfo();
  30. nameText.text = info.goods_name;
  31. this.artContainer = artContainer;
  32. if (isone)
  33. {
  34. Invoke("SetInitTrue", 1f);
  35. }
  36. }
  37. private void SetInitTrue()
  38. {
  39. this.toggle.isOn = true;
  40. }
  41. private void OnChooseChange(bool isOn)
  42. {
  43. if (isOn)
  44. {
  45. artContainer.SetSelect();
  46. FileListDlg.artContainer = artContainer;
  47. if (!ArtEditorContainer.Instance)
  48. {
  49. ArtInfoMgr.Instance.LoadModelEditBtn();
  50. ArtEditorContainer.Instance.SetTarget(artContainer, false);
  51. }
  52. if (ArtMoreEditor.Instance)
  53. {
  54. ArtMoreEditor.Instance.SetTarget(artContainer, false);
  55. }
  56. }
  57. else
  58. {
  59. artContainer.UnSetSelect();
  60. FileListDlg.artContainer = null;
  61. }
  62. ArtInfoMgr.ContainerSelect?.Invoke(this.artContainer, isOn);
  63. }
  64. public void OnClick(ArtContainer artContainer,bool select)
  65. {
  66. if (this.artContainer == artContainer)
  67. {
  68. this.toggle.isOn = select;
  69. if (select)
  70. {
  71. FileListDlg.artContainer = artContainer;
  72. }
  73. else
  74. {
  75. FileListDlg.artContainer = null;
  76. }
  77. }
  78. }
  79. private void OnDestroy()
  80. {
  81. FileListDlg.ChooseFileAction -= OnClick;
  82. }
  83. }