AI 围绕着目标点
public void CalculatePointsAroundObject(AIBase[] agents, Transform targetTransform, float positionRadius)
{
float subAngle = 360f / agents.Length;
float currentAngle = 0;
Vector3 currentPos = targetTransform.position;
for (int i = 0; i < agents.Length; i++)
{
agents[i].destination = new Vector3(
Mathf.Sin(Mathf.Deg2Rad * currentAngle) * positionRadius + currentPos.x,
currentPos.y,
Mathf.Cos(Mathf.Deg2Rad * currentAngle) * positionRadius + currentPos.z);
currentAngle += subAngle;
}
}
public void StopAgent()
{
Agent.canMove = false;
Agent.canSearch = false;
}
public void StartNewPath( Vector3 destination)
{
Seeker.StartPath(transform.position, destination, () => {
Agent.canMove = true;
Agent.canSearch = true;
}) ;
}
本文介绍了一种使多个AI代理围绕目标点均匀分布的方法,并实现了AI代理的路径规划与停止控制。通过计算每个代理相对于目标点的角度和位置,确保了它们在目标周围形成均匀的分布,同时提供了启动新路径和停止代理的功能。
1万+

被折叠的 条评论
为什么被折叠?



