static void DoState(GUnit unit, ObjectControlData controlData, Vector3 param) { if (controlData.stateType == ObjectStateType.Start) { ObjectStateProcess.Start(unit, controlData.stateId, param); } else if (controlData.stateType == ObjectStateType.Update) { ObjectStateProcess.Update(unit, controlData.stateId, param); } else if (controlData.stateType == ObjectStateType.Finish) { ObjectStateProcess.Finish(unit, controlData.stateId); } }
protected override ValueTuple <bool, Vector3> OnCheckControl(GUnit unit, ObjectControlData controlData, int?currentStateId) { var param = Vector3.zero; var leftState = ObjectControlStateTypeDict.Get(unit, ObjectTestConstant.MOVE_LEFT_CONTROL_TYPE); if (leftState == KeyStateType.Down) { controlData.stateType = ObjectStateType.Start; param = Vector3.left; } else if (leftState == KeyStateType.Up) { controlData.stateType = ObjectStateType.Finish; } return(ValueTuple.Create(leftState != KeyStateType.None, param)); }
protected abstract ValueTuple <bool, Vector3> OnCheckControl(GUnit unit, ObjectControlData controlData, int?currentStateId);
public ValueTuple <bool, Vector3> CheckControl(GUnit unit, ObjectControlData controlData, ObjectStateProcessData stateProcessData) { return(OnCheckControl(unit, controlData, stateProcessData.currentState?.id)); }