Stap 3: Código para Detection del iman
Nl esta ocasión el imán de nuestros dodocase nos servirá como botón de acción para que nuestro personaje pueda disparar, les dejamos el código used
* "Globals" script *
statische var initialrv: int = 0; Ruwe kompas vector voor het testen van de magneet tegen statische var prevrv: int = 0; Ruwe kompas vector om te verifiëren dat initialrv is geldig statische var initialrot: ScreenOrientation;
functie (begin)
{initialrot = Screen.orientation; Input.Compass.enabled = true; }
functie Update () {}
Vangen als de initialrv helemaal verkeerd is
(soms de omvang kan springen uit / / 15 tot 400, afhankelijk van hoe de speler / / draait het apparaat). Als (prevrv > initialrv * 23) {initialrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude);}
Vangen als de gebruiker Hiermee spiegelt u het scherm als de afdrukstand wilt wijzigen
Als (initialrot! = Screen.orientation || initialrv == 0) {initialrot = Screen.orientation; initialrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude);}
Vangen als de omvang is gedaald door een
enorm veel sinds de laatste update / / var vectest = Mathf.RoundToInt(Input.compass.rawVector.magnitude); Als (initialrv > vectest * 23) {initialrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude);}
Vernieuwen prevrv te toetsen aan het begin van de volgende update
prevrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude); }
* "GameLogic" script *
uitgaande van de initialrv uit het global script is ongeveer
overeenstemming met de huidige omvang voor een knop / / is ingedrukt, we ertegen kunnen testen. Als de grootte verhoogt / / twee-voudige, betekent dit dat de magnetische knop geweest / / ingedrukt. Als de grootte door 23 keer of meer verhoogt, het / / geeft een vals-positieve, op welk punt de initialrv opnieuw wordt ingesteld. var vectest = Mathf.RoundToInt(Input.compass.rawVector.magnitude); Als (vectest > Globals.initialrv * 2)
{/ / Magneet knop ingedrukt
Fire();
}
Este código esta tomado de http://www.sc0ttgames.com/?p=293