@Senture

Не перемещается обьект в unity?

Здравствуйте, скопипастил скрипт с одного интернет ресурса для управления сферой в unity. Вот код:
void FixedUpdate() {
        if ( netView.isMine ) { // если обькт принадлежит нам то мы им управляем иначе делаем интерполяцию движения
            float inputX = Input.GetAxis( "Horizontal" );
            float inputY = Input.GetAxis( "Vertical" );

			if ( inputX != 0.0f ) {
                rigidbody.AddTorque( Vector3.forward * -inputX * power, ForceMode.Impulse );
            }
            if ( inputY != 0.0f ) {
                rigidbody.AddTorque( Vector3.right * inputY * power, ForceMode.Impulse );
            }
        } else {
			syncTime += Time.fixedDeltaTime;
            rigidbody.position = Vector3.Lerp( syncStartPosition, syncEndPosition, syncTime / syncDelay ); // интерполяция перемещения
            rigidbody.rotation = Quaternion.Lerp( syncStartRotation, syncEndRotation, syncTime / syncDelay ); // интерполяция поворота
		}
	}


При нажатии на какую либо из кнопок перемещения выдает вот такую ошибку:
NullReferenceException
UnityEngine.Rigidbody.AddTorque (Vector3 torque, ForceMode mode) (at C:/buildslave/unity/build/artifacts/generated/common/modules/Physics/DynamicsBindings.gen.cs:1466)
PlayerControls.FixedUpdate () (at Assets/PlayerControls.cs:42)

P.S. Спасибо за помощь!
  • Вопрос задан
  • 315 просмотров
Решения вопроса 1
@SimasikS
Я есть
Вам же нужно получить rigidbody через GetComponent

public float torque;
    public Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        float turn = Input.GetAxis("Horizontal");
        rb.AddTorque(transform.up * torque * turn);
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы