使用XR时渲染管线报错IndexOutOfRangeException: renderPassIndex

文章描述了一个在Unity引擎使用XRDisplaySubsystem时遇到的错误,即尝试访问的渲染通道索引超出范围。问题发生在调用GetRenderPass方法时,且发现当启动场景中添加相机后,错误不再出现。这暗示可能在没有相机的情况下,渲染流程尝试访问不存在的渲染通道导致异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IndexOutOfRangeException: renderPassIndex
UnityEngine.XR.XRDisplaySubsystem.GetRenderPass (System.Int32 renderPassIndex, UnityEngine.XR.XRDisplaySubsystem+XRRenderPass& renderPass) (at <933cbd6bc9f14e5d819ef1b17372e9fa>:0)
UnityEngine.Rendering.Universal.XRSystem.CreateLayoutFromXrSdk (UnityEngine.Camera camera, System.Boolean singlePassAllowed) (at Library/PackageCache/com.unity.render-pipelines.universal@12.1.7/Runtime/XR/XRSystem.cs:331)
UnityEngine.Rendering.Universal.XRSystem.SetupFrame (UnityEngine.Camera camera, System.Boolean enableXRRendering) (at Library/PackageCache/com.unity.render-pipelines.universal@12.1.7/Runtime/XR/XRSystem.cs:190)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderCameraStack (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera baseCamera) (at Library/PackageCache/com.unity.render-pipelines.universal@12.1.7/Runtime/UniversalRenderPipeline.cs:528)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.Render (UnityEngine.Rendering.ScriptableRenderContext renderContext, System.Collections.Generic.List1[T] cameras) (at Library/PackageCache/com.unity.render-pipelines.universal@12.1.7/Runtime/UniversalRenderPipeline.cs:265) UnityEngine.Rendering.RenderPipeline.InternalRender (UnityEngine.Rendering.ScriptableRenderContext context, System.Collections.Generic.List1[T] cameras) (at :0)
UnityEngine.Rendering.RenderPipelineManager.DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset pipe, System.IntPtr loopPtr, System.Collections.Generic.List`1[T] renderRequests, Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle safety) (at :0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
官方描述
查了一下,renderPassIndex是渲染通道的索引(最初传入到 XRDisplaySubsystem.GetRenderPass)。
解决方法
我的启动场景中只放了启动框架,并没有放相机,当放入相机后就不会报错。
至于为什么报这个错,渲染通道为什么越界,就不太清楚了,引擎的代码没有研究过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值