请选择 进入手机版 | 继续访问电脑版

unity多人副本中 某敌人攻击某角色

[复制链接]
盛夏丨光年丶 发表于 2020-12-31 18:59:18 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 EnemyCtrl.cs   此脚本是挂在仇人(怪物)身上 
 下面重点分析一下,这个脚本中的Update函数
 
[code]    void Update()    {        Collider[] colliders =Physics.OverlapSphere(transform.position, _chaseDistance, LayerMask.GetMask("Player"));  //搜寻脚色        print(colliders.Length);        float minDistance = _chaseDistance;        if (colliders.Length > 0)        {            for (int i = 0; i < colliders.Length; i++)  //通过此次遍历,找到离自己最近的脚色            {                print(gameObject.name +"     :     "+ colliders.gameObject.name);                float distance = Vector3.Distance(transform.position, colliders.transform.position);                if (distance < minDistance)                {                    minDistance = distance;                    if (colliders.GetComponent() != null)                    {                        _userDto = colliders.GetComponent().OtherUserDto;                    }                    else                    {                        _userDto = Global.Instance.UserDto;                    }                    if (_userDto.Hp >= 0)                    {                        _target = colliders.gameObject;                    }                    else                    {                        _target = null;                    }                }            }        }        else        {            minDistance = _chaseDistance;        }        if (_target != null)        {            if (minDistance < _chaseDistance)            {                if (minDistance < _attackDistance) //适合攻击                {                    _timer += Time.deltaTime;                    if (_timer > _attackRate)  //每隔几秒举行一次攻击                    {                        if (_userDto.Hp
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )