コード例 #1
0
        public void Init(GUnit unit, ObjectStateData stateData)
        {
            var unitData = unit.GetData <UnitData>();

            stateData.stateTypeProperty.Subscribe(_ => {
                if (_ == ObjectStateType.Start)
                {
                    OnStart(unit, stateData);
                }
                else if (_ == ObjectStateType.Stop)
                {
                    OnStop(unit, stateData);
                }
                else if (_ == ObjectStateType.Finish)
                {
                    OnFinish(unit, stateData);
                    stateData.stateTypeProperty.Value = ObjectStateType.None;
                }
            }).AddTo(unitData.disposable);

            OnInit(unit, stateData);

            var independentStateData = stateData as IndependentObjectStateData;

            if (independentStateData != null && independentStateData.isDefault)
            {
                ObjectStateProcess.Start(unit, independentStateData.id, independentStateData.param, false);
            }
        }
コード例 #2
0
ファイル: ObjectSync.cs プロジェクト: nottvlike/EGP
 void DoState(GUnit unit, SyncStateInfo syncInfo)
 {
     if (syncInfo.stateType == ObjectStateType.Start)
     {
         ObjectStateProcess.Start(unit, syncInfo.stateId, syncInfo.stateParam, false);
     }
     else if (syncInfo.stateType == ObjectStateType.Update)
     {
         ObjectStateProcess.Update(unit, syncInfo.stateId, syncInfo.stateParam, false);
     }
     else if (syncInfo.stateType == ObjectStateType.Finish)
     {
         ObjectStateProcess.Finish(unit, syncInfo.stateId, false);
     }
 }
コード例 #3
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);
     }
 }