@abakhireva

Unity3D выдает ошибку в скрипте движения персонажа. Что не так?

Unity3D выдает такую ошибку: NullReferenceException: Object reference not set to an instance of an object
CharacterControllerScript.FixedUpdate () (at Assets/CharacterControllerScript.cs:29)

В игре пока только один скрипт, привожу его ниже. Помогите пожалуйста разобраться с проблемой, я пока новичок в этом деле и не особо понимаю, что пишут люди в интернете.
using UnityEngine;
using System.Collections;

public class CharacterControllerScript : MonoBehaviour
{

    public float maxSpeed = 10f;
   
    private bool isFacingRight = true;
   
    private Animator anim;
    private Rigidbody2D rb;
    private bool isGrounded = false;
    public Transform groundCheck;
    private float groundRadius = 0.2f;
    public LayerMask whatIsGround;
    
	private void Start()
    {
        anim = GetComponent<Animator>();
    }

    private void FixedUpdate()
    {
        isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
    
        anim.SetBool("Ground", isGrounded);

        const string Name = "vSpeed";
        anim.SetFloat(Name, rb.velocity.y);
       
        if (!isGrounded)
            return;
        
        float move = Input.GetAxis("Horizontal");
        
        anim.SetFloat("Speed", Mathf.Abs(move));

        {
            rb = GetComponent<Rigidbody2D>();
        }
        rb.velocity = new Vector2(move * maxSpeed, rb.velocity.y);

        if (move > 0 && !isFacingRight)
            Flip();
       
        else if (move < 0 && isFacingRight)
            Flip();
    }

    private void Update()
    {
       
        if (isGrounded && Input.GetKeyDown(KeyCode.Space))
        {
         
            anim.SetBool("Ground", false);
            rb.AddForce(new Vector2(0, 600));
        }
    }

    private void Flip()
    {
        isFacingRight = !isFacingRight;
        Vector3 theScale = transform.localScale;
        theScale.x *= -1;
        transform.localScale = theScale;
    }
}
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
{
            rb = GetComponent<Rigidbody2D>();
        }

уберите скобки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы