Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.07 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using UI.Xml;
  3. using UnityEngine.UI;
  4.  
  5. public class TargetGraphicAttribute : CustomXmlAttribute
  6. {
  7.     public override bool UsesApplyMethod { get { return true; } }
  8.     public override List<string> PermittedElements { get { return new List<string>() { "Button", "Dropdown", "Toggle", "InputField", "TextMeshProDropdown", "TextMeshProInputField" }; } }
  9.  
  10.     public override void Apply(XmlElement xmlElement, string value, AttributeDictionary elementAttributes)
  11.     {
  12.         var selectable = xmlElement.GetComponent<Selectable>();
  13.  
  14.         if (selectable != null)
  15.         {
  16.             XmlLayoutTimer.AtEndOfFrame(() =>
  17.             {
  18.  
  19.                 var targetElement = xmlElement.GetElementByInternalId<Image>(value);
  20.  
  21.                 if (targetElement == null) targetElement = xmlElement.xmlLayoutInstance.GetElementById<Image>(value);
  22.  
  23.                 if (targetElement != null)
  24.                 {
  25.                     selectable.targetGraphic = targetElement;
  26.                 }
  27.             }, xmlElement, true);
  28.         }
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement