[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
Avatar de l’utilisateur
Max
Messages : 8765
Inscription : 30 Juil 2011 13:57
Contact :

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

Message par Max » 01 Mai 2020 09:26

Hello,
Krafter a écrit :
01 Mai 2020 00:17
Pour insérer l'image c'est ce que j'ai fais pourtant ^^"
pour insérer une image, entre les balises, il ne faut pas copier le lien de visualisation fournis par le site hébergeant l'image, mais le lien direct de l'image elle même ;)

(j'ai corrigé les messages)
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

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

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

Message par jmhoubre » 01 Mai 2020 10:47

Merci !

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

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

Message par jmhoubre » 01 Mai 2020 10:52

Tu multiplies bien la sortie de l'input par quelque chose d'assez grand ? Parce que ça affiche juste l'input là, soit + ou - 0.1. J'avoue être désarmé devant le comportement de ton ordinateur...

De plus, sur tes photos d'écran, on ne voit pas le cube. Il est passé où ?

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

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

Message par djulio74 » 01 Mai 2020 11:35

Pour ton soucis je pense que ça viens du framerate entre l'éditeur et le build.
D'autant plus que tu dis voir du changement si tu affiche ou non la boite de dialoge pour le build.
J'ai fait qualques essai, et selon moi :
- une molette n'est ni plus ni moins que deux bouton pour les deux sens de rotation. (je pense pas qu'il y ai beaucoup de souris avec une molette à capteur optique a quadrature)
- dans unity, le getAxis ou le Mous.Scrollweb n'ess ni plus ni moins le nombre de fois par frame que l'un des bouton est cliqué.
- en éditeur tu dois est en Vsync activé, donc des frame plus longue, donc plus de chance d'avoir plusieur appuie par frame

Il faudrait plutot mettre en place un systeme de timer entre deux scroll.
J'ai fait un essai rapide :

Code : Tout sélectionner

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

public class dededede : MonoBehaviour
{

    float scrollInput;
    float max = 0.0f;
    float min = 0.0f;
    float LastScroll = 0.0f;
    float ScrollTime = 0.0f;

    void Update()
    {

        ScrollTime += Time.deltaTime;
        if (Input.GetAxis("Mouse ScrollWheel") != 0 )
        {
            scrollInput = (1.0f / ScrollTime) * Mathf.Sign(Input.GetAxis("Mouse ScrollWheel")) * Time.deltaTime;
            ScrollTime = 0.0f;
            LastScroll = scrollInput;
            max = Mathf.Max(max, scrollInput);
            min = Mathf.Min(min, scrollInput);
        }
        else
        {
            scrollInput = 0.0f;
        }        
    }

    void OnGUI()
    {
        GUI.Label(new Rect(10, 10, 150, 20), scrollInput.ToString("f2") + " : Scrool Input");
        GUI.Label(new Rect(10, 20, 150, 20), LastScroll.ToString("f2") + " : Dernier Scroll");
        GUI.Label(new Rect(10, 30, 150, 20), max.ToString("f2")+ " : Scroll Max");
        GUI.Label(new Rect(10, 40, 150, 20), min.ToString("f2")+ " : Scroll Min");
    }
}
Cela renvoi bien, en éditeur ou build, une valeur entre -1.0 et 1.0 en fonction de la rapidité du scroll.
Attention a ce que la Vsync soitactivé dans la quality du projectSetting.
C'est pas exempt de défaut mais je pense ça peut donner un début de piste pour avancer.

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

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

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

Message par Krafter » 01 Mai 2020 13:10

Ah ok merci Max ;)

