/// <summary> /// Add a Modifier script to an Entity, based on a code block (delegate) and a VectorFunction /// </summary> /// <param name="e">Entity to add modifier script to</param> /// <param name="scriptCode">Code block (delegate) that is the script</param> /// <param name="func">Function whose value will be passed in ScriptContext.FunctionValue to script</param> /// <returns></returns> public static VectorModifierScript AddModifier(Entity e, VectorModifierDelegate scriptCode, IVectorFunction func) { if (!e.HasComponent<ScriptComp>()) { e.AddComponent(new ScriptComp()); e.Refresh(); } var sc = e.GetComponent<ScriptComp>(); var script = new VectorModifierScript(scriptCode, func); sc.Add(script); return script; }
/// <summary> /// Create new ModifierScript /// </summary> /// <param name="code"></param> /// <param name="function">if null is passed, the unity function f(x)=x is applied as Function</param> public VectorModifierScript(VectorModifierDelegate code, IVectorFunction function) { this.ScriptCode = code; this.Function = function; }