public EffectScaleIntegrator(WaterfallEffect effect, EffectScaleModifier mod)
        {
            Utils.Log(String.Format("[EffectScaleIntegrator]: Initializing integrator for {0} on modifier {1}", effect.name, mod.fxName), LogType.Modifiers);
            xforms        = new();
            transformName = mod.transformName;
            parentEffect  = effect;
            var roots = parentEffect.GetModelTransforms();

            foreach (var t in roots)
            {
                var t1 = t.FindDeepChild(transformName);
                if (t1 == null)
                {
                    Utils.LogError(String.Format("[EffectScaleIntegrator]: Unable to find transform {0} on modifier {1}", transformName, mod.fxName));
                }
                else
                {
                    xforms.Add(t1);
                }
            }


            handledModifiers = new();
            handledModifiers.Add(mod);


            initialVectorValues = new();
            for (int i = 0; i < xforms.Count; i++)
            {
                initialVectorValues.Add(xforms[i].localScale);
            }
        }
Пример #2
0
        public EffectPositionIntegrator(WaterfallEffect effect, EffectPositionModifier posMod)
        {
            Utils.Log(String.Format("[EffectPositionIntegrator]: Initializing integrator for {0} on modifier {1}", effect.name, posMod.fxName), LogType.Modifiers);
            xforms        = new List <Transform>();
            transformName = posMod.transformName;
            parentEffect  = effect;
            List <Transform> roots = parentEffect.GetModelTransforms();

            foreach (Transform t in roots)
            {
                Transform t1 = t.FindDeepChild(transformName);
                if (t1 == null)
                {
                    Utils.LogError(String.Format("[EffectPositionIntegrator]: Unable to find transform {0} on modifier {1}", transformName, posMod.fxName));
                }
                else
                {
                    xforms.Add(t1);
                }
            }



            handledModifiers = new List <EffectPositionModifier>();
            handledModifiers.Add(posMod);


            initialVectorValues = new List <Vector3>();
            for (int i = 0; i < xforms.Count; i++)
            {
                initialVectorValues.Add(xforms[i].localPosition);
            }
        }
        public EffectLightFloatIntegrator(WaterfallEffect effect, EffectLightFloatModifier floatMod)
        {
            Utils.Log(String.Format("[EffectLightFloatIntegrator]: Initializing integrator for {0} on modifier {1}", effect.name, floatMod.fxName), LogType.Modifiers);
            xforms        = new List <Transform>();
            transformName = floatMod.transformName;
            parentEffect  = effect;
            List <Transform> roots = parentEffect.GetModelTransforms();

            foreach (Transform t in roots)
            {
                Transform t1 = t.FindDeepChild(transformName);
                if (t1 == null)
                {
                    Utils.LogError(String.Format("[EffectLightFloatIntegrator]: Unable to find transform {0} on modifier {1}", transformName, floatMod.fxName));
                }
                else
                {
                    xforms.Add(t1);
                }
            }


            // float specific
            floatName        = floatMod.floatName;
            handledModifiers = new List <EffectLightFloatModifier>();
            handledModifiers.Add(floatMod);

            foreach (string nm in WaterfallConstants.ShaderPropertyHideFloatNames)
            {
                if (floatName == "Intensity")
                {
                    testIntensity = true;
                }
            }

            initialFloatValues = new List <float>();

            l = new Light[xforms.Count];

            for (int i = 0; i < xforms.Count; i++)
            {
                l[i] = xforms[i].GetComponent <Light>();

                if (floatName == "Intensity")
                {
                    initialFloatValues.Add(l[i].intensity);
                }
                if (floatName == "Range")
                {
                    initialFloatValues.Add(l[i].range);
                }
                if (floatName == "SpotAngle")
                {
                    initialFloatValues.Add(l[i].spotAngle);
                }
            }
        }
