Делаю скрипт для перемещения персонажа по урокам в интернете. Застрял на моменте прыжка. Unity выкидывает мне:
NullReferenceException: Object reference not set to an instance of an object.
Пара моих тестов показала, что значение rb
остаётся null
после start
. Rigidbody
на тело нацеплен, само тело указано (но и до введения public GameObject
было всё тоже самое)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainHeroContr : MonoBehaviour
{
public float speed = 1f;
public float force = 1f;
bool isGround = true;
public GameObject srcrb;
Rigidbody rb;
void start()
{
rb = srcrb.GetComponent<Rigidbody>();
}
void OnTriggerStay(Collider col)
{
if (col.tag == "ground") isGround = true;
}
void OnTriggerExit(Collider col)
{
if (col.tag == "ground") isGround = false;
}
void Update()
{
if (Input.GetButton("moveRight"))
{
transform.Translate(transform.right * speed);
}
if (Input.GetButton("moveLeft"))
{
transform.Translate(-transform.right * speed);
}
if (Input.GetButton("moveForward"))
{
transform.Translate(transform.forward * speed);
}
if (Input.GetButton("moveBack"))
{
transform.Translate(-transform.forward * speed);
}
if (Input.GetButton("Jump") && isGround)
{
print(rb);
}
}
}
Замените void start()
на void Start()
.
Start
у MonoBehaviour
с большой буквы должен быть. Впрочем, по конвенции, все методы должны именоваться с большой буквы.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
MVC CORE 21; У меня есть два проекта Web ( основной проект, в нём есть форум, блог
Добавил в объект новое поле, объект используется как источник данных для RDL отчета, приложение на winformsИспользовал все доступные мне танцы...
Ошибка "Несогласованность по доступности" на "SpeedVector" у "public Vector SpeedVector"