Page 1 sur 1

Problème de gestion manettes

Publié : 25 Avr 2019 10:48
par adrenachrom
Hello les gens,
Je suis actuellement sur un exercice sur Unity dans lequel j'aimerais faire bouger deux personnages avec deux manettes différentes.
Jusque-là rien de bien complexe en soi sauf que je me heurte à un problème que je suis complètement incapable de comprendre: les assignations de joystick que je rentre dans les input settings ne correspondent pas systématiquement à la bonne manette; et même, elles semblent changer à chaque redémarrage système.
Par-exemple, mon player 1 va faire appel au joystick 1 et le player 2 au joystick 2 et tout va bien fonctionner, sauf qu'une fois que j'aurai redémarré mon système ça ne fonctionnera plus. Les manettes indiquent bien player 1 et 2 ( manettes Xbox ) mais ne sont plus appelées par les même input joystick. Il faudra que je règle les input sur d'autres joystick ( 3 ou 4 ou 5, etc ).
Du coup je ne comprends pas; est-ce que le problème viendrait de l'initialisation de mes manettes?...
Je vous mets ici quelques screen et le script au besoin :

Un aperçu du jeu avec les deux players en bas:
Image

Mes réglages joysticks horizontaux pour le player 1 et 2
Image

Les réglages variables pour le player 1:
Image

Et mon code:

Code : Tout sélectionner

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

public class PlayerController : MonoBehaviour
{
    // SERIALIZED variables
    [SerializeField]
    private string ControlH = "HorizontalP1", ControlV = "VerticalP1";
    [SerializeField]
    private float speed = 4f, curSpeed, vol = 0.5f;
    [SerializeField]
    private AudioClip steps, stepFast;
    

    // PRIVATE variables
    private AudioSource aSource;
    private bool drugActivated = false;
    private double drugTime, speedy, amp, fixTime, timeLoop, sinus = 0;

    // PUBLIC variables
    public GameObject maCamera;
    

    private void Awake()
    {
        aSource = GetComponent<AudioSource>();
        aSource.loop = true;
        aSource.clip = steps;
        aSource.Play();
        aSource.volume = 0;
        maCamera = GameObject.Find("Main_Camera");

    }



        void FixedUpdate()
    {

        Vector3 fwd = transform.TransformDirection(Vector3.forward);



        // Running
        if (Input.GetKey(KeyCode.LeftControl))
        {

            curSpeed = speed * 2;
            aSource.clip = stepFast;
        }
        else
        {
            curSpeed = speed;
            aSource.clip = steps;
        }

        // Step sound
        if (Input.GetAxis(ControlV) != 0)
        {
            aSource.volume = Mathf.Abs(Input.GetAxis(ControlV)) * vol;
            Debug.Log(ControlV);
        }
        if (Input.GetAxis(ControlH) != 0 && Mathf.Abs(Input.GetAxis(ControlH)) != 1)
        {
            aSource.volume = Mathf.Abs(Input.GetAxis(ControlH)) * vol;
            Debug.Log(ControlH);
        }

        if (Input.GetAxis(ControlV) == 0 && Input.GetAxis(ControlV) == 0)
        {
            aSource.volume -= 0.06f;
        }


            if (!aSource.isPlaying)
        {
            aSource.Play();
        }

        // Moving and turning head
        transform.Translate(Vector3.back * curSpeed * Time.fixedDeltaTime * (Input.GetAxis(ControlH)));
        transform.Translate(Vector3.left * curSpeed * Time.fixedDeltaTime * (Input.GetAxis(ControlV)));
    }
}
Merci d'avance pour vos réponses :)

Re: Problème de gestion manettes

Publié : 27 Avr 2019 15:41
par adrenachrom
Un petit up?

Je ré-explique mon problème rapidement:
J'ai un problème avec l'identification de mes manettes sur Unity; quand je redémarre Unity ou que je débranche mes manettes, Unity change leur identification. En gros, au début ma manette 1 sera liée au joystick1 puis après redémarrage elle sera liée au joystick 2 ou 3; malgré le fait qu'elle soit toujours identifiée par windows comme étant la manette 1.
Est-ce que d'autre que moi ont déjà eu à faire avec ce problème? Si oui, avez-vous une idée de comment gérer cette situation?
Merci d'avance :)

Re: Problème de gestion manettes

Publié : 28 Avr 2019 11:31
par Max
Bonjour,

Au delà de la doc, quelques liens qui pourraient éventuellement t'éclairer (moi perso, je suis plutôt genre éteint sur ce sujet):
https://answers.unity.com/questions/103 ... -each.html
https://answers.unity.com/questions/127 ... -from.html

Re: Problème de gestion manettes

Publié : 28 Avr 2019 12:45
par adrenachrom
Je pense que ça répond effectivement à mon souci; je vais jeter un oeil.
Merci pour les liens :)

Re: Problème de gestion manettes

Publié : 07 Mai 2019 17:22
par Alesk
Salut !

J'ai commencé à développer un gestionnaire de joysticks, qui permet de les configurer automatiquement et de préremplir les paramètres dans l'éditeur.
Je vais essayer de partager ça d'ici le mois de juillet (je suis en voyage, j'ai le code sous la main, mais pas forcément le temps de le préparer...)... si ça peut aider du monde à y voir plus clair là dedans ;)

Je ferai un post dédié pour ça.

Re: Problème de gestion manettes

Publié : 18 Nov 2020 16:16
par jmhoubre
Dernière visite d'Alesk le 19 juillet 2020. Visiblement, ce problème de manettes l'a déconnecté^^.
S'il lit toujours ce forum, a-t-il achevé son gestionnaire de manettes ?

Re: Problème de gestion manettes

Publié : 18 Nov 2020 16:35
par Alesk
Yo !

J'ai abandonné ce truc suite à la création du nouvel "input system" officiel :happy1:

https://unity.com/features/input-system