Страница 1 из 1

Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 17:09
xies
Ошибка в скрипте, делаю управление для персонажа, не знаю как правльно оформить.
Синтаксис:
Используется csharp
[SerializeField] private Vector3 moveDirection;
    private Rigidbody[] _player;

    private void Start()
    {
        _player = FindObjectsOfType<Rigidbody>();
    }
    private void FixedUpdate()
    {
        OnButtonLeft();
        OnButtonRight();
    }
    public void OnButtonLeft()
    {
        _player.GetComponent<Rigidbody>().velocity += moveDirection;
    }
    public void OnButtonRight()
    {
        _player.GetComponent<Rigidbody>().velocity -= moveDirection;
    }

ошибка в функциях OnButtonLeft и OnButtonRight не знаю как правильно оформить строку _player.GetComponent<Rigidbody>().velocity = moveDirection; :-?

Re: Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 17:44
1max1
_player это же массив у тебя.

Re: Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 17:47
xies
1max1 писал(а):_player это же массив у тебя.

Ну да, масив

Re: Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 18:01
Xtir
Ну а какая ошибка то?

Re: Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 18:04
1max1
Ты обращаешься не к элементу, а к самому массиву.
Синтаксис:
Используется csharp
foreach (var rb in _player)
    rb.velocity -= moveDirection;

Re: Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 18:06
xies
Xtir писал(а):Ну а какая ошибка то?

Rigidbody[] не содержит определения "GetComponent", и не удалось найти доступный метод расширения "GetComponent", принимающий тип Rigidbody[] в качестве первого аргумента - это в Visual, а в Unity Rigidbody[] does not contain a definition for 'GetComponent'

Re: Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 18:11
1max1
В GetComponent нет никакого смысла, я исправил код. Вообще твой код странный, ты сразу и прибавляешь скорость и отнимаешь, там всегда будет 0.

Re: Массив Rigidbody

СообщениеДобавлено: 07 апр 2021, 18:20
xies
1max1 писал(а):В GetComponent нет никакого смысла, я исправил код. Вообще твой код странный, ты сразу и прибавляешь скорость и отнимаешь, там всегда будет 0.

Спасибо, заработало, сам бы не додумался. На счёт кода может я не прав, но 0 будет в том случае если игрок не будет нажимать кнопки, а так это 1 или же 0