[DB-AL] Molette souris inutilisable en build

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Krafter
Messages : 65
Inscription : 11 Fév 2017 17:03

[DB-AL] Molette souris inutilisable en build

Message par Krafter » 29 Avr 2020 23:12

Bonjour à tous,

J'avais posté ce soucis sur le Discord, sans succès malheureusement. C'est un souci que j'ai depuis 2 semaines facile, je suis un peu désespéré de trouver une quelconque solution actuellement, mais je tente ma chance sur le forum (j'ai essayé Unity Answer, le forum Unity, de nombreux discords... sans jamais trouver d'aide pour ce soucis, qui pourtant ne me parait pas si 'original' que ça :( Bref).

Donc mon problème : J'utilise dans mon jeu la molette de la souris comme input, avec cette commande dans l'update qui retourne un float :

Code : Tout sélectionner

Input.GetAxis("Mouse ScrollWheel")
Pour mon jeu il est primordial que la float retournée dépende de l'intensité avec laquelle on 'scroll' sur la molette. Et effectivement dans l'éditeur c'est bien le cas, plus je scroll 'fort' plus la valeur de la float est élevée.

Par contre quand je build, là gros problème. La valeur retournée est fixe, peu importe si l'on scroll fort ou pas. Seul le signe change suivant si l'on scroll vers le haut ou le bas, mais la valeur est fixe (elle se fixe au minimum de la sensibilité fixée dans les projects settings et ne va pas plus haut). Et ça pète l'intégralité de mon gameplay :pleur4: Et j'ai beau tout essayer je n'arrive pas à fix ça.....

Parmi les choses que j'ai essayé : utiliser GetAxisRaw : même différence editor/build. Utiliser la commande genre mouseScrollDelta : toujours pareil. Changer la sensi de la molette dans les project settings : encore pareil, juste la valeur en build change comme elle est égale à cette valeur pour être détectée, mais une fois détectée elle n'augmente plus même si l'on scroll plus fort.... J'ai refais des projets vides pour essayer, en affichant la valeur de l'input et toujours et encore pareil.

