示例#1
0
 internal void FetchColor()
 {
     if (!m_HasColor.HasValue)
     {
         m_HasColor = ClipboardParser.ParseColor(m_RawContents, out m_ValueColor);
     }
 }
示例#2
0
 internal void FetchVector4()
 {
     if (!m_HasVector4.HasValue)
     {
         m_HasVector4 = ClipboardParser.ParseVector4(m_RawContents, out m_ValueVector4);
     }
 }
示例#3
0
 internal void FetchQuaternion()
 {
     if (!m_HasQuaternion.HasValue)
     {
         m_HasQuaternion = ClipboardParser.ParseQuaternion(m_RawContents, out m_ValueQuaternion);
     }
 }
示例#4
0
 internal void FetchBool()
 {
     if (!m_HasBool.HasValue)
     {
         m_HasBool = ClipboardParser.ParseBool(m_RawContents, out m_ValueBool);
     }
 }
示例#5
0
 internal void FetchLayerMask()
 {
     if (!m_HasLayerMask.HasValue)
     {
         m_HasLayerMask = ClipboardParser.ParseLayerMask(m_RawContents, out m_ValueLayerMask);
     }
 }
示例#6
0
 internal void FetchBounds()
 {
     if (!m_HasBounds.HasValue)
     {
         m_HasBounds = ClipboardParser.ParseBounds(m_RawContents, out m_ValueBounds);
     }
 }
示例#7
0
 internal void FetchGuid()
 {
     if (!m_HasGuid.HasValue)
     {
         m_HasGuid = ClipboardParser.ParseGuid(m_RawContents, out m_ValueGuid);
     }
 }
示例#8
0
 internal void FetchRect()
 {
     if (!m_HasRect.HasValue)
     {
         m_HasRect = ClipboardParser.ParseRect(m_RawContents, out m_ValueRect);
     }
 }
示例#9
0
 internal void FetchEnum()
 {
     if (!m_HasEnum.HasValue)
     {
         m_HasEnum = ClipboardParser.ParseEnum(m_RawContents, out m_ValueEnum);
     }
 }
示例#10
0
 internal void FetchHash128()
 {
     if (!m_HasHash128.HasValue)
     {
         m_HasHash128 = ClipboardParser.ParseHash128(m_RawContents, out m_ValueHash128);
     }
 }
示例#11
0
 internal void FetchFloat()
 {
     if (!m_HasFloat.HasValue)
     {
         m_HasFloat = ClipboardParser.ParseFloat(m_RawContents, out m_ValueFloat);
     }
 }
示例#12
0
 internal void FetchInteger()
 {
     if (!m_HasInteger.HasValue)
     {
         m_HasInteger = ClipboardParser.ParseInteger(m_RawContents, out m_ValueInteger);
     }
 }
示例#13
0
 internal void FetchAnimationCurve()
 {
     if (!m_HasAnimationCurve.HasValue)
     {
         m_HasAnimationCurve   = ClipboardParser.ParseCustom <AnimationCurveWrapper>(m_RawContents, out var wrapper);
         m_ValueAnimationCurve = wrapper.curve;
     }
 }
示例#14
0
 internal void FetchGradient()
 {
     if (!m_HasGradient.HasValue)
     {
         m_HasGradient   = ClipboardParser.ParseCustom <GradientWrapper>(m_RawContents, out var wrapper);
         m_ValueGradient = wrapper.gradient;
     }
 }
示例#15
0
 internal void FetchObject()
 {
     if (!m_HasObject.HasValue)
     {
         m_HasObject   = ClipboardParser.ParseCustom <ObjectWrapper>(m_RawContents, out var wrapper);
         m_ValueObject = wrapper.ToObject();
     }
 }
示例#16
0
        internal bool FetchCustom <T>(out T res) where T : new()
        {
            var key = typeof(T);

            if (m_ValuesCustom.TryGetValue(key, out var cached))
            {
                if (cached != null)
                {
                    res = (T)cached;
                    return(true);
                }
                res = default;
                return(false);
            }
            var ok = ClipboardParser.ParseCustom(m_RawContents, out res);

            m_ValuesCustom.Add(key, ok ? res : default);
            return(ok);
        }