Stack Overflow на русском Asked by Mirlin on December 19, 2020
Делаю скрипт для перемещения персонажа по урокам в интернете. Застрял на моменте прыжка. 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
с большой буквы должен быть. Впрочем, по конвенции, все методы должны именоваться с большой буквы.
Answered by Suvitruf - Andrei Apanasik on December 19, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP