【发布时间】:2019-04-26 00:59:23
【问题描述】:
对于一个项目,我想使用 Leap Motion 创建一个可以拾取对象的 VR 环境。到目前为止,捡起一个对象是有效的(使用 Leap 的 InteractionEngine 模块和 InteractionBehaviour 脚本),但是由于 Leap Motion 显然认为手正在放开对象,所以对象被丢弃了很多。出于我想要使用它的目的,一旦抓住物体,将其粘在手上就足够了,有点像粘手指。谁能帮我这个?我对 Leap Motion 很陌生,不知道从哪里开始。
我尝试使用 OnCollisionEnter (我不知道这是否是一个开始艰难的好地方),但是当手接触物体时它似乎没有记录碰撞。只有当物体落到地面时才会发生碰撞。
编辑:有关环境的更多信息 + 我对 OnCollisionEnter 的尝试:
This is the environment that I have right now
These are the important components of the object。 (ResetFood 是我编写的一个小脚本,用于将多维数据集重置为其原始位置,对此并不重要)。
这是我尝试使用 OnCollisionEnter 的脚本。
using System.Collections.Generic;
using UnityEngine;
public class StickToHand : MonoBehaviour
{
private void OnCollisionEnter(Collision collision) {
Debug.Log("Collision detected");
}
}
当物体落在地上时只打印碰撞检测。
【问题讨论】:
-
请展示一些工作
-
我真的不知道这个节目是什么。我有一个带有跳跃动作的手、一个立方体和一个地面的场景,这样积木就不会掉下来。立方体有一个带有 OnCollisionEnter 函数的脚本,如果检测到碰撞,该函数会打印到控制台,但仅在对象掉到地上时打印一些东西,而不是在手接触对象时打印。立方体有 InteractionBehaviour 脚本。除此之外,真的什么都没有。你想让我展示什么?
-
@remy_rm 谢谢!我编辑了帖子。希望这能让它更清楚。
-
您的“手”对象是否附有对撞机?如果他们这样做了,他们是否选中了“Is Trigger”?碰撞只能发生在两个具有碰撞器的对象之间,并将“Is Trigger”设置为 false。如果手牌选中了“Is Trigger”,则需要改用
OnTriggerEnter -
@remy_rm 这就是问题,谢谢!我现在设法让对象在食指和拇指与对象接触后保持在中间位置。
标签: c# unity3d leap-motion