Al completar la clase me sale una ventana con este error “Can`t add script component ´playerController´ because the script class cannot b...

Breylimar Andreina Castillo Monsant

Breylimar Andreina Castillo Monsant

Pregunta
studenthace 3 años

Al completar la clase me sale una ventana con este error “Can`t add script component ´playerController´ because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.” y no me deja realizar la animación del personaje, ¿alguien puede ayudarme o decirme como solucionarlo?

Este es mi codigo

using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { //Variables del movimiento del personaje public float jumpForce = 6f; public float runningSpeed = 2f; Rigidbody2D rigidBody; Animator animator; const string STATE_ALIVE = "isAlive"; const string STATE_ON_THE_GROUND = "isOnTheGround"; public LayerMask groundMask; void Awake() { rigidBody = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); } // Use this for initialization void Start() { animator.SetBool(STATE_ALIVE, true); animator.SetBool(STATE_ON_THE_GROUND, true); } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) { Jump(); } animator.SetBool(STATE_ON_THE_GROUND, IsTouchingTheGround()); Debug.DrawRay(this.transform.position, Vector2.down * 1.5f, Color.red); } void FixedUpdate() { if (rigidBody.velocity.x < runningSpeed) { rigidBody.velocity = new Vector2(runningSpeed, //x rigidBody.velocity.y //y ); } } void Jump() { if (IsTouchingTheGround()) { rigidBody.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); } } //Nos indica si el personaje está o no tocando el suelo bool IsTouchingTheGround() { if (Physics2D.Raycast(this.transform.position, Vector2.down, 1.5f, groundMask)) { //TODO: programar lógica de contacto con el suelo return true; } else { //TODO: programar lógica de no contacto return false; } } }
2 respuestas
para escribir tu comentario
    Osmar Frausto

    Osmar Frausto

    studenthace 2 años

    Suele pasar si es que tienes error de compilacion o lo mas comun, que el nombre del archivo no coincida con el de la public class, tiene que ser exactamente el mismo, si tiene espacios o algo que el programa no identifique los eliminara y asi ya no coincide, recomiendo que pongas un nombre del archivo sin espacios o numeros y que ese lo copies y peges en la public classs ejemplo: public class PlayerController : MonoBehaviour

    Breylimar Andreina Castillo Monsant

    Breylimar Andreina Castillo Monsant

    studenthace 3 años

    He seguido el curso al pie de la letra y no se porque sale eso

Curso de C# para Videojuegos

Curso de C# para Videojuegos

Domina el lenguaje c# y programa videojuegos increíbles. Logra animaciones con variables y transiciones usando Animator de Unity 2D. Genera engagement y jugabilidad en tus productos creando escenarios procedurales e innovadores.

Curso de C# para Videojuegos
Curso de C# para Videojuegos

Curso de C# para Videojuegos

Domina el lenguaje c# y programa videojuegos increíbles. Logra animaciones con variables y transiciones usando Animator de Unity 2D. Genera engagement y jugabilidad en tus productos creando escenarios procedurales e innovadores.