En este momento estás viendo error con el movimiento en unity siguiendo un tutorial

 – Unity

error con el movimiento en unity siguiendo un tutorial – Unity

error con el movimiento en unity siguiendo un tutorial

– UnityAssets3Free

hola , por aqui juansito y hoy os traigo
nueva pregunta

estoy tratando de hacer un juego unity usando C# para un curso de desarrollo de juegos. el curso es: https://www.youtube.com/watch?v=b8YUfee_pzc y a las 51:55 ahí es donde estoy teniendo el error. el error es NullReferenceException: Object reference not set to an instance of an object player.FixedUpdate () (at Assets/scripts/player.cs:32)
Revisé y parece ser letra por letra (incluyendo mayúsculas) perfecto, a menos que sea un estúpido. podría deberse a un código obsoleto, algo en unity o simplemente estoy copiando algo mal. De todos modos, aquí está el código:

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

[RequireComponent(typeof(BoxCollider2D))]
public class player : MonoBehaviour


    private BoxCollider2D boxCollider;
    private RaycastHit2D hit;
    private Vector3 moveDelta;

    private void start()
        boxCollider = GetComponent<BoxCollider2D>();
    

    private void FixedUpdate()
    
       float x = Input.GetAxisRaw("Horizontal");
       float y = Input.GetAxisRaw("Vertical");

        // reset move delta
       moveDelta = new Vector3(x, y, 0);

        // swap sprite direction
        if(moveDelta.x > 0)
            transform.localScale = Vector3.one;
        
        else if (moveDelta.x < 0)
            transform.localScale = new Vector3(-1,1,1);

            hit =  Physics2D.BoxCast(transform.position, boxCollider.size, 0, new Vector2(0, moveDelta.y), Mathf.Abs(moveDelta.y * Time.deltaTime), LayerMask.GetMask("actor", "blocking"));
            if (hit.collider == null)
            
             transform.Translate(0, moveDelta.y * Time.deltaTime, 0);    
            

            hit =  Physics2D.BoxCast(transform.position, boxCollider.size, 0, new Vector2(moveDelta.x, 0), Mathf.Abs(moveDelta.y * Time.deltaTime), LayerMask.GetMask("actor", "blocking"));
            if (hit.collider == null)
            
             transform.Translate( moveDelta.x * Time.deltaTime, 0, 0);    
            
    
    
   
    

```


1 respuesta 1

Encontré un comentario en ese video que funcionó para mí: «cambiar» BoxCollider2D boxCollider privado; «a» BoxCollider2D boxCollider público; «y arrastrar el colisionador de cuadros a la pestaña en el script en su npc»

nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias

por hoy,hasta la proxima

Deja una respuesta