Пример #4
0
        public EffectFloatIntegrator(WaterfallEffect effect, EffectFloatModifier floatMod)
        {
            Utils.Log(String.Format("[EffectFloatIntegrator]: Initializing integrator for {0} on modifier {1}", effect.name, floatMod.fxName), LogType.Modifiers);
            xforms        = new();
            transformName = floatMod.transformName;
            parentEffect  = effect;
            var roots = parentEffect.GetModelTransforms();

            foreach (var t in roots)
            {
                var t1 = t.FindDeepChild(transformName);
                if (t1 == null)
                {
                    Utils.LogError(String.Format("[EffectFloatIntegrator]: Unable to find transform {0} on modifier {1}", transformName, floatMod.fxName));
                }
                else
                {
                    xforms.Add(t1);
                }
            }


            // float specific
            floatName        = floatMod.floatName;
            handledModifiers = new();
            handledModifiers.Add(floatMod);


            foreach (string nm in WaterfallConstants.ShaderPropertyHideFloatNames)
            {
                if (floatName == nm)
                {
                    testIntensity = true;
                }
            }

            initialFloatValues = new();
            m = new Material[xforms.Count];
            r = new Renderer[xforms.Count];

            for (int i = 0; i < xforms.Count; i++)
            {
                r[i] = xforms[i].GetComponent <Renderer>();
                m[i] = r[i].material;
                initialFloatValues.Add(m[i].GetFloat(floatName));
            }
        }
Пример #5
0
        /// <summary>
        /// Initialize the effect
        /// </summary>
        public virtual void Init(WaterfallEffect effect)
        {
            parentEffect = effect;
            Utils.Log(String.Format("[EffectModifier]: Initializing modifier {0} ", fxName), LogType.Modifiers);
            List <Transform> roots = parentEffect.GetModelTransforms();

            foreach (Transform t in roots)
            {
                Transform t1 = t.FindDeepChild(transformName);
                if (t1 == null)
                {
                    Utils.LogError(String.Format("[EffectModifier]: Unable to find transform {0} on modifier {1}", transformName, fxName));
                }
                else
                {
                    xforms.Add(t1);
                }
            }
        }
        public EffectLightColorIntegrator(WaterfallEffect effect, EffectLightColorModifier floatMod)
        {
            Utils.Log(String.Format("[EffectLightColorIntegrator]: Initializing integrator for {0} on modifier {1}", effect.name, floatMod.fxName), LogType.Modifiers);
            xforms        = new List <Transform>();
            transformName = floatMod.transformName;
            parentEffect  = effect;
            List <Transform> roots = parentEffect.GetModelTransforms();

            foreach (Transform t in roots)
            {
                Transform t1 = t.FindDeepChild(transformName);
                if (t1 == null)
                {
                    Utils.LogError(String.Format("[EffectLightColorIntegrator]: Unable to find transform {0} on modifier {1}", transformName, floatMod.fxName));
                }
                else
                {
                    xforms.Add(t1);
                }
            }


            // float specific
            colorName        = floatMod.colorName;
            handledModifiers = new List <EffectLightColorModifier>();
            handledModifiers.Add(floatMod);

            initialColorValues = new List <Color>();

            l = new Light[xforms.Count];

            for (int i = 0; i < xforms.Count; i++)
            {
                l[i] = xforms[i].GetComponent <Light>();


                initialColorValues.Add(l[i].color);
            }
        }
Пример #7
0
        public EffectColorIntegrator(WaterfallEffect effect, EffectColorModifier colorMod)
        {
            Utils.Log(String.Format("[EffectColorIntegrator]: Initializing integrator for {0} on modifier {1}", effect.name, colorMod.fxName), LogType.Modifiers);
            xforms        = new();
            transformName = colorMod.transformName;
            parentEffect  = effect;
            var roots = parentEffect.GetModelTransforms();

            foreach (var t in roots)
            {
                var t1 = t.FindDeepChild(transformName);
                if (t1 == null)
                {
                    Utils.LogError(String.Format("[EffectColorIntegrator]: Unable to find transform {0} on modifier {1}", transformName, colorMod.fxName));
                }
                else
                {
                    xforms.Add(t1);
                }
            }


            // float specific
            colorName        = colorMod.colorName;
            handledModifiers = new();
            handledModifiers.Add(colorMod);


            initialColorValues = new();
            m = new Material[xforms.Count];
            for (int i = 0; i < xforms.Count; i++)
            {
                m[i] = xforms[i].GetComponent <Renderer>().material;
                initialColorValues.Add(m[i].GetColor(colorName));
            }
        }