void SceneCamera::BrainOrder(const State& state) { if (state.GetStateType() == (int)State::TYPE::PAUSE ) { if (state.IsNew()) { SwitchCameraMode(CONTROL_TYPE::CHARACTER); } } if (state.GetStateType() == (int)State::TYPE::MOTION ) { if (state.IsNew()) { SwitchCameraMode(CONTROL_TYPE::CHARACTER); } Motion* motion = (Motion*)&state; cameraControl.Move(motion->GetSpeed(), motion->GetDir()); } if (state.GetStateType() == (int)State::TYPE::SPACE_LOC ) { SpaceLocation* space_loc = (SpaceLocation*)&state; if (state.IsNew()) { SwitchCameraMode(CONTROL_TYPE::AUTO_CONTROL); } ((CameraAutoControl*)control[currentType])->SetPosition(space_loc->GetPos()); ((CameraAutoControl*) control[currentType])->SetDirection(space_loc->GetDir()); } }