Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Unity着色器无效下标';boxMax';_Android_Unity3d_Opengl Es_Shader - Fatal编程技术网

Android Unity着色器无效下标';boxMax';

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

我的错误是:

“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

我粘贴了上面的完整错误,所以请务必查看

下面是我的着色器代码:

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后;这条线对我有用。谢谢