C# 当手拖得离全息镜头相机更近/更远时,将游戏对象移得离全息镜头相机更近/更远
我现在遇到了一个问题,当我的手向前/向后移动时,我想把游戏物体移得离我更近/更远(全息镜头相机)。好吧,我已经正确地实现了将对象移近/移远的逻辑,但无法通过确定手的移动来实现。 我使用HoloToolkit的IManipulationHandler接口移动对象,这是我现在使用的主要逻辑:C# 当手拖得离全息镜头相机更近/更远时,将游戏对象移得离全息镜头相机更近/更远,c#,unity3d,hololens,C#,Unity3d,Hololens,我现在遇到了一个问题,当我的手向前/向后移动时,我想把游戏物体移得离我更近/更远(全息镜头相机)。好吧,我已经正确地实现了将对象移近/移远的逻辑,但无法通过确定手的移动来实现。 我使用HoloToolkit的IManipulationHandler接口移动对象,这是我现在使用的主要逻辑: void IManipulationHandler.OnManipulationUpdated(ManipulationEventData eventData) { transform.position
void IManipulationHandler.OnManipulationUpdated(ManipulationEventData eventData)
{
transform.position = Vector3.MoveTowards(objectPosition, cameraPosition,
- (eventData.CumulativeDelta * ManipulationSpeed).z);
}
(只有在我不改变位置的情况下,它才能正常工作)
这是我使用的另一个逻辑:
void IManipulationHandler.OnManipulationUpdated(ManipulationEventData eventData)
{
transform.position = Vector3.MoveTowards(objectPosition, cameraPosition,
Vector3.Distance(cameraPosition, eventData.CumulativeDelta));
}
根据上面的逻辑,每当我移动我的手(向前或向后)时,物体总是越靠近,因为两个向量的距离总是先增加
请帮我解决这个问题。谢谢
注意:当我的手向左/向右拖动时,我想旋转对象,当我的手向前/向后拖动时,我想将对象移动得更近/更远。你可以从MixedRealityToolkit中查看HandDraggable脚本。看起来你仍然在使用HoloToolkit(现在是htk\U开发早午餐),你实际上可以使用。否则,您可能必须编写自己的解算器。我不建议人们从头开始实施,这很痛苦 使用
twoomandnipulatable.cs
,可以向任何方向移动对象。如果要限制方向(例如,仅朝向凸轮),可以在自己的类中重写该方向
在我的应用程序中,通过修改SimpleTagAlong脚本,我使用语音命令作为手势的第二选择。然后将此操作与语音关键字“closer/Future”关联。根据我与终端用户的经验,他们会感谢您使用语音命令。谢谢。。。但当我使用INavigationHandler接口而不是IManipulationHandler时,我的问题得到了解决。我工作得很卖力。再次感谢。是的,我的应用程序中也使用了语音命令。但我的上司拒绝了这个想法。然后我用了按钮,也被拒绝了。他只需要一个手势就可以得到这两样东西。他得到了他想要的。谢谢