对不起,我的英语不好。
第一个绿色路线向右(到达第一个路标),但是在延长隧道长度之后,第二个绿色路线就是为什么绿色会丢失第一个路线并直接到达第二个路标的原因。 (为什么会以某种方式绕行?)
实际上有两个问题: 1)如何修复第一个航点 2)为什么第二个航路点很奇怪
这是敌人遍历航点的代码。
using System;
using UnityEngine;
using UnityEngine.AI;
[RequireComponent(typeof(NavMeshAgent))]
public class EnemyMovement : MonoBehaviour
{
[SerializeField] public Transform[] points;
[SerializeField] private int destPoint = 0;
private NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.autoBraking = false;
agent.destination = points[destPoint].position;
}
void GotoNextPoint()
{
if(destPoint != points.Length)
{
agent.destination = points[destPoint].position;
}
}
void Update()
{
if(agent.remainingDistance < 0.5f)
{
destPoint++;
GotoNextPoint();
}
}
private void OnDrawGizmos()
{
Gizmos.DrawLine(gameObject.transform.position, points[destPoint].position);
}
}
答案 0 :(得分:0)
已确定问题是NavMesh制作了大图块(NavMeshBuildSettings.tileSize),但是我无法更改它,因为我使用了别人的作品(https://github.com/Unity-Technologies/NavMeshComponents/tree/mast…mpls /脚本)。因此,事实证明,要更改运行时navMesh,不仅必须在网格更改代码中注册,还必须编写行( .overrideTileSize = true; )
var defaultBuildSettings = NavMesh.GetSettingsByID (0).overrideTileSize = true;
此后,我能够更改磁贴的大小,并且停止选择错误的路径。