Page 1 sur 1

[RESOLU][Command] n'est pas prise en charge

Publié : 30 Oct 2020 18:32
par ced_le_dingue
Salut les gars,

Je suis en train de me familiariser avec les jeux multi (je suis un tuto) mais j'ai un soucis dans mon script.

Juste avant une fonction, j'ai utilisé [Command] afin d'appeler une fonction par le client et la lire par le serveur. Mais lorsque je l'utilise, cela m'affiche cette erreur:

Erreur CS8652: La fonctionnalité 'attributs de fonction locale' est actuellement en préversion et *n'est pas prise en charge*. Pour utiliser les fonctionnalités en préversion, utilisez la version de langage 'preview'

Où est ce que j'ai merdé? :pleur4:

Merci à vous :ange:
Haut

Re: [Command] n'est pas prise en charge

Publié : 30 Oct 2020 18:42
par Max
Bonsoir,

le script pourrait aider je pense.

Re: [Command] n'est pas prise en charge

Publié : 30 Oct 2020 19:17
par ced_le_dingue
Salut Max, au temps pour moi:

Code : Tout sélectionner

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

public class PlayerController : NetworkBehaviour
{
    private float v_horziontale = 150f;
    private float v_verticale = 3f;
    private float vitesse_bullet = 6f;

    public GameObject BulletPrefab;
    public Transform BulletSpawn;

    void Update()
    {

        if (!isLocalPlayer)
        {
            return;
        }

        var x = Input.GetAxis("Horizontal") * Time.deltaTime * v_horziontale;
        var z = Input.GetAxis("Vertical") * Time.deltaTime * v_verticale;

        transform.Rotate(0,x,0);
        transform.Translate(0,0,z);


        if (Input.GetKeyDown(KeyCode.Space))
        {
            CmdFire();
        }

        [Command]
        void CmdFire()
        {
            //Création de la balle
            var bullet = GameObject.Instantiate(
                BulletPrefab,
                BulletSpawn.position,
                BulletSpawn.rotation);

            //Détermination de la vitesse de la balle
            bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * vitesse_bullet;

            //Destruction de la balle passé 2s
            Destroy(bullet, 2f);

        }

    }

    public override void OnStartLocalPlayer()
    {
        base.OnStartLocalPlayer();
        GetComponent<MeshRenderer>().material.color = Color.blue;
    }
}


Re: [Command] n'est pas prise en charge

Publié : 30 Oct 2020 19:32
par Max
tu utilises quelle version d'Unity, car c'est obsolète, et sur le 2020 il me semble que ce n'est plus supporté.
Le package Multiplayer HLAPI est-il installé ?

Re: [Command] n'est pas prise en charge

Publié : 30 Oct 2020 19:46
par ced_le_dingue
J'utilise la 2019.1.14.f1 car la 2020 met 10 plombes à se lancer sur mon pc (qui pourtant n'est pas trop pourri)... Mais du coup hormis la version 2020, je devrai utiliser quoi à la place de [Command] pour le même résultat?

Re: [Command] n'est pas prise en charge

Publié : 30 Oct 2020 19:47
par Max
Le package Multiplayer HLAPI est-il installé ?

Re: [Command] n'est pas prise en charge

Publié : 30 Oct 2020 20:37
par ced_le_dingue
Oui il est installé :triste1:

Re: [Command] n'est pas prise en charge

Publié : 30 Oct 2020 22:06
par Max
après dans ton code au dessus, il te manque une accolade pour fermer ton Update (donc juste avant [Command] )

Re: [Command] n'est pas prise en charge

Publié : 31 Oct 2020 00:18
par ced_le_dingue
Merde en effet c'était ça le soucis tu as raison... Merci beaucoup Max, t'es trop balèze ! 8|