Android Unity着色器无效下标';boxMax';
我的错误是: “Volund/标准字符(镜面反射)”中的着色器错误:Assets/Features/Shared/Volund_unitystandcore.cginc(261)(在d3d11上)处的下标“boxMax”无效 用方向(法线贴图)(SPECGLOSSMAP)编译顶点程序 平台定义:UNITY\u NO\u DXT5nm UNITY\u启用\u反射\u缓冲区UNITY\u屏幕空间\u阴影UNITY\u PBS\u使用\u BRDf2着色器\u API\u桌面UNITY\u硬件\u TIER3 UNITY\u色彩空间\u GAMMA 我粘贴了上面的完整错误,所以请务必查看 下面是我的着色器代码:Android Unity着色器无效下标';boxMax';,android,unity3d,opengl-es,shader,Android,Unity3d,Opengl Es,Shader,我的错误是: “Volund/标准字符(镜面反射)”中的着色器错误:Assets/Features/Shared/Volund_unitystandcore.cginc(261)(在d3d11上)处的下标“boxMax”无效 用方向(法线贴图)(SPECGLOSSMAP)编译顶点程序 平台定义:UNITY\u NO\u DXT5nm UNITY\u启用\u反射\u缓冲区UNITY\u屏幕空间\u阴影UNITY\u PBS\u使用\u BRDf2着色器\u API\u桌面UNITY\u硬件\u T
d.boxMax[0] = unity_SpecCube0_BoxMax;
d.boxMin[0] = unity_SpecCube0_BoxMin;
d.probePosition[0] = unity_SpecCube0_ProbePosition;
d.probeHDR[0] = unity_SpecCube0_HDR;
d.boxMax[1] = unity_SpecCube1_BoxMax;
d.boxMin[1] = unity_SpecCube1_BoxMin;
d.probePosition[1] = unity_SpecCube1_ProbePosition;
d.probeHDR[1] = unity_SpecCube1_HDR;
现在我把它改成这个
#if UNITY_SPECCUBE_BLENDING || UNITY_SPECCUBE_BOX_PROJECTION
d.boxMin[0] = unity_SpecCube0_BoxMin;
d.boxMin[1] = unity_SpecCube1_BoxMin;
#endif
#if UNITY_SPECCUBE_BOX_PROJECTION
d.boxMax[0] = unity_SpecCube0_BoxMax;
d.boxMax[1] = unity_SpecCube1_BoxMax;
d.probePosition[0] = unity_SpecCube0_ProbePosition;
d.probePosition[1] = unity_SpecCube1_ProbePosition;
错误:未完全初始化就使用了变量d
我这里的问题是,我成功地将.exe应用程序转换为.apk应用程序,但当我在设备上打开它时,它只是一个黑屏,在我构建它之后,它会显示上面的错误。有什么问题吗?因为我推测上面的错误是原因。我只想分享一下我在这里做的事情
UnityGIInput d;
UNITY_INITIALIZE_OUTPUT(UnityGIInput, d);
d.light = light;
d.worldPos = posWorld;
d.worldViewDir = -eyeVec;
d.atten = atten;
#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
d.ambient = 0;
d.lightmapUV = i_ambientOrLightmapUV;
#else
d.ambient = i_ambientOrLightmapUV.rgb;
d.lightmapUV = 0;
#endif
#if UNITY_SPECCUBE_BLENDING || UNITY_SPECCUBE_BOX_PROJECTION
d.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending
#endif
#if UNITY_SPECCUBE_BOX_PROJECTION
d.boxMax[0] = unity_SpecCube0_BoxMax;
d.probePosition[0] = unity_SpecCube0_ProbePosition;
d.boxMax[1] = unity_SpecCube1_BoxMax;
d.boxMin[1] = unity_SpecCube1_BoxMin;
d.probePosition[1] = unity_SpecCube1_ProbePosition;
#endif
我试着做这个UNITY\u初始化\u输出(UnityGIInput,d);仍然没有luckUNITY\u初始化\u输出(UnityGIInput,d)。联合输入d后;这条线对我有用。谢谢