Ошибка Unity: только ожидание приращения приращения вызова присваивания и новые выражения объекта могут использоваться как оператор - PullRequest
0 голосов
/ 19 марта 2020

У меня ошибка CS0201 в коде. Строка № 31, в которой написано

hardbody.velocity + Vector3.up * 100f;

Мой код

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

public class MyScript : MonoBehaviour {
    protected Joystick joystick;
    protected Joybutton joybutton;
    protected bool jump;

    // Start is called before the first frame update
    void Start() {
        joystick = FindObjectOfType<Joystick>();
        joybutton = FindObjectOfType<Joybutton>();
    }

    // Update is called once per frame
    void Update() {
        var rigidbody = GetComponent<Rigidbody>();
        rigidbody.velocity = new Vector3(joystick.Horizontal * 100f,
                                         rigidbody.velocity.y,
                                         joystick.Vertical * 100f);
        if(!jump && joybutton.Pressed)
        {
            jump = true;
            rigidbody.velocity + Vector3.up * 100f;
        }
        if(jump && !joybutton.Pressed)
        {
            jump = false;
        }
    }
}

1 Ответ

1 голос
/ 19 марта 2020

Прежде всего hardbody не существует нигде в вашем коде.


У вас есть строка

 rigidbody.velocity + Vector3.up * 100f;

, но это только возвращает значение и поэтому не может быть заявлением само по себе. Вам нужно было бы присвоить что-то вроде, например,

rigidbody.velocity = rigidbody.velocity + Vector3.up * 100f;

, что равно

 rigidbody.velocity += Vector3.up * 100f;

Общий sidenote:

Не используйте GetComponent<Rigidbody>(); в Update .. лучше хранить его один раз, например, в Awake или Start

// Best already reference this via the Inspector in Unity
[SerializeField] private Rigidbody rigidbody;

private void Awake()
{
    if(!rigidbody) rigidbody = GetComponent<Rigidbody>();
}

и использовать его позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...