[DB-RS] Rotation Plane

Toutes les questions sur le développement Mobile, y compris la partie script.
zipunk
Messages : 3
Inscription : 17 Sep 2017 22:33

[DB-RS] Rotation Plane

Message par zipunk » 17 Sep 2017 22:44

Bonjour,

je suis débutant et j'amenais que l'on m'aide à créer une rotation via l'accéléromètre de l'iphone. en creusant un peu j'ai fait ce script ci dessous

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AccelerometerInput : MonoBehaviour {

	void Update () {

		transform.Rotate (Input.acceleration.x, 0, -Input.acceleration.z);

}

}

Mon plane penche sur la gauche directement au lancement et je ne comprend pas pourquoi. Il faut que je penche mon iphone a fond vers la droite pour rattraper le coup mais c'est pas le but mon plane est censé resté droit et se pencher en fonction de mon iphone

Merci d'avance si quelqu'un peut m'éclairer
.
 ! Message de : Max
Utilisez les balises code SVP .
Attention à la section ou vous postez (problème sur iPhone = section Développement plateformes mobile Iphone et Android)
Merci de lire la Netiquette.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6222
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-RS] Rotation Plane

Message par boubouk50 » 18 Sep 2017 10:48

Tu as suivi le Unity Learn je suppose, puis remplacé le Translate () par un Rotate ()?
https://unity3d.com/fr/learn/tutorials/ ... eter-input

Ils expliquent que l'orientation de ton téléphone joue sur les valeurs de l'accéléromètre. Selon si tu es en portrait ou paysage, alors le repère est changé. (adapté à l'orientation donc). Essaie de forcer une orientation particulière.
Pour le connaître: https://docs.unity3d.com/ScriptReferenc ... ation.html
Pour le forcer: https://docs.unity3d.com/ScriptReferenc ... ation.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

zipunk
Messages : 3
Inscription : 17 Sep 2017 22:33

Re: [DB-RS] Rotation Plane

Message par zipunk » 18 Sep 2017 11:52

Bonjour,

Boubouk50 Merci pour ta réponse, en effet j'ai suivi le tuto, j'ai changé les valeurs pour forcer l'orientation mais ça penche soit à gauche soit à droite mais ça ne reste jamais droit quand le téléphone est a plat en paysage ou en portrait en fait j'ai un peu tout essayé...
j'ai l'impression qu'il y a un mauvais calibrage. Le souci c'est que j'ai essayé aussi sur mon ipad pensant qu'il y aurait un problème avec mon iphone.

Je ne comprend pas pourquoi dès le départ ça penche si soudainement et je t'avoue que je bloque un peu et que je désespère...

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6222
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-RS] Rotation Plane

Message par boubouk50 » 18 Sep 2017 12:56

Tel quel, ce n'est pas forcément anormal.
Ce qu'il se passe c’est que tu tournes en fonction de la valeur d'accéléromètre par rapport à la position d'origine. Si tu n'es pas sur cette position, alors ton plan tournera en continu. Le téléphone à plat n'est pas la position d'origine me semble-t-il, je crois que c'est quand il est droit.
Aussi, si tu veux que ton plan se cale sur l'orientation de ton téléphone, alors cette solution n'est pas viable. Il te faudrait alors calculer l'angle entre la position d'origine et la position actuelle (déterminée par les valeurs de l'accéléromètre, probablement en radian)
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

zipunk
Messages : 3
Inscription : 17 Sep 2017 22:33

Re: [DB-RS] Rotation Plane

Message par zipunk » 18 Sep 2017 20:19

Je me suis orienté (peut être à tort) vers le gyroscope: j'ai donc éditer d'après un tuto ce script mais le soucis c'est que mon plateau se penche directement, j'arrive à le rediriger avec mon iphone mais cela part dans tous les sens:

Code : Tout sélectionner

using System.Collections;

using System.Collections.Generic;

using UnityEngine;



public class Rotation : MonoBehaviour {



	private bool gyroEnabled;

	private Gyroscope gyro;



	private GameObject Ground;

	private Quaternion rot;



	
	void Start () {



		gyroEnabled = EnabledGyro();

	
}

	

       private bool EnabledGyro()
	
{
		if (SystemInfo.supportsGyroscope) {
	

		gyro = Input.gyro;
		
	        gyro.enabled = true;

	
	
	        transform.rotation = Quaternion.Euler (90f, 90f, 0f);

                rot = new Quaternion (0, 0, 1, 0);
		
	        return true;


		}

		

                return false;
	

}


	

        void Update () {

		

transform.localRotation = gyro.attitude * rot;



	}



}
 ! Message de : Max
Utilisez les balises code SVP . Deuxième rappel !
Merci de lire la Netiquette.

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »