一种是delegate写法,另一种是lambda
第二种更简洁,两种效果一样
List<GameObject> targetList = new List<GameObject>();
Debug.Log(targetList.Find(delegate (GameObject target) { return target.name.Equals("test"); }));
Debug.Log(targetList.Find(target => target.name.Equals("test")));
另附上直接搜索所有指定类物体的写法
void getTargetList(string tag, out List<Damageable> targetlist)
{
targetlist = ((Damageable[])FindObjectsOfType(typeof(Damageable))).ToList();
List<Damageable> targetRemove = targetlist.FindAll(t => t.tag.Equals("Player"));
for (int i = 0; i < targetRemove.Count; i++)
{
Debug.Log("清除目标:" + tag + "|" + targetRemove[i].name);
}
}