public override void Run(IReGoapAction <string, object> previous, IReGoapAction <string, object> next, ReGoapState <string, object> settings, ReGoapState <string, object> goalState, Action <IReGoapAction <string, object> > done, Action <IReGoapAction <string, object> > fail) { base.Run(previous, next, settings, goalState, done, fail); if (settings.TryGetValue("objectivePosition", out var v)) { smsGoto.GoTo((Vector3)v, OnDoneMovement, OnFailureMovement); } else { failCallback(this); } }