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