[RESOLU] [DB-RS] Freeze la position du joueur lors d'une fonction

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
NaWakG
Messages : 9
Inscription : 25 Nov 2017 18:28

Re: [DB-RS] Freeze la position du joueur lors d'une fonction

Message par NaWakG » 26 Nov 2017 15:32

D'accord je pensait à cela mais j'avais quelques doutes que tu as effacés, je teste cela tout de suite
Sinon un Grand Merci a toi .

NaWakG
Messages : 9
Inscription : 25 Nov 2017 18:28

Re: [DB-RS] Freeze la position du joueur lors d'une fonction

Message par NaWakG » 26 Nov 2017 15:53

Un autre problème intervient. j'ai bien rajouter le code qui instantie player au code de mon joueur mais pourtant il me dit dans la console qu'il n'est pas instancier j'ai testé avec un debug log comme avant et il est null.

Le code :

Code : Tout sélectionner

[SerializeField] PlayerController player;


    private void Start()
    {
        animstone = GetComponent<Animator>();


        player = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
        Debug.Log("player: " + player);
La console :
inspector.PNG
inspector.PNG (14.09 Kio) Consulté 2399 fois
Encore désolé

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

Re: [DB-RS] Freeze la position du joueur lors d'une fonction

Message par Max » 26 Nov 2017 15:57

Si player est null, la logique pousse à se demander deux choses:
- dans ta scène, ton joueur possède-t-il le tag 'Player' ?
- et si oui, après as-t-il d'attaché un composant PlayerController (script) ?
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

NaWakG
Messages : 9
Inscription : 25 Nov 2017 18:28

Re: [DB-RS] Freeze la position du joueur lors d'une fonction

Message par NaWakG » 26 Nov 2017 16:12

Pour que chaque joueur est son personnage il faut créé un networkManager et dans ce dernier on instantie une prefab de player. Des que l'on lance la partie soit en local ou en resaux il créé un clone pour le joueur ( derriere son ecran) qu'il va pouvoir déplacer.

J'ai fait quelques tests pour voir quelques choses
j'ai assignié à player (dans l'inspector ) ma prefab de personnage qui a le code PlayerController et cela donne le probleme

Mais lorsque que je lance et que j'assigne à player mon clone sur la scene le problème se résou.
Donc il faudrait assigner non pas ma prefab mais mon clone ?
or je ne peux accéder à mon clone que lorsque je lance une partit et les modifs s'éffacent une la partit fini.

Il faudrait pouvoir assigner mon clone dpuis le script ?

NaWakG
Messages : 9
Inscription : 25 Nov 2017 18:28

Re: [DB-RS] Freeze la position du joueur lors d'une fonction

Message par NaWakG » 26 Nov 2017 19:23

C'est bon j'ai régler mon probleme en fait le script stone assignait avant que l'objet ne soit sur la scene
Merci et j'espere ne pas t'avoir fait perdre trop de temps.
Sur ce bonne coninuation

Je file les codes pour ceux qui veulent :

Code : Tout sélectionner

public class Stone : NetworkBehaviour {

    enum StateAnim
    {
        break1,
    }

    private StateAnim stanim;
    private Animator animstone;
    public float minspeed;
    public int tier;
    public static int durability;
    public bool readytomine;
    public PlayerController player;


    private void Start()
    {
        animstone = GetComponent<Animator>();

        StartCoroutine(StartWait());
    }

    IEnumerator StartWait()
    {
        yield return new WaitForSeconds(minspeed);
        player = GameObject.Find("Player 1 1(Clone)").GetComponent<PlayerController>();
    }

Code : Tout sélectionner

public class PlayerController : NetworkBehaviour
{
    private NetworkAnimator anim;
    private StateAnim state;
    public  Rigidbody2D rigidplayer;
    private float minspeed;
    public float speed;
    private Vector3 movement;
    public override void OnStartLocalPlayer()
    {
        Camera.main.GetComponent<Followcam>().setTarget(gameObject.transform);

        rigidplayer = GameObject.FindGameObjectWithTag("Player").GetComponent<Rigidbody2D>();
        Debug.Log("rigidplayer: " + rigidplayer);

         
    }

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

Re: [DB-RS] Freeze la position du joueur lors d'une fonction

Message par Max » 26 Nov 2017 19:26

L'essentiel c'est que tu ai pu trouver la solution te permettant d'avancer.
Pour le reste, c'est le but du forum.
Si c'est ok pour toi, passe ton sujet en résolu (édition du titre du premier message)
bonne soirée.
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

Répondre

Revenir vers « (C#) CSharp »