я делаю это бить «Em Up игра на единстве, которое имеет следующий механизм (?): Когда попадает коллайдер игрока противника:Unity: Несколько геймобжекты в массиве
public GameObject obj;
...
void OnTriggerEnter(Collider collider){
obj=collider.gameObject;
}
Тогда, когда игрок нападает, если его расстояние до OBJ достаточно мало, противник получает урон:
void hit(){
if(kicked&&close){ //if he is kicking and is close enough
obj.GetComponent<health>().DealDamage(damage); //this is inside a try/catch, just in case obj=null
(...)
}
проблема, если 2 врагов прикоснуться к игроку, только последний будет назначена переменным OBJ, поэтому он возьмет только один удар, которого я не хочу.
Любые предложения? Должен ли я заменить
GameObject obj;
с массивом? Как так?
а затем, по методу OnTriggerEnter, добавить объекты в массив? (Как это сделать?)
размер Массив является неизменным, и вы должны структуру данных, размер которого может динамически сокращаться и расти. Вместо этого используйте «Список». – Abion47
Что делать, если я использую массив больше, чем когда-либо понадобится? –
Альтернативный подход. Используйте метод Physics.OverlapSphere() ', чтобы проверить во время атаки, какие враги находятся в диапазоне атаки игрока, а затем нанести им соответственно (если есть). – Serlite