0 votes
by (200 points)
recategorized by

pc端测试没问题,打包到pico上射线不交互,为什么啊。工程文件打包其他示例场景进不去,显示定位器有问题

2 Answers

0 votes
by (55.5k points)

开发者您好,

关于射线交互问题,不知道您用的是哪个SDK?
如果是Unity XR,您可以参考Unity提供的交互Demo:
https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples
如果是PicoVR Unity SDK,您可以参考Assets/PicoMobileSDK/Pvr_Controller/Scenes/
路径下的Pvr_Controller_UI UI交互Demo:
enter image description here

另外,您可以具体描述一下显示定位器有问题指的是什么吗,可以提供截图给我们分析问题吗?

by (200 points)

谢谢,已经解决了,可以问一下射线颜色应该怎么改变吗,我在PC端射线颜色可以变化,Pico上就不能变了,对了,我用的是PicoVr unitySDK 。方便的话加个联系方式就更好了!

by (55.5k points)

您好,这是我们改变射线颜色的过程,您可以参考尝试一下。

以PvrController0为例:
1.修改PvrUnitySDK预制体中ControllerManager / PvrController0 / rayLengthAdaptive的Line Renderer组件的Color
enter image description here

enter image description here

2.勾选PvrUnitySDK预制体的ControllerManager的PvrControllerManager组件中的Length Adaptive Ray
enter image description here
enter image description here

3.打包应用射线颜色改变
enter image description here

by (200 points)

这个我知道,就是我用startColor跟EndColor控制的颜色,在PC端显示正常,打包到PICO上就不显示了

by (55.5k points)

请问您是更改的ray_LengthAdaptive的startColor和endColor吗?
如果是的话,您检查一下PvrUnitySDK预制体的ControllerManager的PvrControllerManager组件中的Length Adaptive Ray是否勾选。
enter image description here

by (200 points)

还是不行啊,颜色还是不变,白色的,PC端测试的变颜色

by (55.5k points)

您好,您可以先参考测试一下这个Demo:
apk: https://bytedance.feishu.cn/file/boxcnf5yognvow7ewPVS8xdfk2O
工程对应的压缩包: https://bytedance.feishu.cn/file/boxcnlNXDLJ1E5AeJkUTRZSt2Og

如果射线仍然无法变色,您可以把一个可以复现问题的工程发到我们的邮箱:
pico_devanswers@bytedance.com

邮件的主题请填写为这个帖子的标题。我们会进行打包测试。

by (200 points)

谢谢,可以变颜色了。之前我是在PvrControllerDemo.cs中写的修改颜色的脚本,为什么我自己写了个新的脚本就管用了?

by (55.5k points)

您好,您可以在语句调用前后添加log信息观察语句是否被调用。
我们在Pvr_ControllerDemo.cs的Start方法中添加了设置startColor和endColor的代码,颜色改变成功:

     void Start()
    {
        ray = new Ray();
        hit = new RaycastHit();
        if (Pvr_UnitySDKManager.SDK.isHasController)
        {
            Pvr_ControllerManager.PvrServiceStartSuccessEvent += ServiceStartSuccess;
            Pvr_ControllerManager.SetControllerStateChangedEvent += ControllerStateListener;
            Pvr_ControllerManager.ControllerStatusChangeEvent += CheckControllerStateForGoblin;
            isHasController = true;
#if UNITY_EDITOR
            HeadSetController.SetActive(false);
            currentController = controller1;
            dot = controller1.transform.Find("dot").gameObject;
            dot.SetActive(true);
            rayLine = controller1.transform.Find("ray_LengthAdaptive").gameObject;
            rayLine.SetActive(true);
#endif
            Debug.Log("change color before");
            rayLine = controller1.transform.Find("ray_LengthAdaptive").gameObject;
            rayLine.GetComponent<LineRenderer>().startColor = Color.red;
            rayLine.GetComponent<LineRenderer>().endColor = Color.green;
            Debug.Log("change color after");
        }
        referenceObj = new GameObject("ReferenceObj");
    }
0 votes
by (3.8k points)

是和按钮的交互吗,我之前按钮放的太远就交互不了。把按钮放近一点,或者把这个放长一点试试:enter image description here

by (200 points)

嗯嗯,谢谢,已经解决了。不过还有个问题,就是射线的颜色怎么变化呢,我用脚本控制它的颜色变化,PC端正常,pico就不变化了。

...