示例#1
0
        public static ConfigStageRenderingData CreateStageRenderingDataFromMaterials(Material[] mats)
        {
            ConfigStageRenderingData     data = ScriptableObject.CreateInstance <ConfigStageRenderingData>();
            HashSet <string>             set  = new HashSet <string>();
            List <BaseRenderingProperty> list = new List <BaseRenderingProperty>();

            foreach (Material material in mats)
            {
                foreach (BaseRenderingProperty property in DEFAULT_RENDERING_PROPERTIES)
                {
                    if (material.HasProperty(property.propertyName) && !set.Contains(property.propertyName))
                    {
                        if (property is ColorRenderingProperty)
                        {
                            list.Add(new ColorRenderingProperty(property.propertyName, material.GetColor(property.propertyName)));
                        }
                        else if (property is FloatRenderingProperty)
                        {
                            list.Add(new FloatRenderingProperty(property.propertyName, material.GetFloat(property.propertyName), 0f, 100f));
                        }
                        set.Add(property.propertyName);
                    }
                }
            }
            data.properties = list.ToArray();
            return(data);
        }
示例#2
0
        public static ConfigStageRenderingData CreateDefault()
        {
            ConfigStageRenderingData data = ScriptableObject.CreateInstance <ConfigStageRenderingData>();

            data.properties = new BaseRenderingProperty[DEFAULT_RENDERING_PROPERTIES.Length];
            for (int i = 0; i < DEFAULT_RENDERING_PROPERTIES.Length; i++)
            {
                data.properties[i] = DEFAULT_RENDERING_PROPERTIES[i].Clone();
            }
            return(data);
        }
示例#3
0
        public static ConfigStageRenderingData CreateStageRenderingDataFromInstancedProperties(BaseInstancedRenderingProperty[] properties)
        {
            ConfigStageRenderingData     data = ScriptableObject.CreateInstance <ConfigStageRenderingData>();
            HashSet <string>             set  = new HashSet <string>();
            List <BaseRenderingProperty> list = new List <BaseRenderingProperty>();

            foreach (BaseInstancedRenderingProperty property in properties)
            {
                foreach (BaseRenderingProperty property2 in DEFAULT_RENDERING_PROPERTIES)
                {
                    if ((Shader.PropertyToID(property2.propertyName) == property.propertyID) && !set.Contains(property2.propertyName))
                    {
                        list.Add(property.CreateBaseRenderingProperty(property2.propertyName));
                        set.Add(property2.propertyName);
                    }
                }
            }
            data.properties = list.ToArray();
            return(data);
        }
示例#4
0
        public static void CompleteStageRenderingDataWithDefault(ConfigStageRenderingData data)
        {
            List <BaseRenderingProperty> list = new List <BaseRenderingProperty>(data.properties);

            foreach (BaseRenderingProperty property in DEFAULT_RENDERING_PROPERTIES)
            {
                bool flag = false;
                foreach (BaseRenderingProperty property2 in data.properties)
                {
                    if (property.propertyName == property2.propertyName)
                    {
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    list.Add(property);
                }
            }
            data.properties = list.ToArray();
        }