Problème de gestion manettes

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
adrenachrom
Messages : 18
Inscription : 10 Avr 2019 23:40

Problème de gestion manettes

Message par adrenachrom » 25 Avr 2019 10:48

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 :)

adrenachrom
Messages : 18
Inscription : 10 Avr 2019 23:40

Re: Problème de gestion manettes

Message par adrenachrom » 27 Avr 2019 15:41

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 :)

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Problème de gestion manettes

Message par Max » 28 Avr 2019 11:31

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
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

adrenachrom
Messages : 18
Inscription : 10 Avr 2019 23:40

Re: Problème de gestion manettes

Message par adrenachrom » 28 Avr 2019 12:45

Je pense que ça répond effectivement à mon souci; je vais jeter un oeil.
Merci pour les liens :)

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Problème de gestion manettes

Message par Alesk » 07 Mai 2019 17:22

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.

Avatar de l’utilisateur
jmhoubre
Messages : 856
Inscription : 05 Oct 2019 22:05

Re: Problème de gestion manettes

Message par jmhoubre » 18 Nov 2020 16:16

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 ?

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Problème de gestion manettes

Message par Alesk » 18 Nov 2020 16:35

Yo !

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

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

Répondre

Revenir vers « Unity le logiciel »