Networking problème.

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
kiwiii007
Messages : 8
Inscription : 21 Fév 2019 17:17

Networking problème.

Message par kiwiii007 » 22 Avr 2020 20:17

Bonjour,
Je suis en traine de créer un jeux et j'ai rencontré une difficulté que je n'arrive pas à résoudre et à trouver sur internet.

Mon soucis est que dans la fonction Update, j'ai besoin que les autres n'aient pas de contrôle sur le joueur local, en mettant " if (!isLocalPlayer) return; " c'est résolu. Mais J'ai besoin d'acceder à la ligne suivante.

Si je met !isLocalPlayer, la ligne suivant ne sera pas lu, les caméras ne bougeront pas. Mais si je l'enlève, les caméras seront tous plaqués sur le même joueur.

Je vous remercie de m'aider :amen:




Code : Tout sélectionner

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

public class SmartCamera : NetworkBehaviour
{ 
    private float timeOffset = 0.1f;
    private Vector3 posOffset = new Vector3(0, 1.5f, -4);

    private Vector3 velocity;

    public GameObject player;

    private void Start()
    {
        player = GameObject.Find("GameManager").GetComponent<Renamer>().player;
    }
    
    
    
    
    private void Update()
    {
    if (!isLocalPlayer) return;
    transform.position = Vector3.SmoothDamp(transform.position, player.transform.position + posOffset, ref velocity, timeOffset);
    }
    
    
    

}
Fait de ta vie un rêve, et de tes rêves une réalité. Antoine de Saint-Exupéry,

skyfyx
Messages : 15
Inscription : 14 Avr 2020 01:53

Re: Networking problème.

Message par skyfyx » 22 Avr 2020 20:39

Salut normal après un return la suite n'est pas lu. Essaye avec une condition simple If et Else ;)

kiwiii007
Messages : 8
Inscription : 21 Fév 2019 17:17

Re: Networking problème.

Message par kiwiii007 » 22 Avr 2020 20:44

Si je remplace avec un if - else , la ligne ne sera pas lu car ce n'est pas le joueur local qui la lis mais une caméra appart du Gameobject.
ça fera le même effet.

Code : Tout sélectionner

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

public class SmartCamera : NetworkBehaviour
{ 
    private float timeOffset = 0.1f;
    private Vector3 posOffset = new Vector3(0, 1.5f, -4);

    private Vector3 velocity;

    public GameObject player;

    private void Start()
    {
        player = GameObject.Find("GameManager").GetComponent<Renamer>().player;
    }
    
    
    
    private void Update()
    {
        if (!isLocalPlayer)
        {
        }
        else
        {
            transform.position = Vector3.SmoothDamp(transform.position, player.transform.position + posOffset, ref velocity, timeOffset);
        }
    }
    
    
}
Fait de ta vie un rêve, et de tes rêves une réalité. Antoine de Saint-Exupéry,

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6226
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Networking problème.

Message par boubouk50 » 22 Avr 2020 21:07

Ton explication ne fais pas sens. Tu ne peux pas en même temps ne pas vouloir l'exécuter et vouloir l'exécuter.

Le pb vient peut être de la ligne suivante, le player ne doit pas être bon.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

kiwiii007
Messages : 8
Inscription : 21 Fév 2019 17:17

Re: Networking problème.

Message par kiwiii007 » 22 Avr 2020 21:39

Pourtant, c'est bien le bon player car quand j'enlève la ligne !isLocalPlayer, tout marche parfaitement. Si je la laisse enlevée, tout les objets et ce n'est pas le résultat attendue.
Fait de ta vie un rêve, et de tes rêves une réalité. Antoine de Saint-Exupéry,

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6226
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Networking problème.

Message par boubouk50 » 23 Avr 2020 08:59

kiwiii007 a écrit :
22 Avr 2020 21:39
Pourtant, c'est bien le bon player car quand j'enlève la ligne !isLocalPlayer, tout marche parfaitement.
C'est le genre d'information qui justement ne fait pas sens. Ca ne marche pas parfaitement, puisque tu as un problème.
Je dois ne pas avoir compris le problème pour le coup, pas assez d'information ou d'explication.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Scripting »