OverlapBox не реагирует на другие коллайдеры
Данный код нужен для включения физики у блока здания, если рядом нет других блоков. Слой установлен Default, тег BuildingElement у блока присутствует.
При запуске этого скрипта, коллизия обнаруживается только с землёй (Plane), и то на расстоянии Y < 1.8
// isKinematic = true
void FixedUpdate()
{
uint connectedColliders = 0;
if (!alreadyDisconnected && transform.localScale.x > 0.99f)
{
Collider[] hitColliders = Physics.OverlapBox(transform.localPosition, transform.localScale * 0.75f, transform.localRotation, _mask);
foreach (Collider hitCollider in hitColliders)
{
// Отладчик ничего не выводит
Debug.Log(name + ": checking connection to " + hitCollider.name);
if (hitCollider.CompareTag("BuildingElement")) // || hitCollider.CompareTag("Ground")
{
Debug.Log(name + " can connect to " + hitCollider.name);
connectedColliders++;
}
}
if (connectedColliders > 0)
{
// Для отладки
Debug.Log("Connected" + name);
}
else
{
alreadyDisconnected = true;
GetComponent<Rigidbody>().isKinematic = false;
}
//Debug.Log("Connected colliders for " + transform.name + " is " + connectedColliders);
}
}
Пример из документации работает аналогичным образом.