1,首先我们创建一个新的Unity 3D项目,在项目中添加几个Cube。如图:
2,我们创建一个有关血量的脚本,挂在各个物体上,并自己给各个物体设置不同的血量:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour {
public float hp;
}
3,然后我们创建一个查找的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class minHp : MonoBehaviour {
private void OnGUI()
{
if (GUILayout.Button(" 查找最低血量敌人"))
{
//查找场景中所以的Enemy类型的引用
Enemy[] allEnemy = FindObjectsOfType();
//获取最低血量敌人
Enemy min =FindMinHP (allEnemy);
//获取最低血量敌人的MeshRender组件,并改变它的颜色。
min.GetComponent().material.color = Color.green;
}
}
public Enemy FindMinHP(Enemy[] allEnemy)
{
Enemy min = allEnemy[0];
for (int i = 1; i < allEnemy.Length; i++)
{
if (min.hp>allEnemy[i].hp)
{
min = allEnemy[i];
}
}
return min;
}
}
注意:FindObjectsOfType和FindObjectOfType都是从自身开始查找!!!!
4,运行截图:
我们设置Cube(5)的血量是最低的,并成功查找到



