void OnEnable()
{
rb.AddForce(Vector3.up*0.1f, ForceMode.Impulse)
}
GameObject[] zombies = GameObject.FindGameObjectsWithTag("Zombie");
foreach (GameObject zombie in zombies)
{
octree.Add(zombie, zombie.GetComponent<Collider>().bounds);
}
List<GameObject> nearbyZombies = new List<GameObject>();
if (!zombie.isAlive)
{
closestDistanceSqr = maxDistance * maxDistance;
target = null;
}
void LockTarget()
{
Collider[] zombies = Physics.OverlapSphere(turret.transform.position, maxDistance, _targetMask);
Transform target = null; //должна быть глобальная или передавать через return
if (!(zombies.Length > 0)) return;
float mindist = maxDistance;
foreach (Collider c in zombies)
{
float currentDist = Vector3.Distance(turret.transform.position, c.gameObject.transform.position);
if ((currentDist<mindist))
{
mindist = currentDist;
target = c.gameObject.transform;
}
}
}
targets.AddRange(manager.turrets);
mainBase = manager.mainBase;
player = manager.btr.transform;
if (targets.Count != 0) target = targets[Random.Range(0, targets.Count)];
else target = null;
btr = player.GetComponent<BTR>();
_agent.SetDestination(_target.position);
private void Update()
{
transform.rotation *= Quaternion.Euler(transform.rotation.x + 150f*Time.deltaTime, 0, 0);
}
}
Вот ещё можно отключить гравитацию у нижних объектов, или вообше выключить гравитацию по умолчанию и включать её только при enable. Уж если из этого ничего не поможет то проблема точно в коллайдерах