栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

unity查找最近敌人/物体(代码逐行详解)

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unity查找最近敌人/物体(代码逐行详解)

 写代码前要做两件事:

1.随便新建几个模型,这几个模型都添加一句脚本:public void HP(添加这个模型的一律当作敌人)

2.新建一个模型,这个模型只添加下面的代码脚本

    public void Start()
    {
        ha[] gen = FindObjectsOfType();//根据类型查找所有ha类类型的对象,返回值存到ha[]gen中
        ha a = mindistance(gen, this.transform);//调用mindistance函数,找与mubiao最近的敌人
        a.gameObject.GetComponent().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;//返回最终确定的敌人

    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号