如何

应用相机行为


应用相机行为

弹跳行为

弹跳行为(BABYLON.BouncingBehavior)用于在ArcRotateCamera到达lowerRadiusLimit或upperRadiusLimit 时产生小的弹跳效果。

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

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

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

camera.useBouncingBehavior = true;

你可以在这里找到现场演示: https://www.babylonjs-playground.com/#6FBD14 -


AutoRotation行为

autoRotation behavior(BABYLON.AutoRotationBehavior)用于在没有用户交互时创建ArcRotateCamera的平滑旋转。

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

  • idleRotationSpeed: 相机围绕网格旋转的速度
  • idleRotationWaitTime: 在相机开始旋转之前用户交互后等待的时间(以毫秒为单位)
  • idleRotationSpinupTime: 旋转到完全空转速度所需的时间(毫秒)
  • zoomStopsAnimation: 指示用户缩放是否应停止动画的标志

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

camera.useAutoRotationBehavior = true;

你可以在这里找到现场演示 https://www.babylonjs-playground.com/#6FBD14#1 -


框架行为

T框架行为(BABYLON.FramingBehavior)用于在目标设置为网格时自动定位ArcRotateCamera。如果您想要防止摄像机进入虚拟水平面,这也很有用。

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

  • mode: 行为可以配置为:
    • BABYLON.FramingBehavior.IgnoreBoundsSizeMode: 相机可以一直朝着网格移动
    • BABYLON.FramingBehavior.FitFrustumSidesMode: 不允许摄像机比调整的边界球体接触平截头体侧面的点更接近网格
  • radiusScale: 定义应用于半径的比例(默认为1)
  • positionY: 从摄像机的焦点定义主网格的Y偏移(默认为0)
  • defaultElevation: 定义水平面上方/下方的角度,以便在触发返回默认高程空闲行为时返回,以弧度为单位(默认为0.3)
  • elevationReturnTime: 定义返回默认beta位置所用的时间(以毫秒为单位)(默认为1500)。负值表示相机不应返回默认值
  • elevationReturnWaitTime: 定义摄像机返回默认测试版位置之前的延迟(以毫秒为单位)(默认为1000)
  • zoomStopsAnimation: 定义用户缩放是否应停止动画
  • framingTime: 定义网格框架时的过渡时间,以毫秒为单位(默认为1500)

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

camera.useFramingBehavior = true;

你可以在这里找到现场演示:https://www.babylonjs-playground.com/#6FBD14#2 -