Task <MotionResult> ActMotionAsync(MotionParam motion) { return(Task.Run(() => { lock (MotorLock) { if (null == motion) { return null; } var Motor = this.Motor; if (null == Motor) { return null; } var BeginTime = GetTimeStopwatch(); var Result = Motor.ActSequenceMotion(motion.AsSequenceMotion(MemoryMeasurementLast?.Value?.MemoryMeasurement)); var EndTime = GetTimeStopwatch(); MotionExecution.Enqueue(new MotionExecution(motion, BeginTime, EndTime) { Result = Result, }); MotionExecution.TrimHeadToKeep(100); return Result; } })); }
public void PlayMotion(MotionParam p) { if (Application.isPlaying) { anim_ = MainChar.GetComponent <Animator>(); this.GetComponent <Animator>().Play("Skill01"); } }
public static MotionRecommendation AsRecommendation(this MotionParam mp, int?delayAfterMs = null) { if (mp == null) { return(null); } return(new MotionRecommendation(mp, delayAfterMs)); }
MotionResult FromScriptMotionExecute(MotionParam MotionParam) => ActMotionAsync(MotionParam).Result;
public MotionRecommendation(MotionParam motionParam, int?delayAfterMs) { Id = motionId++; MotionParam = motionParam; DelayAfterMs = delayAfterMs; }
public MotionResult MotionExecute(MotionParam motionParam) => MotionExecuteFunc?.Invoke(motionParam);