Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当手拖得离全息镜头相机更近/更远时,将游戏对象移得离全息镜头相机更近/更远_C#_Unity3d_Hololens - Fatal编程技术网

C# 当手拖得离全息镜头相机更近/更远时,将游戏对象移得离全息镜头相机更近/更远

C# 当手拖得离全息镜头相机更近/更远时,将游戏对象移得离全息镜头相机更近/更远,c#,unity3d,hololens,C#,Unity3d,Hololens,我现在遇到了一个问题,当我的手向前/向后移动时,我想把游戏物体移得离我更近/更远(全息镜头相机)。好吧,我已经正确地实现了将对象移近/移远的逻辑,但无法通过确定手的移动来实现。 我使用HoloToolkit的IManipulationHandler接口移动对象,这是我现在使用的主要逻辑: void IManipulationHandler.OnManipulationUpdated(ManipulationEventData eventData) { transform.position

我现在遇到了一个问题,当我的手向前/向后移动时,我想把游戏物体移得离我更近/更远(全息镜头相机)。好吧,我已经正确地实现了将对象移近/移远的逻辑,但无法通过确定手的移动来实现。 我使用HoloToolkit的IManipulationHandler接口移动对象,这是我现在使用的主要逻辑:

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时,我的问题得到了解决。我工作得很卖力。再次感谢。

是的,我的应用程序中也使用了语音命令。但我的上司拒绝了这个想法。然后我用了按钮,也被拒绝了。他只需要一个手势就可以得到这两样东西。他得到了他想要的。谢谢