Étape 3: Código para detección del iman
En esta ocasión el imán de nuestros dodocase amendements servirá como botón de acción para que nuestro personaje pueda disparar, les dejamos el código usado
* "Globals" script *
public static var initialrv : int = 0 ; RAW vecteur boussole pour tester l’aimant contre public static var prevrv : int = 0 ; RAW vecteur boussole pour vérifier qu’initialrv est valide public static var initialrot : ScreenOrientation ;
fonction marche ()
{initialrot = Screen.orientation ; Input.Compass.enabled = true ; }
fonction mise à jour () {}
Attraper, si l’initialrv est complètement faux
(parfois l’ampleur peut passer de / / 15 à 400, selon la façon dont le joueur / / fait pivoter l’appareil). Si (prevrv > initialrv * 23) {initialrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude);}
Attraper, si l’utilisateur fait basculer l’écran pour modifier l’orientation
Si (initialrot! = Screen.orientation || initialrv == 0) {initialrot = Screen.orientation ; initialrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude);}
Attraper si la grandeur est tombée par un
énorme quantité depuis la dernière mise à jour / / var vectest = Mathf.RoundToInt(Input.compass.rawVector.magnitude) ; Si (initialrv > vectest * 23) {initialrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude);}
R prevrv à tester par rapport au début de la prochaine mise à jour
prevrv = Mathf.RoundToInt(Input.compass.rawVector.magnitude) ; }
* "Script de GameLogic" *
en supposant que l’initialrv du script global est d’environ
compatible avec l’ampleur actuelle avant un bouton / / est pressé, nous pouvons tester contre elle. Si l’ampleur déclenche / / double, il indique que le bouton magnétique a été / / enfoncée. Si l’ampleur déclenche en 23 fois ou plus, il / / indique un faux-positif, à quel point l’initialrv est remis à zéro. var vectest = Mathf.RoundToInt(Input.compass.rawVector.magnitude) ; Si (vectest > Globals.initialrv * 2)
{/ / Aimant bouton vers le bas
Fire() ;
}
Este código esta tomado de http://www.sc0ttgames.com/?p=293