AniPickOnImage.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. namespace MetaClient
  6. {
  7. public class AniPickOnImage : MonoBehaviour
  8. {
  9. public AniManager bonePicture;
  10. public BonePicTarget bonePicTarget;
  11. void Start()
  12. {
  13. if (this.gameObject.GetComponent<Button>() == null)
  14. {
  15. Button _button = this.gameObject.AddComponent<Button>();
  16. _button.onClick.AddListener(PickOn);
  17. }
  18. }
  19. public void PickOn()
  20. {
  21. if (bonePicture.eIKPickOnButtonStyple == EIKPickOnButtonStyple.None || bonePicture.eIKPickOnButtonStyple == EIKPickOnButtonStyple.Choose)
  22. {
  23. Image _image = this.gameObject.GetComponent<Image>();
  24. int _index = bonePicture.chooseImage.IndexOf(bonePicTarget);
  25. if (_index == -1)
  26. {
  27. if (bonePicture.chooseImage.Count == 0)
  28. {
  29. Choose();
  30. }
  31. else
  32. {
  33. Transform _bonePar = bonePicture.chooseImage[bonePicture.chooseImage.Count - 1].bone;
  34. foreach (Transform child in _bonePar)
  35. {
  36. if (child == bonePicTarget.bone)
  37. {
  38. Choose();
  39. }
  40. }
  41. }
  42. }
  43. else
  44. {
  45. Cancel();
  46. }
  47. }
  48. }
  49. public void Choose()
  50. {
  51. Image _image = this.gameObject.GetComponent<Image>();
  52. bonePicture.chooseImage.Add(bonePicTarget);
  53. _image.color = Color.blue;
  54. }
  55. public void Cancel()
  56. {
  57. Image _image = this.gameObject.GetComponent<Image>();
  58. int _index = bonePicture.chooseImage.IndexOf(bonePicTarget);
  59. bonePicture.chooseImage.RemoveAt(_index);
  60. _image.color = Color.red;
  61. }
  62. }
  63. }