私はUnityでgoogle cardboard用の単純なVRゲームを作成しています。スコアを表示し、カメラの子であるUIテキストを作成しました。私の問題は、いつも見えるようにすることができないということです。スクリーンスペース - オーバーレイで動作するのは知っていますが、ワールドスペースキャンバスでどのように行うのですか?World Space UIをUnityで常に表示するにはどうすればいいですか?
0
A
答えて
3
私はそれを行うために使用しているシェーダです:
Shader "UI/Default_OverlayNoZTest"
{
Properties
{
[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
_Color("Tint", Color) = (1,1,1,1)
_StencilComp("Stencil Comparison", Float) = 8
_Stencil("Stencil ID", Float) = 0
_StencilOp("Stencil Operation", Float) = 0
_StencilWriteMask("Stencil Write Mask", Float) = 255
_StencilReadMask("Stencil Read Mask", Float) = 255
_ColorMask("Color Mask", Float) = 15
}
SubShader
{
Tags
{
"Queue" = "Overlay"
"IgnoreProjector" = "True"
"RenderType" = "Transparent"
"PreviewType" = "Plane"
"CanUseSpriteAtlas" = "True"
}
Stencil
{
Ref[_Stencil]
Comp[_StencilComp]
Pass[_StencilOp]
ReadMask[_StencilReadMask]
WriteMask[_StencilWriteMask]
}
Cull Off
Lighting Off
ZWrite Off
ZTest Off
Blend SrcAlpha OneMinusSrcAlpha
ColorMask[_ColorMask]
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#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;
};
fixed4 _Color;
fixed4 _TextureSampleAdd; //Added for font color support
v2f vert(appdata_t IN)
{
v2f OUT;
OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
OUT.texcoord = IN.texcoord;
#ifdef UNITY_HALF_TEXEL_OFFSET
OUT.vertex.xy += (_ScreenParams.zw - 1.0)*float2(-1,1);
#endif
OUT.color = IN.color * _Color;
return OUT;
}
sampler2D _MainTex;
fixed4 frag(v2f IN) : SV_Target
{
half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; //Added for font color support
clip(color.a - 0.01);
return color;
}
ENDCG
}
}
}
- あなたはすべての前に表示したいすべての要素に材料を適用し、このシェーダ
- で材料を作成し、プロジェクト
- でこのシェーダを作成
ソースhttp://answers.unity3d.com/questions/878667/world-space-canvas-on-top-of-everything.html
0
- は空のオブジェクト
- にそれを添付し、あなたがUIを見たときにオブジェクトが常にそうtransform.translateto
によってあなたのカメラに直面してみましょうオブジェクト
関連する問題
- 1. Unityでこれを行うにはどうすればいいですか?
- 2. jQuery UI Sliderをぼかしで非表示にするにはどうすればいいですか?
- 3. Codenameone、UIに表示せずにMultiButtonアイテムに値をバインドするにはどうすればいいですか?
- 4. Win32 MessageBoxを表示するにはどうすればよいですか?
- 5. QTフレームワークのUIに「* .png」ファイルを表示するにはどうすればいいですか?
- 6. jquery UI内にローディングバーを表示するにはどうすればいいですか?
- 7. Unity Android:スプラッシュ画像の表示品質を保証するにはどうすればよいですか?
- 8. アシスタントエディタを表示するにはどうすればいいですか? Xcodeで
- 9. ウェブブラウザで.pptを表示するにはどうすればいいですか?
- 10. CRViewerをモニタフルスクリーンで表示するにはどうすればいいですか?
- 11. UITableviewでサムネイルリストを表示するにはどうすればいいですか
- 12. カーネルでメッセージを表示するにはどうすればいいですか?
- 13. コンボボックスをグレー表示にするにはどうすればいいですか?
- 14. NSSetをUITableViewに表示するにはどうすればいいですか?
- 15. UIViewにXIBを表示するにはどうすればいいですか?
- 16. ビューにモデルデコレーションを表示するにはどうすればいいですか?
- 17. DataGridにビューを表示するにはどうすればいいですか?
- 18. Jquery PrettyPhoto - 次の前のボタンを常に表示するにはどうすればいいですか?
- 19. SwiftでプレビューUIコントローラを非表示にするにはどうすればよいですか?
- 20. mergetoolのGUI(kdiff3)を常に表示させるにはどうすればいいですか?
- 21. DataGrid - 両方のスクロールバーを常に表示させるにはどうすればいいですか?
- 22. jmapに表示される「From Space」と「To Space」の意味は何ですか?
- 23. Visual StudioのようなEclipseでコードアシスタントを表示するにはどうすればいいですか?
- 24. Unityコンテナ「解決」をデバッグするにはどうすればよいですか?
- 25. 通常のhtmlにjQuery UIテーマを適用するにはどうすればいいですか?
- 26. NSTextFinderを表示するにはどうすればいいですか
- 27. fxcopレポートを表示するにはどうすればいいですか?
- 28. アンドロイドのタブバーを表示するにはどうすればいいですか?
- 29. rootのbash_historyを表示するにはどうすればいいですか?
- 30. WordPress RSSを表示するにはどうすればいいですか?
2番目のカメラを作成し、そのカリングマスクを「UI」のみに設定し、それをUI Canvasに割り当てます。このアプローチを使用したくない理由はありますか? – yedpodtrzitko
@yedpodtrzitko私はそれが正常にGoogleのボール紙のカメラで動作するかどうかはわかりません(それは基本的に各目の2つのカメラです)。どのようにイドーこれは?それぞれの目に別のカメラを作成し、そのカリングマスクtp UIを設定しますか? –
@yedpodtrzitko UIカリングマスクを使用して2番目のカメラを作成すると、最後にリオーダーすることができますか? –