所以我为我正在制作的游戏设置了这三个类。Infection Controller,然后是 2 个子类,InfectedClass 和 BloaterClass。这是在 InfectionController 中:
void UpdateTarget()
{
GameObject[] Humans = GameObject.FindGameObjectsWithTag(humanTag);
GameObject[] Vaccines = GameObject.FindGameObjectsWithTag(vaccineTag);
GameObject[] HV = Humans.Concat(Vaccines).ToArray();
float shortestDistance = Mathf.Infinity;
GameObject nearestHuman = null;
Vector3 currentPosition = this.transform.position;
foreach (GameObject huvacs in HV)
{
Vector3 directionToTarget = huvacs.transform.position - currentPosition;
float distanceToTarget = directionToTarget.sqrMagnitude;
if (distanceToTarget < shortestDistance)
{
shortestDistance = distanceToTarget;
nearestHuman = huvacs;
}
else
{
targetHuman = null;
}
}
if (nearestHuman != null && shortestDistance <= range)
{
targetHuman = nearestHuman.transform;
infectionAgent.SetDestination(targetHuman.transform.position);
}
}
所以 Infected 和 Bloater 都共享这个脚本,但我希望它们具有不同的速度。我遇到了一个问题,如果我在 Start() 函数中更改 NavMeshAgent 的速度,我会将所有感染单元的速度更改为相同的速度。
那么......我应该把这个运动方法放在子类中吗?或者有没有办法根据父类内部的子类来改变速度?