using System; using System.Globalization; namespace UnityEngine.UIElements { /// /// Describes a XML int attribute. /// public class UxmlUIntAttributeDescription : TypedUxmlAttributeDescription { /// /// Constructor. /// public UxmlUIntAttributeDescription() { type = "int"; typeNamespace = "http://www.w3.org/2001/XMLSchema"; defaultValue = 0; } /// /// The default value for the attribute, as a string. /// public override string defaultValueAsString => defaultValue.ToString(CultureInfo.InvariantCulture.NumberFormat); /// /// /// Retrieves the value of this attribute from the attribute bag. Returns it if it is found, otherwise return /// defaultValue. /// /// /// The bag of attributes. /// The context in which the values are retrieved. /// /// The value of the attribute. /// public override uint GetValueFromBag(IUxmlAttributes bag, CreationContext cc) { return GetValueFromBag(bag, cc, (s, i) => ConvertValueToUInt(s, i), defaultValue); } public bool TryGetValueFromBag(IUxmlAttributes bag, CreationContext cc, ref uint value) { return TryGetValueFromBag(bag, cc, (s, i) => ConvertValueToUInt(s, i), defaultValue, ref value); } static uint ConvertValueToUInt(string v, uint defaultValue) { return v == null || !uint.TryParse(v, out uint result) ? defaultValue : result; } } }