@jmhoubre j'avais oublié de remettre le cube. Je t'avoue que moi aussi, je suis aussi en lien avec un mec du support d'Unity à qui j'ai envoyé un rapport et il m'a dit qu'avec un projet vide et le script ça fonctionnait de son coté.. Donc c'est un truc de mon coté qui ne va pas, mais quoi aucune idée :'(

@djulio74 j'avais cru voir un changement mais en fait je me suis trompé, avec ou sans la boite de dialogue j'ai le soucis là ^^"
Pour ce qui est de ma souris j'ai une souris "gaming" assez basique (juste 2 boutons en plus sur le coté). Je viens d'aller voir la fiche technique il est indiqué "molette multidirectionnelle" j'ai l'impression je peux cliquer sur les cotés de la molette. Souris "Roccat ROC-11-810". Et j'imagine que j'ai le Vsync activé en build (fixé à "every V blank" dans les settings donc ça me semble activé?). J'ai qu'une souris chez moi, j'acheterai peut-être une autre pour test, mais ça me semblerait bizarre que ça vienne de la souris comme dans l'editor ça fonctionne.

Par contre ton script donne un début de réponse je pense (merci du temps que vous me consacrez d'ailleurs c'est vraiment gentil). En effet, avec ce script j'arrive à avoir une float qui varie en fonction de l'intensité de scrolling en build. Toutefois une différence et je pense que le soucis viens de là, c'est la valeur renvoyé par le "dernier scroll" que fait apparaitre ton script.

A savoir, si je scroll fort dans l'editeur, j'atteinds une haute valeur max et la valeur du dernier scroll est élevée :
Image

Maintenant dans le build, si je réalise le même gros scroll :
Image

Un deuxième scroll un peu moins fort dans le build :
Image

Dans le build le "Dernier scroll" atteint la valeur retenue en "Max" Mais redescend rapidement à la fin du scroll. Donc visiblement, en ralentissant la fréquence d'input avec un timer ça semble mieux marcher, mais la valeur redescend rapidement dans le build à la fin du scroll pour une raison qui m'échappe (contrairement à l'editor). Alors effectivement avec ta solution, en ajoutant un système de coroutine ou quoi pour palier à ça je devrais peut-être pouvoir m'en sortir... Mais bricoler un truc pour obtenir les mêmes résultats que ce qu'est censée faire une fonction de base, et sans comprendre le souci.... Bref je continue de chercher j'aimerai bien comprendre pourquoi moi j'ai ce souci et personne d'autre visiblement..et le fix... Merci de votre aide en tout cas.

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

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

Message par Krafter » 01 Mai 2020 17:31

J'ai continuer de faire des tests, je mets un lien du build que je fais : https://we.tl/t-XRpkqL7eAl

Je l'ai envoyé à un ami il à aucun problème.
Je lance le .exe de mon coté, grosse surprise aucun soucis non plus !

Je alt+F4, je relance le .exe : et le problème est de retour ! (je ne dépasse pas 0.1/-0.1 pour les valeurs min/max affichées au centre de l'écran). Depuis je l'ai relancer une dizaine de fois, en mode admin aussi pour test.. le problème est constamment présent.
A la 1ère fois que j'ai lancer le .exe je n'ai pas eu le souci par contre. Je deviens fou ^^"

EDIT : quand je télécharge le .exe cela ne marche pas, alors que pour plusieurs amis cela marche. Donc j'ai l'impression que ça ne viendrait pas de unity / du code ? De mon coté j'ai essayé au pad (en scrollant à 2 doigts), avec la souris débranchée, et même souci. Parfois, quand je change un truc, ça fonctionne bien 1 fois, puis quand je alt+F4 et relance le .exe ça ne marche plus jamais. Donc en plus ça n'à pas l'air très cohérent comme souci.. Je sais pas si ça vient du pc ptet..


EDIT 08/05 : après m'être procurer plusieurs souris : avec toutes les souris j'ai le problème, ainsi qu'avec le pad (avec / sans souris branchée au pc). Donc le soucis viendrais de mon pc. J'ai un bête ACER avec windows10, mais quelque chose fait que en build ça me zigouille ma sensi de molette... ça viendrait du pc j'ai pas encore trouvé l'origine du pb.

Répondre

Revenir vers « (C#) CSharp »