Virtual Reality-spel och gör din kropp en Controller! (Unity + Visual Studio + Kinect + Oculus) (4 / 11 steg)
Steg 4: Skapa VR UI
Nu i vår största scen, lägga till OVRCamerRig till FPSPreFab som vi gjorde innan. Vi måste nu lägga till en UI för Oculus eftersom oculus inte kan använda HUD visar på samma sätt som vanlig enhet kameror kan. Att göra detta kopiera objektet duk och klistra in den under OVRCameraRig och byta namn på Canvas OVRCanvas.
BILD 1 OVAN
BILD 2 OVAN
Vi kommer att behöva redigera denna duk lite innan det fungerar.
1) vi behöver denna UI i världen utrymme. Vi gör detta genom att välja OVRCanvas och sedan enheten under duk > RenderMode och i rullgardinsmenyn Välj världen utrymme.
BILD 3 OVAN
BILD 4 OVAN
2) ändra instruktioner texten
BILD 5
BILD 6
3) inaktivera knapparna-knappar inte kommer att behövas eftersom vi använder Kinect.
4) ändra animeringen i spelenhet att gälla för den nya OVRCanvas – gör detta genom att lägga till dessa rader till metoden GameControllers vaken:
GameObject ovrcanvas = GameObject.Find("OVRCanvas");
startAnim = ovrcanvas. GetComponent();
5) och kommentera ut raden aktuella startAnim.
startAnim = duk. GetComponent();
Vi är inte klar än. Vi måste också justera End Game UI men vi kan uppnå detta på samma sätt som vi gjorde det med StartUI.
Välj starta Användargränssnittet från hierarkin och väljer knappen 2D i fliken scen. I allmänhet är det lättare att arbeta med UI i 2D-läge av enighet.
BILD 7 OVAN
BILD 8 OVAN
Vi se inte riktigt något i scenen. Det beror på att i början av spelet är enda i den duk som vi vill se instruktionerna. Dock ser vi en rektangel med blå cirklar på hörnen runt duken. Att rektangel betyder det utrymme där slutet UI visas. Nu i Oculus är sökaren lite begränsad eftersom vi har duken i världen utrymme. Därför måste vi flytta innehållet i UI till visningsfältet i användare visionen; vilket råkar vara rutan instruktioner.
Att flytta det vi måste se till att verktyget ankare rörelse är markerad och inte den vanliga övergång redskap.
BILD 9
BILD 10
Sedan kan vi gå runt innehållet mot mitten av skärmen. Genom att klicka och dra. När du har vissa delar av hierarkin valt har sina motsvarande positioner i scenen den blå trekantig rektangeln runt dem.
Startknappen UI
I spelenhet uppdateringsmetoden måste vi lägga till en villkorsstyrd som kvalificerar spelet inte har startat och animeringen laddas inte. Conisidentaly vi har detta redan. I boolesk variabel gamestarted.
Lägg till detta att början av uppdateringen.
om (! gamestarted)
{
om (Input.GetKey(KeyCode.KeypadEnter))
{
StartGame();
}
}
Uppdateringen ska nu se ut såhär:
void (uppdatering)
{
om (! gamestarted)
{
om (Input.GetKey(KeyCode.KeypadEnter))
{
StartGame();
}
}
om (laddar)
{
Debug.Log ("Anime ska börja");
... säga animatör spelet är över.
startAnim.SetTrigger("StartGame");
// .. öka en timer för att räkna till omstart.
beginningTimer += Time.deltaTime;
// .. om den når omstart förseningen...
om (beginningTimer > = beginningDelay)
{
Debug.Log("TriggeringStart");
Laddar = false;
StartGame();
}
}
Ange den Visa texten skall ordet "Värdering" följt av poäng värdet.
scoreText.text = "poäng:" + poäng;
finalScoreText.text = "poäng:" + poäng;
om (playerHealth.currentHealth < = 0 & &! gameended)
InitializeEndGame();
om (gameended)
{
restartTimer += Time.deltaTime;
// .. om den når omstart förseningen...
om (restartTimer > = restartDelay)
{
// .. sedan ladda den inlästa nivån.
Application.LoadLevel(Application.loadedLevel);
}
}
}
Vi behöver för att slutföra nästa steg är att ändra spelenheten, så det kan avsluta och starta om spelet med våra nya ingångar. Vi kommer att behöva förstöra plattformarna av scenen, annars det kommer att blockera våra spelare syn som bilden nedan.
BILD 11
Till vänster är vad spelarna Visa bör se utan i stället de fortfarande plattformarna.