天道酬勤,学无止境

virtual-reality

在 Unity 中检测 Oculus Quest 1 和 2 耳机(Detect Oculus Quest 1 & 2 Headsets in Unity)

问题 我正在寻找一种方法来检测在我的 VR 应用程序中使用的耳机的名称。 我需要区分Quest 1 和 2以实现不同的控制器映射。 像 XRDevice.model 或 OVRPlugin.productName 这样的方法在文档中没有提供任何名称列表,并且由于 quest 2 是一个新模型,我没有在任何地方找到有关它的信息。 任何帮助,将不胜感激。 回答1 如果您直接在 Quest 2 上运行(而不是 Oculus Link),您可以使用 OVRPlugin.SystemHeadset headset = OVRPlugin.GetSystemHeadsetType(); if(headset==OVRPlugin.SystemHeadset.Oculus_Quest){ // Quest 1 stuff here }else if (headset==(OVRPlugin.SystemHeadset.Oculus_Quest+1)){ // Quest 2 stuff here } 他们还没有将 Oculus Quest 2 添加到 SystemHeadset 枚举中,但它的位置有一个“Placeholder_9”。 为了清楚起见,我更喜欢“+1”。 如果您使用该链接,它会为 Quest 1 返回 Oculus_Link_Quest,我假设 (Oculus_Link_Quest

2021-12-24 01:42:03    分类:技术分享    android   unity3d   virtual-reality   oculus   oculusquest

画布没有在顶部渲染(Canvas is not rendering on top)

问题 我使用画布和 Unity UI 元素作为 HUD。 我希望 HUD 位于一切前面,但事实并非如此。 回答1 以前没有使用过 Cardboard,但我相信你可以通过相机剔除来解决这个问题。 只需按照以下步骤操作: 画布: 1.选择Canvas并将图层更改为UI。 默认为 UI,但请确保它仍设置为 UI。 默认/主摄像头: 1.选择已经存在的主摄像机并将Clear Flags更改为Skybox 。 2.将Culling Mask更改为Everything 。 单击是Culling Mask设置的Everything ,然后取消选择/取消选中UI 。 3.将Depth更改为0 。 新相机: 1.新建一个Camera ,命名为UI Camera。 2.选择UI Camera,将Clear Flags更改为Depth Only 。 3.将Culling Mask更改为UI 。 4.将Depth更改为1 。 5.如果要在顶部显示的画布将“ Render Mode ”设置为“ World Space ”或“ Screen Space - Camera ”,则将 UI 相机拖动到画布的渲染相机/事件相机插槽。 如果“ Render Mode ”设置为“ Screen Space - Overlay ”,则不必执行此操作。 而已。 这将始终在前面显示 UI。 它应该是默认的

2021-12-21 15:43:43    分类:技术分享    unity3d   google-cardboard   virtual-reality

unity Cardboard Orientation Landscape Right Upside Down(Unity Cardboard Orientation Landscape Right Upside Down)

问题 嗨,我有一个 Unity 应用程序,它使用谷歌 Cardboard SDK 来启用立体视图,因此我将拥有一个启用 VR 的应用程序。 我的应用程序运行得很好。 但是,如果我将播放器设置方向设置为自动方向,并且仅允许横向向左和向右横向,则会出现问题。 当它处于横向左侧时,一切正常,但是当它处于横向右侧时,纸板视图将旋转 180 度(设置按钮移动到屏幕底部),但我的统一对象不会。 因此我有一个颠倒的对象。 有什么方法可以解决这个问题? 谢谢。 回答1 SDK 用于读取陀螺仪的本机代码似乎仅针对横向左方向进行了硬编码。 这可以通过编辑 BaseCardboardDevice.cs 并将 UpdateState() 的定义替换为以下代码来解决: private Quaternion fixOrientation; public override void UpdateState() { GetHeadPose(headData, Time.smoothDeltaTime); ExtractMatrix(ref headView, headData); headPose.SetRightHanded(headView.inverse); // Fix head pose based on device orientation (since native code assumes

2021-12-12 08:17:03    分类:技术分享    c#   unity3d   screen-orientation   google-cardboard   virtual-reality

Canvas is not rendering on top

I used a canvas and Unity UI elements as a HUD. I want HUD to be in front of everything but it's not.

2021-12-11 04:29:47    分类:问答    unity3d   google-cardboard   virtual-reality

OnPointerEnter 未被调用(OnPointerEnter is not being called)

问题 我正在尝试在按钮被注视时为其设置动画。 我有以下代码,其中我从球体进行 Raycast 以找到它击中的按钮。 var eventDataCurrentPosition = new PointerEventData(EventSystem.current); eventDataCurrentPosition.position = screenPosition; var results = new List<RaycastResult>(); EventSystem.current.RaycastAll(eventDataCurrentPosition, results); foreach (var result in results) { Debug.Log(result.gameObject.name); } 为了给按钮设置动画,我将以下代码添加到按钮中。 不幸的是, OnPointerEnter或 ``OnPointerExit 永远不会被调用。 [RequireComponent(typeof(Button))] public class InteractiveItem : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { public Image progressImage; public bool

2021-12-05 09:39:07    分类:技术分享    c#   unity3d   user-interface   virtual-reality   gaze-buttons

Unity ui 蒙版不适用于谷歌像素设备(Unity ui mask not working on google pixel device)

问题 我正在制作一个滚动 ui 面板并将蒙版应用于 ScrollRect 组件,该组件应该隐藏面板区域之外的部分。 我正在使用统一版本 5.4.2f2-GVR。 当我将它部署到谷歌像素设备上时,掩码在 PC 上正常工作,但它不起作用。 这是统一版本的错误还是其他什么...... 回答1 我通过使用RectMask2D Component 而不是常规的Mask解决了这个问题。 回答2 如果其他人遇到了这个问题并且Bahman_Aries 解决方案还不够,请尝试以下操作: 文件 > 构建设置 > 播放器设置 > XR 设置(或其他设置,如果您使用的是旧版本的 Unity)> Daydream(单击小箭头)> 深度格式。 并将其设置为24 位深度 | 8 位模板。 这是因为您需要一个模板缓冲区。 回答3 当其content的图像将其材质设置为none以外的其他content时, ScrollRect组件具有这种奇怪的行为。 将材料取消设置为None ,它应该可以工作。 如果内容的每个子级都已经没有材料,那么它可能是一个错误。

2021-12-01 04:36:16    分类:技术分享    android   unity3d   virtual-reality   google-vr   daydream

如何统一减少VR游戏的延迟(How to reduce the lag in VR games in unity)

问题 我一直在使用 Unity3d 为 VR 构建游戏。 它只有低多边形模型,文件大小小于 40 mb,在移动设备上玩游戏时仍然滞后.. 请建议如何提高性能.. 先感谢您.. 回答1 为了提高移动 VR 的性能,您必须尽可能地优化所有内容,您应该记住以下一些变量: 图形方面 - 场景中的多边形数量 - 你有多少光源 编程方面 - 您的代码做了多少工作,是否有效地执行? 编程部分可能包括物理系统内的问题,也可能包括一些逻辑问题,这些问题可能会因为更高的计算而降低整体性能。 我的建议是了解 unity 提供的 Profiler,实际上您可以观察到您的代码有多少工作以及它究竟在哪里是您的瓶颈。 这个视频也很有用。 当然,解决方案可以是按照设计标准来实现您的代码,例如设计模式和软件架构(取决于项目的大小)。 我希望它对你有用! 回答2 我从开发和启动 VR 游戏中发现以下一些问题 即使您的模型是低多边形,多边形的数量通常也是您首先要检查的。 例如,我在统一商店中查看了 Synty 模型,其中一些包超过 1k,角色模型超过 7k。 如果您希望每只眼睛最多瞄准 50000 个对象,这将大大减少您可以使用的对象数量。 对于某些模型,您可以使用搅拌器和抽取工具轻松减少多边形数量。 从那里我将使用 LOD 来根据距离进一步减少它们的数量。 使用遮挡剔除(仅限专业版) 将您的相机距离设置为 100

2021-11-30 13:32:17    分类:技术分享    unity3d   google-cardboard   virtual-reality

Detect Oculus Quest 1 & 2 Headsets in Unity

I'm looking for a way to detect the name of the headset being used in my VR app. I need to distinguish between the Quest 1 & 2 in order to implement the different controller mappings. Methods like XRDevice.model or OVRPlugin.productName don't provide any name lists in the documentation and since the quest 2 is a new model I haven't found information on it anywhere. Any help would be appreciated.

2021-11-25 16:47:28    分类:问答    android   unity3d   virtual-reality   oculus   oculusquest

Unity Cardboard Orientation Landscape Right Upside Down

Hi I have a Unity app which uses google Cardboard SDK to enable stereoscopic view so I will have a VR enabled app. My app runs perfectly fine. But there is a problem if I set the player settings orientation to be auto orientation with only landscape left and landscape right allowed. When it is in landscape left, everything works as per normal but when it is in landscape right the cardboard view will turn 180 degrees (settings button moved to bottom of screen) but my unity objects does not. Thus I have an upside-down objects. Any method to fix this? Thanks.

2021-11-25 09:35:42    分类:问答    c#   unity3d   screen-orientation   google-cardboard   virtual-reality

How to reduce the lag in VR games in unity

I have been building a game for VR using Unity3d. It has only low poly models and the file size is less then 40 mb still the game lags when played on mobile.. Please suggest how to improve the performance.. Thank you in advance..

2021-11-23 07:08:25    分类:问答    unity3d   google-cardboard   virtual-reality