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); } }
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); } }
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); } }