Exemplo n.º 1
0
        protected override void OnAdd(GUnit unit)
        {
            var controlDataList = ObjectControlDataDict.Get(unit);

            foreach (var controlData in controlDataList)
            {
                var controlModule = ObjectControlModuleDict.Get(controlData.controlType);
                controlData.objectControl = controlModule;

                ObjectControlStateTypeDict.Set(unit, controlData.controlType, KeyStateType.None);
            }
        }
Exemplo n.º 2
0
        protected override void OnRemove(GUnit unit)
        {
            var controlStateData = unit.GetData <ObjectControlStateData>();

            controlStateData.stateType.Value = ObjectControlStateType.Finish;

            var controlDataList = ObjectControlDataDict.Get(unit);

            foreach (var controlData in controlDataList)
            {
                Pool.Release(controlData);
            }
            ObjectControlDataDict.Clear(unit);
            ObjectControlStateTypeDict.Clear(unit);
        }
Exemplo n.º 3
0
        public static void CheckAllControl(GUnit unit, int controlType, ObjectControlStateData controlStateData,
                                           ObjectStateProcessData stateProcessData)
        {
            var controlDataList = ObjectControlDataDict.Get(unit);

            foreach (var controlData in controlDataList)
            {
                if (!ContainsControlType(controlData.objectControl.ControlTypeList, controlType))
                {
                    continue;
                }

                var controlModule = controlData.objectControl;
                var result        = controlModule.CheckControl(unit, controlData, stateProcessData);
                if (result.Item1)
                {
                    DoState(unit, controlData, result.Item2);
                }
            }
        }
Exemplo n.º 4
0
        static void AttachControlData(GUnit unit)
        {
            var controlStateData = unit.AddData <ObjectControlStateData>();

            controlStateData.stateType.Value = ObjectControlStateType.Start;

            var controlData = Pool.Get <ObjectControlData>();

            controlData.controlType = ObjectTestConstant.MOVE_LEFT_CONTROL_TYPE;
            controlData.stateId     = ObjectTestConstant.STATE_MOVE;
            controlData.stateType   = ObjectStateType.Start;
            ObjectControlDataDict.Set(unit, controlData.controlType, controlData);

            controlData             = Pool.Get <ObjectControlData>();
            controlData.controlType = ObjectTestConstant.MOVE_RIGHT_CONTROL_TYPE;
            controlData.stateId     = ObjectTestConstant.STATE_MOVE;
            controlData.stateType   = ObjectStateType.Start;
            ObjectControlDataDict.Set(unit, controlData.controlType, controlData);

            WorldManager.Instance.Factory.InitObjectControlModule();
        }