Если я правильно понял, что проблема в том, что у вас есть скрипт, скажем, как
public class CollisionHandler : MonoBehaviour
{
public bool CanMove;
void OnTriggerEnter(Collider other)
{
CanMove = false;
}
void OnTriggerExit(Collider other)
{
CanMove = true;
}
}
, и вы хотите установить false
только для одного из объектов, верно?
Может быть, немного хакерский, но вы можете сделать
public static List<GameObject> lastReset;
void OnTriggerEnter(Collider other)
{
//get your own index in list
var myIndex = lastReset.IndexOf(gameObject);
//get others index
var otherIndex = lastReset.IndexOf(other.gameObject);
// Only go on if other is exactly the object in front of you
if(otherIndex != myIndex - 1) return;
// You way to define if can move
CanMove = ...;
}
Чем бы вы ни занимались сбросом, также сделайте
CollisionHandler.lastReset.Remove(objectYouReset);
CollisionHandler.lastReset.Add(objectYouReset);
, чтобы удалить его и установить в конец списка.