Unityでパーティクルとカスタムシェーダーを適用したスプライトを表示したいのですが、iPhoneで表示されません。
Editorでは正しく表示されますが、XcodeでビルドしてiPhoneで実行すると表示されません。
全く何も表示されず真っ黒になります。
(パーティクルとスプライトの表示されない理由は別々かもしれません。)
Editorでの画像
UnityRemote5を使用した場合は表示されます。
Spriteの設定
Heroという名前のSpriteは、白く輝かせるためにカスタムシェーダーを設定しています。
シェーダーの内容は以下の通りです。
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Sprites/Default_Custom_128" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 } SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" } Cull Off Lighting Off ZWrite Off Fog { Mode Off } Blend One OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma multi_compile DUMMY PIXELSNAP_ON #include "UnityCG.cginc" struct appdata_t { float4 vertex : POSITION; float4 color : COLOR; float2 texcoord : TEXCOORD0; }; struct v2f { float4 vertex : SV_POSITION; fixed4 color : COLOR; half2 texcoord : TEXCOORD0; }; v2f vert(appdata_t IN) { v2f OUT; OUT.vertex = UnityObjectToClipPos(IN.vertex); OUT.texcoord = IN.texcoord; OUT.color = IN.color; #ifdef PIXELSNAP_ON OUT.vertex = UnityPixelSnap (OUT.vertex); #endif return OUT; } sampler2D _MainTex; fixed4 frag(v2f IN) : SV_Target { fixed4 c = tex2D (_MainTex, IN.texcoord); float up = saturate( (IN.color.rgb-0.5)/0.5 ); float dw = saturate( IN.color.rgb/0.5 ); c.rgb = c.rgb*dw + (1-c.rgb)*up; c.rgb *= c.a; return c; } ENDCG } } }
教えてほしいこと
iPhoneでパーティクルとスプライトを正しく表示する方法を教えてください。
パーティクルとスプライトのどちらかだけでも構いません。
補足情報(FW/ツールのバージョンなど)
環境は
macOS10.15.2
Unity2019.2.10f1 Personal
Xcode11.3.1
iPhone6s Plus
iOS13.3
です。
よろしくお願いします。
あなたの回答
tips
プレビュー