IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

Problème affichage gameobject sur server


Sujet :

Unity

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Problème affichage gameobject sur server
    Bonjour !

    Je fais appel à vous car j'ai un gros soucis.
    Voilà, donc lorsque je me connecte à l'aide de la fonction Network.Connect(ip,port) je lance mon script qui se charge d’instancier un gameObject (joueur) sur mon serveur hôte (le serveur qui héberge ma partie). Le problème est ici, lorsque mon gameobject est instancié , l'objet se créer bien sur le client (local) mais ne se créer qu'au bout de minimum 30 secondes sur le serveur et encore, je dis 30 secondes, mais parfois il ne se créer même pas du tout car je perds patience et je ferme le server.

    Je voudrais donc savoir si quelqu'un a une idée d'où cela peut-il provenir ? Ou si quelqu'un a déjà eu ce problème avant moi.

    Merci d'avance,
    Bonne soirée !

  2. #2
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    Salut,

    Pourrais tu donner plus de détail. Comment fais tu pour spawner le GameObject et est-ce que tu utilises unity 5.1.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Pas de soucis, j'utilise la fonction Network.Instantiate(Mon gameobject a instancier, sa position, sa rotation) pour faire spawner sur le client et sur le serveur. Pour développer le client je suis en 5.0.1f1 et pour le développement serveur je suis en 5.1.1f1

  4. #4
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    Salut !

    Alors je pense que ce n'est vraiment pas une bonne pratique que de mixer deux versions de Unity !
    Depuis la version 5.1 l'ancienne API est déprécié. Tu vas devoir choisir et je dirais que c'est mieux de passer à la nouvelle version pour le réseau.
    J'imagine que c'est un nouveau projet tu pourrais donc aisément passer à la nouvelle version.

    tu trouveras plus d'information ici: http://docs.unity3d.com/Manual/UNetSpawning.html

    Pour ce qui est du Network.Instantiate il n'y a aucun problème particulier surtout si ton serveur et ton client sont sur la même machine.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Le problème étant qu'ils ne sont pas sur la même machine, serait-ce la cause ? C'est bizarre car niveau connexion tout se passe parfaitement, le server détecte bien une connexion mais prends beaucoup trop de temps pour instancier le gO

  6. #6
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    Essaye en local ça te donnera une idée déjà.

    Pourquoi est ce que tu mixes des versions de Unity ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Je suis en train de faire la mise à jour, je vais voir ce que cela donne. Pour te répondre c'est simplement car ma connexion est vraiment lente donc par défaut je skip les maj... Si ça ne fonctionne pas avec la mise à jour j'essaierai en local et je te redis ça.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    ça fonctionne donc en local mais pas depuis mon VPS, que faire ? Je remarque que le spawn fonctionne désormais mais il y a un trop gros temps de latence entre le spawn sur le client et l'apparition du gameObject sur le server.

  9. #9
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    Si ta bande passante est trop mauvaise tu n'y pourras pas grand chose...
    30 secondes de latence c'est énorme tu dois sans doute avoir des pertes de paquet.

    Tu devrais travailler sur ton projet uniquement en local ou sinon régler tes problèmes de connexion y a pas de solution miracle ^^

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    J'ai terminé la partie local dans le sens où tout fonctionne en local, mais mon projet consiste en un jeu vidéo et je n'ai d'autres choix que de mettre l'application serveur sur un vps que j'ai acheté chez un hébergeur spécialisé, sachant que la bande passante est très très bonne ^^

  11. #11
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    Je comprend parfaitement, je travail moi même sur un projet en réseau avec unity.
    Je développe en local et test avec des amis dans différent pays sans avoir de problème de spawn.

    Tu dis que tu as une connexion lente chez toi. C'est quoi ton ping entre le serveur et ton pc ?

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Mon ping est de 62ms en moyenne.

  13. #13
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    On peut donc écarter le problème de lenteur de la connexion.

    Est ce que ton serveur est suffisamment puissant pour héberger ton jeu ?
    Est ce que tu spams le réseau avec par exemple une loop sur Network.Instanciate ?

    Pourrais tu donner un morceau de code pour se donner une idée plus précise de comment tu fais le spawn du GameObject.

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Oui le voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    function Awake(){
    	Network.minimumAllocatableViewIDs = 500000;
    }
     
    function OnGUI () {
    	if(spawne == false && Network.peerType != NetworkPeerType.Disconnected){
    	nbjoueur = GameObject.FindGameObjectsWithTag("Player").Length;
    	print(nbjoueur);
     
    						if(nbjoueur ==0){
    			Network.Instantiate(Joueur, Vector3(spawn1.transform.position.x,spawn1.transform.position.y,spawn1.transform.position.z
    			), spawn1.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==1){
    			Network.Instantiate(Joueur, Vector3(spawn2.transform.position.x,spawn2.transform.position.y,spawn2.transform.position.z
    			), spawn2.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==2){
    			Network.Instantiate(Joueur, Vector3(spawn3.transform.position.x,spawn3.transform.position.y,spawn3.transform.position.z
    			), spawn3.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==3){
    			Network.Instantiate(Joueur, Vector3(spawn4.transform.position.x,spawn4.transform.position.y,spawn4.transform.position.z
    			), spawn4.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==4){
    			Network.Instantiate(Joueur, Vector3(spawn5.transform.position.x,spawn5.transform.position.y,spawn5.transform.position.z
    			), spawn5.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==5){
    			Network.Instantiate(Joueur, Vector3(spawn6.transform.position.x,spawn6.transform.position.y,spawn6.transform.position.z
    			), spawn6.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==6){
    			Network.Instantiate(Joueur, Vector3(spawn7.transform.position.x,spawn7.transform.position.y,spawn7.transform.position.z
    			), spawn7.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==7){
    			Network.Instantiate(Joueur, Vector3(spawn8.transform.position.x,spawn8.transform.position.y,spawn8.transform.position.z
    			), spawn8.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==8){
    			Network.Instantiate(Joueur, Vector3(spawn9.transform.position.x,spawn9.transform.position.y,spawn9.transform.position.z
    			), spawn9.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==9){
    			Network.Instantiate(Joueur, Vector3(spawn10.transform.position.x,spawn10.transform.position.y,spawn10.transform.position.z
    			), spawn10.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==10){
    			Network.Instantiate(Joueur, Vector3(spawn11.transform.position.x,spawn11.transform.position.y,spawn11.transform.position.z
    			), spawn11.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==11){
    			Network.Instantiate(Joueur, Vector3(spawn12.transform.position.x,spawn12.transform.position.y,spawn12.transform.position.z
    			), spawn12.transform.rotation, 0);
    			spawne = true;
    			}
    						if(nbjoueur ==12){
     
    			}
    		}
    	}
    Si tu as des questions concernant certaines parties je peux te les commenter

  15. #15
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    Si je comprend bien tu spawns le joueur sur un spawn point selon le nombre de joueur présent dans la scène ?

    Dans ta fonction OnGUI je ne vois aucun rapport avec l'affichage de bouton. ça pourrait donc être mis dans la fonction d'update ?

    tu devrais remplacer ce bout de code Network.peerType != NetworkPeerType.Disconnected par Network.peerType == NetworkPeerType.Client pour ne pas tenter de spawner un objet pendant que tu es entrain de te connecter.

    Sinon a par ça je ne vois rien de spécial. Tu pourrais peut être essayé simplement ça pour un test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(spawne == false && Network.peerType == NetworkPeerType.Client)
    {
        if(GUILayout.Button("Spawn"))
        {
            Network.Instantiate(Joueur, spawn1.transform.position, spawn1.transform.rotation, 0);
            spawne = true;
        }
    }

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Oui c'est exactement cela. En essayant morceau de code puis en passant ma void en update cela ne fonctionne toujours pas...

  17. #17
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    C'est quoi la config du serveur ? Je vois plus qu'un problème de perf a ce niveau là.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    La config du serveur est :

    RAM: 1Go
    Espace Disque: 50 Go
    Processeur: 2 vCore 3.20GHz
    Bande passante: 100 Mbps*

    J'ai également essayé sur un serveur beaucoup plus puissant dernièrement car j'en étais également venu à la conclusion du manque de perf du serv et cela donnait la même chose.

    Petite précision, j'utilise Windows SERVER 2008 R2 Standard

  19. #19
    Membre actif
    Profil pro
    Programmeur Audio
    Inscrit en
    Décembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur Audio
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 127
    Points : 221
    Points
    221
    Par défaut
    La config semble bonne par contre l'OS n'est pas officiellement supporté.
    Je suis tombé sur ce thread: http://forum.unity3d.com/threads/hig...008-r2.208139/

    Tu peux essayer leur solution.

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    ça ne peut pas être l'origine du problème car j'ai créé deux projets bien distinct (EDIT: j'ai essayé et en effet ça ne corrige rien), l'un s'occupe d'héberger la partie (server) et l'autre c'est tout simplement le jeu et le client. Sur le serveur il n'est aucunement question de voir quoi que se soit, il n'y a pas de GUI en fait. J'utilise MasterServer d'autant plus c'est pourquoi la connexion se fait parfaitement, j'ai mis un compteur de connexion sur le serveur en console pour voir à chaque fois qu'il détecte une connexion et c'est quasi instantané, le soucis vient bel et bien de la création du gO sur le serveur qui est censé entraîné l'affichage du joueur aux view de tous les clients.

Discussions similaires

  1. Problème de déploiement sur server 2003
    Par Jb_One73 dans le forum WebDev
    Réponses: 0
    Dernier message: 23/04/2009, 19h14
  2. Problème affichage image sur N95
    Par dams95190 dans le forum Développement Mobile en Java
    Réponses: 6
    Dernier message: 10/09/2008, 15h38
  3. SQL Server : problème de requête sur server lié oracle
    Par stever50 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/03/2008, 12h06
  4. problème affichage souris sur media center
    Par rotor25 dans le forum Windows Vista
    Réponses: 3
    Dernier message: 08/10/2007, 12h24
  5. [XHTML] Problème affichage différent sur Internet Explorer et FireFox
    Par espaladito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/09/2006, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo