Jtro的技术分享:关于Htc_vive中手柄拿起物体不使用后再自动归位

举报
LittleU 发表于 2022/01/19 10:00:08 2022/01/19
【摘要】 这个问题是挺常见的,我当时开发产品被测试的时候。场景中的某个物体由于种种原因拿起之后会掉下来,接着又有地面不对齐等一系列问题,所以我就想着把这个问题解决了。然后通过各种修改源码,最后的效果仍是不是乐观。后来求助一位做了许久的VR 的朋友,给了我一个脚本。然后通过拖拽方法的方法,解决了问题。在这里要好好感谢这位朋友,帮了我大忙。、、、using UnityEngine;using System...

这个问题是挺常见的,我当时开发产品被测试的时候。场景中的某个物体由于种种原因拿起之后会掉下来,接着又有地面不对齐等一系列问题,所以我就想着把这个问题解决了。

然后通过各种修改源码,最后的效果仍是不是乐观。后来求助一位做了许久的VR 的朋友,给了我一个脚本。然后通过拖拽方法的方法,解决了问题。在这里要好好感谢这位朋友,帮了我大忙。

、、、
using UnityEngine;
using System.Collections;
using VRTK;
using UnityEngine.Events;
public class VRTK_ObjCallBack : MonoBehaviour
{
VRTK_InteractableObject IO;
[System.Serializable]
public class ButtonEvents
{
public UnityEvent InteractableObjectGrabbed;
public UnityEvent InteractableObjectUngrabbed;
public UnityEvent InteractableObjectUsed;
public UnityEvent InteractableObjectUnused;
}
public ButtonEvents events;
// Use this for initialization
void Start()
{
IO = GetComponent();
IO.InteractableObjectGrabbed += IO_InteractableObjectGrabbed;
IO.InteractableObjectUngrabbed += IO_InteractableObjectUngrabbed;
IO.InteractableObjectUsed += IO_InteractableObjectUsed;
IO.InteractableObjectUnused+= IO_InteractableObjectUnused;
}
void IO_InteractableObjectUsed(object sender, InteractableObjectEventArgs e)
{
if (events.InteractableObjectUsed != null)
events.InteractableObjectUsed.Invoke();
}
void IO_InteractableObjectGrabbed(object sender, InteractableObjectEventArgs e)
{
if (events.InteractableObjectGrabbed != null)
events.InteractableObjectGrabbed.Invoke();
}
void IO_InteractableObjectUngrabbed(object sender, InteractableObjectEventArgs e)
{
if (events.InteractableObjectUngrabbed != null)
events.InteractableObjectUngrabbed.Invoke();
}
void IO_InteractableObjectUnused(object sender, InteractableObjectEventArgs e)
{
if (events.InteractableObjectUnused!= null)
events.InteractableObjectUnused.Invoke();
}
#if UNITY_EDITOR
void OnMouseDown()
{
if (events.InteractableObjectUsed != null)
events.InteractableObjectUsed.Invoke();
}
#endif
}
、、、
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。