Enemy存在Y轴高度差时瞬移/3D物理对象穿地板问题求助
问题描述
- 当玩家处于高处平台、Enemy位于下方时,Enemy会直接瞬移至玩家位置,而非沿楼梯移动;Y轴坐标相同时行为正常。
- 曾怀疑问题出在AI、NavMesh或缺失导航组件上,尝试过重新烘焙NavMesh、调整预制体参数,但未解决问题。
- 补充测试确认:问题根源是Enemy的3D物理对象穿入地板,而非Enemy自身位置偏移。
Enemy代码
private NavMeshAgent agent; public LayerMask playerLayer; private WaveSpawner waveSpawner; public GameObject[] allEnemies; public GameObject closestEnemy; //variables public float sightRange = 10f; public float attackRange = 1f; public float patrolRange = 3f; bool inSightRange; private void Start() { waveSpawner = GetComponent<WaveSpawner>(); agent = GetComponent<NavMeshAgent>(); } private void Update() { allEnemies = GameObject.FindGameObjectsWithTag("Player"); closestEnemy = ClosestEnemy(); transform.position = new Vector3(transform.position.x, 1, transform.position.z); NavMeshAgent agent = GetComponent("NavMeshAgent") as NavMeshAgent; NavMeshHit closestHit; if (NavMesh.SamplePosition(transform.position, out closestHit, 100f, NavMesh.AllAreas)) { transform.position = closestHit.position; agent.enabled = true; } if (Physics.CheckSphere(transform.position, sightRange, playerLayer)) { Chase(); } else inSightRange = false; if (!inSightRange && Vector3.Distance(transform.position, agent.destination) < patrolRange) { Patrolling(); } } GameObject ClosestEnemy() { GameObject closestHere = gameObject; float leastDistance = Mathf.Infinity; foreach (var enemy in allEnemies) { float distanceHere = Vector3.Distance(transform.position, enemy.transform.position); if (distanceHere < leastDistance) { leastDistance = distanceHere; closestHere = enemy; } } return closestHere; } private void OnDrawGizmos() { Gizmos.DrawSphere(transform.position, sightRange); } void Patrolling() { float searchZ = Random.Range(-sightRange, sightRange); float searchX = Random.Range(-sightRange, sightRange); agent.destination = new Vector3(transform.position.x + searchX, 1, transform.position.z + searchZ); } void Chase() { agent.destination = (closestEnemy.transform.position); inSightRange = true; }
Inspector参数截图


内容的提问来源于stack exchange,提问作者Big Glasses
相关产品推荐
相关产品推荐

