Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.U2D.Animation;
  5. using UnityEngine.UIElements;
  6. namespace Unity.U2D.Animation.Sample
  7. {
  8. internal class SkeletonSharingUI : MonoBehaviour
  9. {
  10. [SerializeField]
  11. SpriteLibraryAsset[] m_SpriteLibraryAssets;
  12. [SerializeField]
  13. SpriteLibrary m_TargetSpriteLibrary;
  14. void OnEnable()
  15. {
  16. var uiDocument = GetComponent<UIDocument>();
  17. var description = uiDocument.rootVisualElement.Q<Label>("Description");
  18. description.text = "The entire character visual can be swapped by changing the SpriteLibraryAsset that is being used by the SpriteLibrary.\n\n" +
  19. "The Variant character is rigged using Skeleton Sharing where the it shares the bone structure with the Primary asset";
  20. var choices = new List<string>(m_SpriteLibraryAssets.Length);
  21. var dropdownField = uiDocument.rootVisualElement.Q<DropdownField>();
  22. foreach (var spriteLibraryAsset in m_SpriteLibraryAssets)
  23. choices.Add(spriteLibraryAsset.name);
  24. dropdownField.choices = choices;
  25. dropdownField.value = m_SpriteLibraryAssets[0].name;
  26. dropdownField.RegisterValueChangedCallback(OnDropdownValueChanged);
  27. }
  28. void OnDropdownValueChanged(ChangeEvent<string> evt)
  29. {
  30. SpriteLibraryAsset selectedAsset = null;
  31. foreach (var asset in m_SpriteLibraryAssets)
  32. {
  33. if (asset.name == evt.newValue)
  34. {
  35. selectedAsset = asset;
  36. break;
  37. }
  38. }
  39. if (selectedAsset != null)
  40. m_TargetSpriteLibrary.spriteLibraryAsset = selectedAsset;
  41. }
  42. }
  43. }