你好,我正在开发一款即时战略游戏,因此我需要控制多个小兵。但当我尝试添加另一个小兵并同时指挥他们时,他们会移动到指定点,然后像这样互相看着对方 https://i.sstatic.net/331Mo.jpg。小兵移动的代码如下:
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI;public class moveTest : MonoBehaviour { NavMeshAgent navAgent; // Use this for initialization void Start () { navAgent = GetComponent<NavMeshAgent>(); } // Update is called once per frame void Update () { move(); } void move() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Input.GetMouseButtonDown(1)) { if (Physics.Raycast(ray, out hit, 1000)) { navAgent.SetDestination(hit.point); } } }}
回答:
代理会尽可能靠近指定位置。由于你让两个代理都移动到同一个位置,他们会尽可能地靠近。你可以考虑增加停止距离,或者在hit.point上添加一个随机的单位球体,这样他们看起来更像一个群体。