Bref je ne m'explique pas ce souci qui me rend fous. Si certains auraient l'aimabilité de faire le test savoir si ils ont le même résultat chez eux (juste afficher la valeur de cet input à l'écran et comparer editor/build, en enregistrant le max atteint car ça varie vite pour être vu sinon), je n'ai qu'un pc et qu'une souris (pourtant basique) mais p'tet que l'un des deux est le soucis... Parce que j'ai vu 0 fois ce problème sur le net (ou personne n'utilise la molette mais j'ai du mal à y croire).... Voilà si quelqu'un à une solution je suis désespéré d'en trouver une

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [DB-AL] Molette souris inutilisable en build

Message par djulio74 » 30 Avr 2020 08:31

Au lieux de passer par un Input axis, as-tu essayé avec un " Input.mouseScrollDelta"
Je n'ai pas testé mais sait-on jamais

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Krafter
Messages : 65
Inscription : 11 Fév 2017 17:03

Re: [DB-AL] Molette souris inutilisable en build

Message par Krafter » 30 Avr 2020 11:21

Comme indiqué dans mon message : oui

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [DB-AL] Molette souris inutilisable en build

Message par djulio74 » 30 Avr 2020 12:18

Ah mince désolé, j'ai lu trop vite j'ai cru tu parlais deux fois du axis delta.
Alors la je vois pas, je ferai un test dans l'aprèm sûrement

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Krafter
Messages : 65
Inscription : 11 Fév 2017 17:03

Re: [DB-AL] Molette souris inutilisable en build

Message par Krafter » 30 Avr 2020 12:26

Pas de soucis. Si tu peux faire un test je t'en serais reconnaissant, j'ai beau chercher partout une solution je ne vois pas, je me demande si le problème vient pas de ma souris / mon pc mais j'en ai qu'un de chaque là :/ Parce que même avec des empty projects ou l'ensemble des settings (inputs, build...) sont par défauts j'ai le soucis.

Pour test, dans un projet vide ou existant j'ai placer un empty GO sur lequel j'ai placer le script ci-dessous. Dans l'editor le max atteint qui est affiché dépend de l'intensité de mon scrolling, mais pas en build :/

Code : Tout sélectionner

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

public class dededede : MonoBehaviour
{

    float scrollInput;
    float max = 0;

    // Update is called once per frame
    void Update()
    {
        scrollInput = Input.GetAxis("Mouse ScrollWheel");
        if(Mathf.Abs(scrollInput) >= Mathf.Abs(max))
        {
            max = scrollInput;
        }
    }

    void OnGUI()
    {
        GUI.Label(new Rect(10, 10, 100, 20), scrollInput.ToString());
        GUI.Label(new Rect(10, 20, 100, 20), max.ToString());

    }
}

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

Re: [DB-AL] Molette souris inutilisable en build

Message par jmhoubre » 30 Avr 2020 18:12

Bonjour,
je pense que je n'ai pas compris la question, car j'ai pu utiliser la molette. Désolé si cette réponse ne t'aide pas, mais j'aurais au moins codé une utilisation de cette molette.
J'ai mis un bête cube avec le script ci-dessous. Vu le récit de tes malheurs, j'ai mis quelques variables dans un Canvas (je n'aime pas trop la console). Le seul truc en plus que j'ai fait, c'est multipler la sortie de l'input par une constante (FACTOR), puisque la doc indique une sortie entre -0.1 et 0.1.
Et le cube suit bien la molette.

Code : Tout sélectionner

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

public class MoletteSourisTest : MonoBehaviour {

	const float FACTOR = 20f;

	[SerializeField] private Text moletteOutputText, miniText, maxiText;

	private float moletteOutput, mini = 1000000f, maxi = 0f;
	
	void Update () {
		Vector3 vector;

		// Récupère le delta de mouvement de la molette : un nombre entre -0.1 et 0.1.
		moletteOutput = Input.GetAxis ("Mouse ScrollWheel");
		if (moletteOutput < mini) {
			mini = moletteOutput;
			miniText.text = "Mini : " + mini;
		}
		if (moletteOutput> maxi) {
			maxi = moletteOutput;
			maxiText.text = "Maxi : " + maxi;
		}
		moletteOutputText.text = "Sortie molette souris : " + moletteOutput;

		// Usage : on va bouger le cube vers le haut ou le bas.
		vector = new Vector3 (0f, moletteOutput * FACTOR, 0f);
		transform.position += vector;
	}
}

Krafter
Messages : 65
Inscription : 11 Fév 2017 17:03

Re: [DB-AL] Molette souris inutilisable en build

Message par Krafter » 30 Avr 2020 19:31

Merci de ton test, je n'ai pas encore essayé avec ton code mais le résultat devrait être le même je pense. Je fais le test ce soir.

Par contre je pense avoir (peut-être) déterminer la cause du problème.
Dans les projects settings -> player je choisissais "enabled" pour la case "Display Resolution Dialog" dans Standalone machin truc là.
Ce qui ouvre la petite fenêtre pour choisir la qualité au départ.

Quand je la choisi en "disabled", j'ai l'impression que la molette marche correctement... ^^"
Alors plutôt une bonne nouvelle mais si c'est vraiment ça.... wtf ^^

Krafter
Messages : 65
Inscription : 11 Fév 2017 17:03

Re: [DB-AL] Molette souris inutilisable en build

Message par Krafter » 30 Avr 2020 22:12

Alors pardon non je sais pas ce que je foutais (je bossais en même temps) mais visiblement j'ai refais le test, rien à voir avec les paramètres dans project settings... j'ai toujours le problème.

@jmhoubre j'ai pu faire le test avec ton script :

Dans l'editor :

Image

Et dans le build :

Image


Voilà... fait dans un projet vide avec tous les paramètres par défaut.. J'ai l'impression que je suis le seul qui à ce problème, alors que je voulais faire un projet ou la molette jouait un rôle important.... J'ai envie de me mettre une balle

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

Re: [DB-AL] Molette souris inutilisable en build

Message par jmhoubre » 30 Avr 2020 23:54

Ce serait utile de poster la partie du code :
- avec la gestion de l'entrée
- avec l'utilisation de du float issu de la molette.

Si le code n'est pas trop gros, poste tout.

Edit : pour insérer une image, je n'y arrive plus :) J'ai inséré un lien.

Image

Krafter
Messages : 65
Inscription : 11 Fév 2017 17:03

Re: [DB-AL] Molette souris inutilisable en build

Message par Krafter » 01 Mai 2020 00:17

Pour insérer l'image c'est ce que j'ai fais pourtant ^^"

Et quand à copier le code, quand je test avec un projet vide dont le seul code de tout le projet est celui que tu m'a filé. Ou celui que j'ai copié plus haut. J'ai le soucis :/

Répondre

Revenir vers « (C#) CSharp »