我在增强现实项目中使用Hammer并使用Hammer.js成功移动,旋转和放置3D模型(JSON)。
我试图使用捏合事件来上下缩放对象,但我对模型的行为提出了相当大的挑战。
在控制台中,基于手势似乎对象的比例是正确的,但在应用程序中,需要几个手势才能使模型起作用,然后它会快速颠倒颠倒。
我无法让模型变小,看起来模型对我的捏合手势没有反应。
scaleSpeed: { default: 1 }
onPinchIn: function (event) {
this.scene.emit('objectScaling')
const scaleDelta = this.initialHammerScale + (event.scale * this.data.scaleSpeed)
this.modelScaleRig3D.scale.set(
(this.modelScaleRigAtScaleStart.x - scaleDelta),
(this.modelScaleRigAtScaleStart.y - scaleDelta),
(this.modelScaleRigAtScaleStart.z - scaleDelta)
)
}
onPinchOut: function (event) {
const scaleDelta = this.initialHammerScale + (event.scale * this.data.scaleSpeed)
this.modelScaleRig3D.scale.set(
(this.modelScaleRigAtScaleStart.x + scaleDelta),
(this.modelScaleRigAtScaleStart.y + scaleDelta),
(this.modelScaleRigAtScaleStart.z + scaleDelta)
)
}
onPinchStart: function (event) {
this.modelScaleAtScaleStart = this.modelRig.getAttribute('scale')
this.initialHammerScale = event.scale
},
有没有人获得成功,并且有使用3D模型的锤子捏事件的技巧?
答案 0 :(得分:0)
来自Getting Started documentation
默认情况下,它会添加一组轻击,双击,按下,水平平移和滑动,以及多点触控捏合和旋转识别器。 默认情况下禁用捏合和旋转识别器,因为它们会阻止元素,但您可以通过调用来启用它们:
hammertime.get('pinch').set({ enable: true });
hammertime.get('rotate').set({ enable: true });