?写代码前要做两件事:
1.随便新建几个模型,这几个模型都添加一句脚本:public void HP(添加这个模型的一律当作敌人)
2.新建一个模型,这个模型只添加下面的代码脚本
public void Start()
{
ha[] gen = FindObjectsOfType<ha>();//根据类型查找所有ha类类型的对象,返回值存到ha[]gen中
ha a = mindistance(gen, this.transform);//调用mindistance函数,找与mubiao最近的敌人
a.gameObject.GetComponent<Renderer>().material.color = Color.red;//将距离本物体最近的物体的颜色变成红色
}
public ha mindistance(ha[] gen, Transform mubiao)//找距离目标最小距离,先找所有的敌人将敌人存到gen数组中,这个数组是ha类类型,确定自己(mubiao)的位置
{
float mindis = Vector3.Distance(gen[0].transform.position, mubiao.position);//计算mubiao与查找到第一个敌人之间的距离,将距离存到mindis中
ha lastha = gen[0];//返回值为ha类类型,先设置为gen[0](因为先假设第一个敌人gen[0]就是距离mubiao最近的敌人)
for (int i = 1; i < gen.Length; ++i)//遍历所有的敌人
{
float nextdis = Vector3.Distance(mubiao.position, gen[i].transform.position);//目标与第二个,第三个第四个......敌人之间的距离
if (mindis > nextdis)//if语句作用:谁距离mubiao最小,就将距离mubiao最小的保留下来
{
mindis = nextdis;
lastha = gen[i];//将距离mubiao最小的敌人存到lastha中
}
}
return lastha;//返回最终确定的敌人
}
|