В настенном скрипте есть 4 различных общедоступных переменных boxcolliders2D, но я
не могу найти способ установить для каждого из них соответствующие
boxcollider2D в игровом объекте игрока, в инспекторе.
Вы не можете сделать это из редактора, но вы должны быть в состоянии сделать это с помощью кода.
Инициализируйте ваши 4 переменные из кода с помощью функции GetComponents
, которая возвращает массив компонентов, прикрепленных к GameObject. Обратите внимание на 's' в конце. Это отличается от функции GetComponent
, которая возвращает только один GameObject.
public BoxCollider2D col1;
public BoxCollider2D col2;
public BoxCollider2D col3;
public BoxCollider2D col4;
void Awake()
{
BoxCollider2D[] colliders = GetComponents<BoxCollider2D>();
col1 = colliders[0];
col2 = colliders[1];
col3 = colliders[2];
col4 = colliders[3];
}
Хотя версия кода должна работать, не присоединяйте несколько BoxCollider2D к одному GameObject. Что нужно сделать, это создать дочерний GameObject для каждого дополнительного коллайдера, который вы хотите, затем присоединить к нему компонент BoxCollider2D. Это рекомендуемый способ использования нескольких коллайдеров в одном GameObject, и это должно решить вашу проблему.
Ниже приведен скриншот того, как это должно выглядеть:
Теперь вы можете перетащить каждый дочерний коллайдер ( BoxCollider2D 1 , BoxCollider2D 2 , BoxCollider2D 3 ) в соответствующее public
имя переменной.