Erreur cs1501 unity3d

J’essaie d’esquiver mon personnage lorsque j’appuie sur une touche, mais j’obtiens toujours l’erreur

CS1501: Pas de surcharge pour la méthode Dodge' takes 2″ arguments

voici la partie du script d’esquive

voici le script complet, la partie dodge est à la fin

 using UnityEngine; using System.Collections; public class player : MonoBehaviour { public int playerHP; public GUIStyle bigFont; public int attackPlayer; public int defensePlayer; public int speedPlayer; public int atckSpeedPlayer; public int damage; public enum DodgeDirection { Right, Left, Forward, Backward }; public Vector3 dodge = new Vector3(5, 5, 5); // Use this for initialization void Start () { playerHP = 500; bigFont= new GUIStyle(); bigFont.fontSize = 40; attackPlayer = 10; defensePlayer = 8; speedPlayer = 10; atckSpeedPlayer = 12; } // Update is called once per frame void Update () { } void OnTriggerEnter (Collider hit){ if(hit.tag == "swordEnemy"){ damage = GameObject.FindWithTag("npcSamuraiNormal").GetComponent().enemyAttack - defensePlayer ; playerHP -= damage; } } public void OnGUI(){ GUI.Label(new Rect(180,800,100,50), "HP:" + playerHP.ToSsortingng(), fonteGrande); //determina posiçao e transforma o valor em ssortingng } public void Dodge(DodgeDirection dir) { switch(dir) { case DodgeDirection.Right: rigidbody.AddForce(transform.right * dodge.x + transform.up * dodge.y, ForceMode.Impulse); break; case DodgeDirection.Left: rigidbody.AddForce(transform.right * dodge.x + transform.up * dodge.y, ForceMode.Impulse); break; case DodgeDirection.Forward: rigidbody.AddForce(transform.forward * dodge.z + transform.up * dodge.y, ForceMode.Impulse); break; case DodgeDirection.Backward: rigidbody.AddForce(transform.forward * dodge.z + transform.up * dodge.y, ForceMode.Impulse); break; } } void FixedUpdate() { if (Input.GetKeyDown("l")){ Dodge(DodgeDirection.Right, dodge); //return; } else if (Input.GetKeyDown("j")){ Dodge(DodgeDirection.Left, dodge); //return; } else if (Input.GetKeyDown("i")){ Dodge(DodgeDirection.Forward, dodge); //return; } else if (Input.GetKeyDown("k")){ Dodge(DodgeDirection.Backward, dodge); //return; } } } 

Vous appelez la méthode Dodge en passant deux arguments, par exemple: Dodge(DodgeDirection.Forward, dodge); mais votre méthode n’en demande qu’une:

 public void Dodge(DodgeDirection dir) 

Donc, pour résoudre ce problème, vous avez deux options:

  1. Ne FixUpdate qu’un seul paramètre dans la méthode FixUpdate .
  2. Ajoutez un deuxième paramètre sur la signature de la méthode.