RayCast在GearVR中不起作用

时间:2016-04-11 08:31:57

标签: c# unity3d oculus gear-vr

我有和raycast,以及一个rayCastHit。每当用户点击开火按钮时。它会将FPS字符移动到rayCastHit所在的位置。 lightRetical是一个gameObject变量,它是一个聚光灯,显示了rayCastHit的位置。

有趣的是,当我点击团结游戏时它会起作用。但每当我构建到我的Android手机时,它都无法正常工作。我无法移动fps角色。

我使用的FPS角色来自标准资产"字符"以及我将它们添加到Update()方法的代码。

        RaycastHit seen;
        Ray raydirection = new Ray(transform.position, cam.transform.forward);
        int sightlength = 5;
        if (Physics.Raycast(raydirection, out seen, sightlength))
        {
            if (seen.collider.tag == "Floor" && Input.GetButtonDown("Fire1")) //in the editor, tag anything you want to interact with and use it here
            {
                Vector3 relativePoint;
                lightRetical.SetActive(true);
                relativePoint = seen.point;
                relativePoint.y = 2.0f;
                bodychar.transform.position = relativePoint;
            }
            else
            {
                lightRetical.SetActive(true);
                Vector3 relativePoint;
                relativePoint = seen.point;
                relativePoint.y = 2.64f;
                lightRetical.transform.position = relativePoint;

            }
        }
        else
        {
            lightRetical.SetActive(false);
        }

1 个答案:

答案 0 :(得分:0)

我建议从相机位置向前投射光线。如果玩家转过头,那么光线投射就会跟随。我目前正在为VR开发一个应用程序,这似乎是最好的解决方案。您可以使用碰撞图层来过滤光线投射。我还会将hit.transform打印到控制台,以检查光线投射的内容。希望这可以帮助。