Esempio n. 1
0
        public static void UpgradeMaterials(Material[] materials, RampUpgradeOptions type = RampUpgradeOptions.CopyFromDirectional, Texture2D pointRampTexture = null)
        {
            // IDs
            var directionalTexId = Shader.PropertyToID("_ToonTex");
            var pointTexId       = Shader.PropertyToID("_ToonPointLightTex");
            // configs
            bool isCopyFromDir = (type & RampUpgradeOptions.CopyFromDirectional) != 0;
            bool isAsync       = (type & RampUpgradeOptions.Asynchronously) != 0;


            for (int i = 0; i != materials.Length; ++i)
            {
                var it = materials[i];

                it.SetTexture(
                    pointTexId,
                    isCopyFromDir ? it.GetTexture(directionalTexId) : pointRampTexture
                    );

                if (isAsync)
                {
                    EditorUtility.DisplayProgressBar(
                        "Upgrading Mateials",
                        string.Format("({0}/{1}){2}", i + 1, materials.Length, it.name),
                        (float)i / (float)materials.Length
                        );
                }
            }
            if (isAsync)
            {
                EditorUtility.ClearProgressBar();
            }
        }
Esempio n. 2
0
        public static void UpgradeMaterials(ScheduledMaterial[] scheduledMaterials, RampUpgradeOptions options = RampUpgradeOptions.CopyFromDirectional, Texture2D pointRampTexture = null)
        {
            var materials = scheduledMaterials
                            .Where((it) => it.isScheduled)
                            .Select((it) => it.material)
                            .ToArray()
            ;

            UpgradeMaterials(materials, options, pointRampTexture);
        }