[英]Texture Annotation using OVRInput Touch Controller Raycast in Unity5
EDIT2:
感谢Draco在评论LineRenderer
我LineRenderer
到LineRenderer
类。
这里是一个脚本的链接,该脚本帮助我在游戏世界中绘制了线条: http : //answers.unity3d.com/questions/1142318/making-raycast-line-visibld.html
编辑:
我在Debug.DrawRay方法中将单位长度从1更改为100,000,从黑色更改为蓝色,现在我只能看到在场景视图中绘制的光线。
Debug.DrawRay(transform.position, transform.forward, Color.blue, 100000);
另外,现在我可以通过将以下脚本应用于游戏对象LocalAvatar
> controller_right
来跟踪触摸控制器的光线。
原始帖子 :
我正在尝试使用Unity 5.6.1和Visual Studio C#中的Oculus VR包OVRAvatar
, OVRCameraRig
和OVRInput
来做看似简单的事情。
目标: 我想从Oculus触摸控制器的手指获得光线投射,并截取一个平面以将像素应用于该平面的纹理。
我能够使用OVRCameraRig
来获取相机的OVRCameraRig
以拦截飞机, OVRCameraRig
所示:
void Update() {
RaycastHit hit;
Vector3 fwd = ovrCamera.transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(ovrCamera.transform.position, fwd, out hit, 10000))
{
if (hit.collider.tag == "Plane"))
{
print("Hit the plane!");
// apply some pixels to plane texture
// setPixels(plane.texture)
}
}
// EDIT: I changed the unit length from 1 to 100,000 and now I am able to see the rays drawn in the scene view only.
// NOTE: this line below does not work in Unity's scene view or game view
Debug.DrawRay(ovrCamera.transform.position, ovrCamera.transform.forward, Color.black, 1);
}
除了Debug.DrawRay
函数不起作用之外,检查OVRcamera的射线投射是否击中飞机的代码实际上也可以工作。
但是,现在我正在尝试测试OVRInput.Controller.RTouch
的射线投射,因此我看不到绘制的射线,并且未触发碰撞对撞机检查。
我已将此脚本作为以下组件添加到OVRCameraRig's RightHandAnchor
:
void Update() {
RaycastHit hit;
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, fwd, out hit, 10000))
{
if (hit.collider.tag == "Plane")
{
print("Hit plane with touch controller's raycast!");
}
}
// EDIT: I changed the unit length from 1 to 100,000 and now I am able to see the rays drawn in the scene view only.
// NOTE: this line below does not work in Unity's scene view or game view
Debug.DrawRay(transform.position, transform.forward, Color.black, 1);
}
不用说, Debug.DrawRay
函数在这里也不起作用。 我无法确定触摸控制器发出的光线是否真正被跟踪。
任何帮助或见解表示赞赏,谢谢!
感谢Draco在评论中将我引到LineRenderer类。
这里是一个脚本的链接,该脚本帮助我在游戏世界中绘制了线条: http : //answers.unity3d.com/questions/1142318/making-raycast-line-visibld.html
我在Debug.DrawRay方法中将单位长度从1更改为100,000,从黑色更改为蓝色,现在我只能看到在场景视图中绘制的光线。
Debug.DrawRay(transform.position, transform.forward, Color.blue, 100000);
另外,现在我可以通过将以下脚本应用于游戏对象LocalAvatar> controller_right来跟踪触摸控制器的光线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.