static void ApplyParameters(GameObject gameObject, string parameters, WhenToApply whenToApply) { string[] parameterArray = parameters.Split(';'); foreach (string parameter in parameterArray) { ApplyParameter(gameObject, parameter, whenToApply); } }
static void ApplyParameter(GameObject gameObject, string parameter, WhenToApply whenToApply) { int indexOfEquals = parameter.IndexOf('='); if (indexOfEquals > 0) { string leftSide = parameter.Substring(0, indexOfEquals).Trim(); string rightSide = parameter.Substring(indexOfEquals + 1).Trim(); ApplyParameter(gameObject, leftSide, rightSide, whenToApply); } }
//static void ApplyColorOverride(GameObject gameObject, Color colorOverride) //{ // Talespire.Log.Debug($"colorOverride: {colorOverride}"); // Component script = gameObject.GetScript("RFX4_EffectSettings"); // if (script != null) // { // Talespire.Log.Warning($"Found script!"); // ReflectionHelper.SetPublicFieldValue(script, "UseCustomColor", true); // ReflectionHelper.SetPublicFieldValue(script, "EffectColor", colorOverride); // if (script is MonoBehaviour monoBehaviour) // { // monoBehaviour.enabled = false; // monoBehaviour.enabled = true; // } // } //} static void ApplyParameter(GameObject gameObject, string leftSide, string rightSide, WhenToApply whenToApply) { if (whenToApply == WhenToApply.AfterCreation) { if (afterCreationParameterOverrides.ContainsKey(leftSide)) { afterCreationParameterOverrides[leftSide].Apply(gameObject, rightSide); } } else if (whenToApply == WhenToApply.AfterPositioning) { if (afterPositioningParameterOverrides.ContainsKey(leftSide)) { afterPositioningParameterOverrides[leftSide].Apply(gameObject, rightSide); } } //if (leftSide == "color") //{ // Color colorOverride = new HueSatLight(rightSide).AsRGB.ToUnityColor(); // ApplyColorOverride(gameObject, colorOverride); //} }
public EffectParameterAttribute(string name, WhenToApply whenToApply = WhenToApply.AfterCreation) { Name = name; WhenToApply = whenToApply; }