2016-10-27 6 views
6

Ich versuche, meine Unity 5.4.2f2 Anwendung für iOS zu erstellen. Es wird ohne Kompilierungsfehler durchgeführt. Aber wenn ich versuche, die Anwendung mit Xcode 8.0 auszuführen, stürzt es sofort ab und der Debugger meldet den folgenden Fehler.Unity-Anwendung stürzt auf iOS wegen Shader nicht kompiliert

Initialize engine version: 5.4.2f2 (b7e030c65c9b) 
-------- Shader compilation failed 
#version 100 
#extension GL_EXT_frag_depth : enable 
precision highp float; 
uniform highp vec4 _ProjectionParams; 
uniform highp vec4 _ZBufferParams; 
uniform highp mat4 unity_CameraToWorld; 
uniform highp mat4 _NonJitteredVP; 
uniform highp mat4 _PreviousVP; 
uniform highp sampler2D _CameraDepthTexture; 
varying highp vec2 xlv_TEXCOORD0; 
varying highp vec3 xlv_TEXCOORD1; 
void main() 
{ 
    highp vec4 tmpvar_1; 
    tmpvar_1 = texture2D (_CameraDepthTexture, xlv_TEXCOORD0); 
    mediump vec2 tmpvar_2; 
    highp vec4 tmpvar_3; 
    tmpvar_3.w = 1.0; 
    tmpvar_3.xyz = ((xlv_TEXCOORD1 * (_ProjectionParams.z/xlv_TEXCOORD1.z)) * (1.0/((
        (_ZBufferParams.x * tmpvar_1.x) 
        + _ZBufferParams.y)))); 

    highp vec4 tmpvar_4; 
    tmpvar_4 = (unity_CameraToWorld * tmpvar_3); 

    highp vec4 tmpvar_5; 
    tmpvar_5 = (_PreviousVP * tmpvar_4); 

    highp vec4 tmpvar_6; 
    tmpvar_6 = (_NonJitteredVP * tmpvar_4); 

    highp vec2 tmpvar_7; 
    tmpvar_7 = (((tmpvar_5.xy/tmpvar_5.w) + 1.0)/2.0); 

    highp vec2 tmpvar_8; 
    tmpvar_8 = (((tmpvar_6.xy/tmpvar_6.w) + 1.0)/2.0); 
    tmpvar_2 = (tmpvar_8 - tmpvar_7); 

    mediump vec4 tmpvar_9; 
    tmpvar_9.zw = vec2(0.0, 1.0); 
    tmpvar_9.xy = tmpvar_2; 
    gl_FragDepthEXT = tmpvar_1.x; 
    gl_FragData[0] = tmpvar_9; 
} 

failed compiling: fragment evaluation shader WARNING: 0:4: extension 'GL_EXT_frag_depth' is not supported ERROR: 0:38: Use of undeclared identifier 'gl_FragDepthEXT'

Note: Creation of internal variant of shader 'Hidden/Internal-MotionVectors' failed. WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Setting to default shader.

Xcode 8.0 enthält OPenGL 2.0.

Bei der Unity forum Leute sagen uns, dass es für Unity 5.4 in Ordnung sein sollte. Aber es funktioniert nicht für mich. Auf Android-Geräten läuft meine Anwendung ganz in Ordnung.

+0

Haben Sie es gelöst? –

+1

@ JérômeBoé. Ich werde die Antwort morgen hinzufügen – Sami

+0

Es wäre nett, wenn Sie Ihre Lösung posten, es ist ziemlich dringend ^^ –

Antwort

5

öffnen Unity -> Bearbeiten -> Projekteinstellungen -> Grafik

Dann Tiefe Normals unter Einbau-Shader-Einstellung sehen und wählen Option keine Unterstützung

Here is Screenshot telling where to do above stuff

3

Von Bearbeiten/Projekt Einstellungen/Grafiken können immer enthaltene Shader sehen, siehe dort

Oder wenn Sie 3D-Objekte in Szene haben, deaktivieren Sie [] Bewegungsvektoren von allen Mesh Renderer rs .. Sie können in der Hierarchie suchen, um alle zu sehen: t: migrendrere

Für mich war es die "Motion Vectors" Einstellung (auch unter Bearbeiten/Projekteinstellungen/Grafiken).

Referenz: https://forum.unity3d.com/threads/hidden-shader-motionvectors.431470/

Verwandte Themen