Срабатывание Тригерра у всех экземпляров префаба.
Добрый день, такая беда. У меня есть префаб противника, состоящий из нескольких частей. В одной из частей "пустышке" находится лист с теми игроками, которых противник заметил, заполняется он при соприкосновении коллайдера с этим игроком. Как только прикосновение окончилось - первый элемент из списка должен быть удален. НО(!) проблема в том, что скажем, у 5ти префабов противника одновременно срабатывает этот тригер при соприкосновении с игроком и все поля в классе внезапно оказываются общими, несмотря на мои попытки присвоить для каждого объекта свои собственные поля. Что я делаю не так? Ниже пример кода.
public class ScanSphere : MonoBehaviour
{
public List<GameObject> players;
public ScanSphere scan;
private GameObject player1;
private GameObject player2;
private int i;
private void Awake()
{

scan = this.gameObject.GetComponent<ScanSphere>();
scan.player1 = GameObject.FindGameObjectWithTag("Player1");
scan.player2 = GameObject.FindGameObjectWithTag("Player2");
scan.players = new List<GameObject>();
}
void OnTriggerEnter(Collider coll)
{
GameObject player = coll.gameObject;
if (player.tag == "Player1")
{
scan.players.Add(player1);
}
if (player.tag == "Player2")
{
scan.players.Add(player2);
}
}
void OnTriggerExit(Collider coll)
{

GameObject player = coll.gameObject;
if (player.tag == "Player1")
{
scan.players.Remove(player1);
}
if (player.tag == "Player2")
{
scan.players.Remove(player2);
}
}
}
По итогу работы скрипта в логах можно обнаружить следующую закономерность.
  1. первый противник коснулся игрока, List 1= 1;
  2. второй противник коснулся игрока, List 2 = 1 и List1 = 2;
  3. третий противник коснулся игрока, List3 = 1 List2= 2 List3 = 3
......................................
То есть каждый предыдущий противник берет на себя все срабатывания новых. Я же ожидал иного результата, хотел получить:
  1. List1 = 1
  2. List2 = 2;
  3. List3 = 3;
Все противники создаются в отдельном классе через Instantiate из одного и того же префаба (клоны).

Без ответа.


Просмотров: 77

Комментарии пока отсутcтвуют