Отредактируйте после лучшего понимания вопроса:
Мне кажется, я понимаю, откуда возникло ваше замешательство Вы, вероятно, думаете, что игровые объекты должны каким-то образом проявляться в игровом представлении / физике, где на самом деле многие игровые объекты являются просто невидимыми единицами, несущими игровой код c.
Я думаю, что хорошим решением было бы сохранить игровой объект менеджера, который отслеживает текущее местоположение игрока. Когда вы перехватываете ввод пользовательского интерфейса, который перемещает игрока, вы будете делать это через менеджера, и менеджер будет ответственен за удаление выделения из текущей зоны и его применение к новой зоне.
Это, вероятно, Хорошая идея сохранить «зоны» в качестве дочерних объектов указанного менеджера. Прочтите о том, как найти игровые объекты из родительских игровых объектов. Я не уверен, какой объект перехватывает щелчок мыши, но при условии, что это сами зоны, чем менеджер может подписаться на события в зонах, которые будут срабатывать при нажатии, или просто рефакторинг для получения одного объекта (возможно, менеджера) обрабатывать входы пользовательского интерфейса.
Надеюсь, это более полезно. Дайте мне знать, если вам нужны какие-либо разъяснения.
Предыдущий комментарий
Используйте триггер коллайдера .
Вы можете использовать OnTriggerEnter и OnTriggerExit , чтобы установить bool, когда игрок находится в зоне. Если вам нужна координация между разными триггерами и разными зонами, вам понадобится какой-то менеджер для этого.