Ich erstelle ein einfaches VR-Spiel für Google Pappe in Unity und ich erstellte UI Text, der Partitur anzeigt und Kind der Kamera ist. Mein Problem ist, dass ich es nicht immer sichtbar machen kann. Ich weiß, dass es mit Screen Space - Overlay funktioniert, aber wie macht man es mit World Space Canvas?Wie macht man World Space UI in Unity immer sichtbar?
0
A
Antwort
3
Hier ist ein Shader ich es tun bin mit:
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
}
}
}
- Erstellen Sie diese Shader in Ihrem Projekt
- ein Material mit diesem Shader erstellen
- Wenden Sie das Material auf alle Ihre Elemente Sie
Quelle http://answers.unity3d.com/questions/878667/world-space-canvas-on-top-of-everything.html
vor allem erscheinen soll
0
- Bringen Sie es in ein leeres Objekt
- ein Skript zum
So von transform.translateto zu Kamera-Objekt hinzufügen
Verwandte Themen
- 1. Wie man Pikaday Datepicker immer sichtbar macht
- 2. Wie man die Sidebar immer in der Semantic UI sichtbar macht
- 3. Wie macht man Eden Space Größe doppelt Tenured Space
- 4. Angular UI UibModal - wie man transparent macht
- 5. Wie man WPF Adorner sichtbar macht
- 6. Wie macht man einen div-Clip sichtbar?
- 7. wie man androidplot axis caption sichtbar macht
- 8. Wie man Knopf im Repeater sichtbar macht?
- 9. Wie man ui Elemente oben zeigt Unity
- 10. Wie man Dropdown mit Kendo UI macht
- 11. Wie man eine Halbkugel in Unity 5 macht
- 12. Wie man eine Slideshow eines Texturbildes in Unity 5 macht
- 13. Wie macht man ein dynamisches Modell in Unity 3D?
- 14. Wie macht man Multi Array in Unity C#?
- 15. Wie macht man ShadowCamera in threw.js r73 sichtbar?
- 16. Moving Unity UI
- 17. Kontrolle immer sichtbar halten
- 18. Seltsame Ergebnisse beim Versuch, UI-Elemente auf eine dynamische Größe in Unity
- 19. Wie man eine Klasse von einer anderen sichtbar macht?
- 20. Wie man leere Zeilen im Dojo nicht sichtbar macht Datagrid
- 21. Dokumente.Schloss macht Word sichtbar
- 22. Wie macht man eine Variable im Layout sichtbar?
- 23. Wie man geworfene Fehler außerhalb eines Versprechens sichtbar macht?
- 24. Text Unity UI Ausblenden
- 25. Wie man Slider in Unity
- 26. Wie man einen "Zeilenkopf" im angularen UI-Raster macht
- 27. Wie macht man jQuery Mobile UI Objekt laden Seite laden
- 28. Navigationsschublade immer sichtbar (ein wenig)
- 29. Wie Datalist Pfeil immer sichtbar zu sein
- 30. Wie ist die UISearchBar-Bereichsleiste immer sichtbar?
Erstellen Sie eine zweite Kamera, legen Sie ihre Ausblendungsmaske auf "UI" fest und weisen Sie sie dem UI-Canvas zu. Gibt es einen Grund, warum Sie diesen Ansatz nicht verwenden möchten? – yedpodtrzitko
@yedpodtrzitko Ich bin mir nicht sicher, ob es richtig funktioniert mit Google Pappkamera (es ist im Grunde zwei Kameras eine für jedes Auge). Wie soll ich das tun? Erstelle eine andere Kamera für jedes Auge und setze die Culling Mask tp UI? –
@yedpodtrzitko Wenn ich geschafft habe, zweite Kamera (n) mit UI Culling-Maske zu erstellen, wie kann ich es zuletzt machen? –