示例#1
0
 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);
     }
 }
示例#2
0
        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));
        }
示例#3
0
 protected abstract ValueTuple <bool, Vector3> OnCheckControl(GUnit unit, ObjectControlData controlData,
                                                              int?currentStateId);
示例#4
0
 public ValueTuple <bool, Vector3> CheckControl(GUnit unit, ObjectControlData controlData,
                                                ObjectStateProcessData stateProcessData)
 {
     return(OnCheckControl(unit, controlData, stateProcessData.currentState?.id));
 }