5. 应用相机旋转和回弹行为

本教程翻译自官方教程Apply Camera Behaviors,各位也可以进入本站镜像站点查看

本文目录

  1. 回弹行为
  2. 自动旋转行为
  3. 框架行为

回弹行为

    弹跳行为(BABYLON.BouncingBehavior)设计为在ArcRotateCamera到达LowerRadiusLimitupperRadiusLimit时产生较小的弹跳效果。

    可以使用以下属性配置回弹行为:

  • transitionDuration : 定义动画的持续时间(以毫秒为单位)。默认值为450ms
  • lowerRadiusTransitionRange : 定义到达下半径时, 由过渡设置动画的距离的长度。默认值为 2
  • upperRadiusTransitionRange : 定义到达上半径时, 由过渡设置动画的距离的长度。默认值为 -2
  • autoTransitionRange : 定义一个值,该值表示是否已经自动定义了 LowerRadiusTransitionRangeupperRadiusTransitionRange. 转换范围将设置为世界空间中边框对角线的5%

您可以使用以下代码轻松在ArcRotateCamera上启用此行为:

camera.useBouncingBehavior = true;

你可以在这里找到 demo

自动旋转行为

    自动旋转行为(BABYLON.AutoRotationBehavior)是在用户没有进行交互时使得ArcRotateCamera的自动旋转。

    可以使用以下属性配置此行为:

  • idleRotationSpeed:相机的旋转速度
  • idleRotationWaitTime:用户进行操作之后,相机开始旋转之前要等待的时间(以毫秒为单位)
  • idleRotationSpinupTime:相机旋转达到完全怠速所需的时间(以毫秒为单位)
  • zoomStopsAnimation:表示用户缩放是否应停止旋转

您可以使用以下代码轻松在ArcRotateCamera上启用此行为:

camera.useAutoRotationBehavior = true;

你可以在这里找到 demo

框架行为

    框架行为(BABYLON.FramingBehavior)用于将ArcRotateCamera的目标设置为物体时自动定位。如果要防止相机穿透虚拟水平面,该功能也很有用。

    可以使用以下属性配置此行为:

  • mode: 该属性可以配置为:
    • BABYLON.FramingBehavior.IgnoreBoundsSizeMode : 相机可以一直向物体移动
    • BABYLON.FramingBehavior.FitFrustumSidesMode : 相机不允许缩放到比调整后的边界球接触视锥面的点更靠近物体的位置
  • radiusScale :定义应用于半径的比例(默认为1)
  • positionY:定义物体相对于相机焦点的Y轴偏移量(默认为0)
  • defaultElevation:定义当相机返回默认行为时, 返回水平面上方/下方的角度 (以弧度为单位, 默认值为0.3)
  • elevationReturnTime:定义返回默认的Beta位置(默认为1500)所花费的时间(以毫秒为单位)。负值表示相机不应恢复默认值
  • elevationReturnWaitTime:定义相机返回默认Beta位置(默认为1000)之前的延迟(以毫秒为单位)
  • zoomStopsAnimation:定义用户缩放时候, 是否应停止动画
  • framingTime:定义框架时的过渡时间(以毫秒为单位, 默认为1500)

您可以使用以下代码轻松在ArcRotateCamera上打开此行为:

camera.useFramingBehavior = true;

你可以在这里找到 demo

贡献者

翻译: Alshat