[RESOLU] 2 joysticks CrossPlatformInput pour un jeu Android

Toutes les questions sur le développement Mobile, y compris la partie script.
Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

[RESOLU] 2 joysticks CrossPlatformInput pour un jeu Android

Message par Paullux » 30 Mai 2018 14:11

Bonjour,

J'ai utilisé "CrossPlatformInput" des standards assets, dans un premier temps j'ai posé un premier joystick, il marche nickel.

Par contre dès que je veux essayé d'en mettre un deuxième, ça bloque, il est détecté par le mode test d'Unity, mais une fois le jeu compilé, il n'agit pas, il n'est présent que graphiquement.

ça fait deux jours que j'essaye de le faire marcher.

Premièrement j'ai logiquement changé les noms des joysticks, les noms des axes générés par les deux joysticks, j'ai aussi essayé de copier le script qui gèrent les joysticks.

Rien n'y fait le second joystick ne marche pas.

J'ai besoin d'aide.
Dernière édition par Paullux le 31 Mai 2018 20:54, édité 1 fois.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par DevAmat » 30 Mai 2018 14:20

C'est étrange qu'il ne fonctionne pas en build. As tu essayer de ne build que la scène ou tu test tes joysticks?

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par Paullux » 30 Mai 2018 15:53

Je ne peux pas, je n'aurais accès à Unity que ce soir.

Je suis parti du prefabs : MobileSingleStickControl

Est-ce que ça peut être la cause de problème ?

Sinon j'ai mis en api minimum, l'api 22 d'Android 5.1 (lollipop).
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

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

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par boubouk50 » 30 Mai 2018 17:03

Au niveau des Inputs, tout à été splitté? Dans l'InputManager aussi?
Comment sont gérés les contrôles? C'est par un picking ou par touch?
"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

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par Paullux » 31 Mai 2018 06:55

c'est-à-dire ?

J'ai juste pris le prefabs du standard asset et l'ai mis dans ma scène, et j'ai copié les boutons et le joystick.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par Paullux » 31 Mai 2018 07:01

Voici le script sur lequel je cherche à utiliser le second joystick :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityEngine.EventSystems;

public class RotateCamera : MonoBehaviour {

    float xAngle;
    float yAngle;
    float xAngleTemp;
    float yAngleTemp;

    void Start()
    {
        Input.gyro.enabled = true;
        xAngle = 0;
        yAngle = 0;
        transform.rotation = Quaternion.Euler(yAngle, xAngle, 0);
    }

    void Update()
    {

        if (!Input.gyro.enabled) Input.gyro.enabled = true;

        float x = CrossPlatformInputManager.GetAxis("VerticalTilt");
        float y = CrossPlatformInputManager.GetAxis("HorizontalTilt");

        xAngleTemp = xAngle;
        yAngleTemp = yAngle;
        xAngle = xAngleTemp + 4 * x * 180 / Screen.width + Input.gyro.rotationRateUnbiased.x;
        yAngle = yAngleTemp + 4 * y * 90 / Screen.height - Input.gyro.rotationRateUnbiased.y;
        transform.rotation = Quaternion.Euler(-xAngle, yAngle, 0.0f);

        float z = transform.eulerAngles.z;
        transform.Rotate(0, 0, -z);


    }
}
Il y a t'il une erreur ?
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

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

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par boubouk50 » 31 Mai 2018 09:17

https://docs.unity3d.com/Manual/class-InputManager.html
As-tu bien deux configurations distinctes pour les Inputs?
Il faut que le second joystick apparaisse dans l'InputManager pour être récupéré.
Ici tu as VerticalTilt et HorizontalTilt. Ce sont des inputs récupérés depuis l'InputManager. Soit tu doubles ces deux inputs pour qu'il réagisse aussi bien à un joystick qu'a l'autre (donc même nom pour chacun), soit tu en crées un nouveau qui ne réagit qu'au second joystick (changement de nom).
"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

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par Paullux » 31 Mai 2018 10:15

Par contre, j'ai remarqué dans l'input manager, si je remplace :
- Le nom des axes du premier joystick de la liste "Horizontal" par "HorizontalMove" et "Vertical" par "VerticalMove"
- Et que j'utilise un autre joystick avec "HorizontalTilt" et "VerticalTilt".

Les deux joysticks sont figés et ne bougent plus en mode démo.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par Paullux » 31 Mai 2018 10:28

Et dans EventTriger, il n'y a que deux axes possibles "Horizontal" et "Vertical", toutes modifications figent les deux joysticks
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

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

Re: 2 joysticks CrossPlatformInput pour un jeu Android

Message par boubouk50 » 31 Mai 2018 11:11

J'essaie de trouver des infos sur le net, mais bon pas évident.
Pour info, ce que tu cherches se nomme le dual joystick, ou dual touch, enfin dual est important. Peut-être trouveras-tu quelque chose avant.
"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

Répondre

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