public override void UpdateStep(object param) { if (param == null) { return; } double?t = param as double?; if (t == null) { return; } _curTime = (double)t; if (_curTime < 0) { return; } if (CameraStartPose == null) { return; } VdsPlotEvent pEvent = ParentActor as VdsPlotEvent; if (!_haveBeenSet && _curTime > pEvent.EventStartTime) { VdsCamera newCamera = new VdsCamera(); newCamera.CameraPose = CameraStartPose; if (_curTime > pEvent.EventStartTime + pEvent.EventDurationTime) { newCamera.WithAnimation = false; } else { newCamera.WithAnimation = WithAnimation.Value; } _currentView.MainCamera = newCamera; _haveBeenSet = true; } }
public override void UpdateStep(object param) { if (param == null) { return; } double?t = param as double?; if (t == null) { return; } _curTime = (double)t; if (_curTime < 0) { return; } if (_targetObject == null) { PtrClass a = ((IVdsGroupInterface)_currentView.GameLayer).GetObjectByID(FollowActorID.Value); if (a != null) { _targetObject = a as VdsActor; } else { return; } } VdsPlotEvent pEvent = ParentActor as VdsPlotEvent; if (_curTime > pEvent.EventStartTime && _curTime < pEvent.EventStartTime + pEvent.EventDurationTime) { if (_targetObject != null && !_haveBeenSet) { _preCamera = _currentView.MainCamera; VdsCamera newCamera = new VdsCamera(); newCamera.TargetActorNativeHandle = _targetObject.NativeHandle; newCamera.CurrentCameraMode = CameraMode.FollowCamera; newCamera.CameraPose.Eye = new VdsVec3d(-EyeHorizontalOffset.Value, 0, EyeHeightOffset.Value); if (_curTime > pEvent.EventStartTime + pEvent.EventDurationTime) { newCamera.WithAnimation = false; } else { newCamera.WithAnimation = WithAnimation.Value; } _currentView.MainCamera = newCamera; _haveBeenSet = true; } } else if (_curTime >= pEvent.EventStartTime + pEvent.EventDurationTime && _haveBeenSet && _behaviourIsWorking) { if (StayAtStop.Value) { VdsCamera camera = _currentView.MainCamera; camera.CurrentCameraMode = _preCamera.CurrentCameraMode; _currentView.MainCamera = camera; } else { _currentView.MainCamera = _preCamera; } _haveBeenSet = false; } }