2016-04-14 1 views
0

Je fais un jeu de course spatial dans l'unité où les pistes de course sont des tunnels qui ont des chemins 3d complexes. Je veux créer un élément HUD qui donne au joueur une idée de l'endroit où elle est sur la piste. Je ne peux pas le faire en montrant seulement une projection en 2D de la piste dans le HUD - J'ai besoin d'afficher la piste en 3D.Créer un HUD 3D dans l'unité

Supposons que la piste entière est un maillage. Une idée que j'ai eu est de créer une copie d'objet de jeu de ce maillage dans une très petite taille (appliquer un matériau/shader translucide simple), et placer cet objet visible dans le coin de la caméra, comme son objet enfant. Mon problème est que la piste peut être très grande, et je veux seulement en afficher une partie à tout moment. Une solution de masquage 3D serait parfaite - je pourrais utiliser une sphère comme masque.

Y at-il un moyen de le faire? La chose la plus proche que j'ai trouvé était un masque d'interface utilisateur, mais cela ne fonctionne que sur les objets sur le canevas de l'interface utilisateur, et je ne peux pas y mettre un maillage.

Merci!

+1

Vous pouvez utiliser RenderTexture. Le concept est que vous aurez une caméra rendant votre toile d'interface utilisateur et mettant la sortie de rendu dans une texture (RenderTexture) que vous pouvez assigner à un plan en 3D. Google, c'est cool. Cela nécessite Unity pro, cependant. –

+1

@NikaKasradze RenderTexture est également inclus dans la version gratuite. – DodgerThud

+0

[lol je vieillis] (http://docs.unity3d.com/ScriptReference/RenderTexture.html) Je suppose, [c'était une fonctionnalité pro dans les versions 4.x] (http: //docs.unity3d. com/460/Documentation/ScriptReference/RenderTexture.html))) –

Répondre

0

Si vous souhaitez créer une interface graphique 3D, vous pouvez simplement ajouter une autre caméra. Vous pouvez dupliquer le maillage tel que vous le décrivez et le placer sur un calque particulier (appelez-le comme vous voulez). Dans votre deuxième caméra, appelons-la hud-caméra, vous définissez son masque de sélection pour ne rendre que votre couche hud personnalisée. Vous devez également définir les indicateurs d'effacement en profondeur uniquement. Enfin, vous devez régler la profondeur de la caméra hud pour qu'elle soit supérieure à la caméra principale. De cette façon, le gui rend le jeu fini. Vous êtes maintenant libre de mettre à l'échelle et de positionner votre mini-piste par rapport à la caméra hud. Pour vous assurer que la caméra principale ne restitue pas également la mini-piste, vous pouvez définir le masque de suppression des caméras principales pour omettre la couche de hud personnalisée. J'espère que ça aide.