コード例 #1
0
 void CheckSpecialTag()
 {
     if (TagName.Equals(Constants.RenderTypeHelperStr))
     {
         m_specialTag = TemplateSpecialTags.RenderType;
         if (!TemplateHelperFunctions.StringToRenderType.TryGetValue(TagValue, out m_renderType))
         {
             m_renderType = RenderType.Custom;
         }
     }
     else if (TagName.Equals(Constants.RenderQueueHelperStr))
     {
         m_specialTag = TemplateSpecialTags.Queue;
         SetTagValue(TagValue);
     }
     else if (TagName.Equals(Constants.DisableBatchingHelperStr))
     {
         m_specialTag = TemplateSpecialTags.DisableBatching;
         if (!TemplateHelperFunctions.StringToDisableBatching.TryGetValue(TagValue, out m_disableBatching))
         {
             m_disableBatching = DisableBatching.False;
         }
     }
     else
     {
         m_specialTag = TemplateSpecialTags.None;
     }
 }
コード例 #2
0
 public CustomTagData()
 {
     TagName             = string.Empty;
     TagValue            = string.Empty;
     m_specialTag        = TemplateSpecialTags.None;
     m_disableBatching   = DisableBatching.False;
     m_renderType        = RenderType.Opaque;
     m_renderQueue       = RenderQueue.Geometry;
     m_renderQueueOffset = 0;
 }
コード例 #3
0
        public CustomTagData(CustomTagData other)
        {
            TagName    = other.TagName;
            TagValue   = other.TagValue;
            TagId      = other.TagId;
            TagFoldout = other.TagFoldout;

            m_specialTag        = other.m_specialTag;
            m_disableBatching   = other.m_disableBatching;
            m_renderType        = other.m_renderType;
            m_renderQueue       = other.m_renderQueue;
            m_renderQueueOffset = other.m_renderQueueOffset;
        }
コード例 #4
0
        //Used on Template based shaders loading
        public CustomTagData(string data, int id)
        {
            TagId = id;
            string[] arr = data.Split(IOUtils.VALUE_SEPARATOR);
            if (arr.Length > 1)
            {
                TagName  = arr[0];
                TagValue = arr[1];
            }

            if (arr.Length > 2)
            {
                m_specialTag = (TemplateSpecialTags)Enum.Parse(typeof(TemplateSpecialTags), arr[2]);
                switch (m_specialTag)
                {
                case TemplateSpecialTags.RenderType:
                {
                    if (!TemplateHelperFunctions.StringToRenderType.TryGetValue(TagValue, out m_renderType))
                    {
                        m_renderType = RenderType.Custom;
                    }
                }
                break;

                case TemplateSpecialTags.Queue:
                {
                    if (arr.Length == 4)
                    {
                        m_renderQueue = (RenderQueue)Enum.Parse(typeof(RenderQueue), TagValue);
                        int.TryParse(arr[3], out m_renderQueueOffset);
                    }
                    BuildQueueTagValue();
                }
                break;

                case TemplateSpecialTags.DisableBatching:
                {
                    if (!TemplateHelperFunctions.StringToDisableBatching.TryGetValue(TagValue, out m_disableBatching))
                    {
                        m_disableBatching = DisableBatching.False;
                    }
                }
                break;
                }
            }
            else if (UIUtils.CurrentShaderVersion() < 15600)
            {
                CheckSpecialTag();
            }
        }
コード例 #5
0
        public void SetTagValue(params string[] value)
        {
            TagValue = value[0];
            switch (m_specialTag)
            {
            case TemplateSpecialTags.RenderType:
            {
                if (!TemplateHelperFunctions.StringToRenderType.TryGetValue(value[0], out m_renderType))
                {
                    m_renderType = RenderType.Custom;
                    TagValue     = value[0];
                }
            }
            break;

            case TemplateSpecialTags.Queue:
            {
                if (value.Length == 2)
                {
                    m_renderQueue = TemplateHelperFunctions.StringToRenderQueue[value[0]];
                    int.TryParse(value[1], out m_renderQueueOffset);
                }
                else
                {
                    int indexPlus = value[0].IndexOf('+');
                    if (indexPlus > 0)
                    {
                        string[] args = value[0].Split('+');
                        m_renderQueue = TemplateHelperFunctions.StringToRenderQueue[args[0]];
                        int.TryParse(args[1], out m_renderQueueOffset);
                    }
                    else
                    {
                        int indexMinus = value[0].IndexOf('-');
                        if (indexMinus > 0)
                        {
                            string[] args = value[0].Split('-');
                            m_renderQueue = TemplateHelperFunctions.StringToRenderQueue[args[0]];
                            int.TryParse(args[1], out m_renderQueueOffset);
                            m_renderQueueOffset *= -1;
                        }
                        else
                        {
                            m_renderQueue       = TemplateHelperFunctions.StringToRenderQueue[value[0]];
                            m_renderQueueOffset = 0;
                        }
                    }
                }
                BuildQueueTagValue();
            }
            break;

            case TemplateSpecialTags.DisableBatching:
            {
                if (!TemplateHelperFunctions.StringToDisableBatching.TryGetValue(value[0], out m_disableBatching))
                {
                    m_disableBatching = DisableBatching.False;
                    TagValue          = value[0];
                }
            }
            break;
            }
        }