位置: 编程技术 - 正文

判断攻击范围(攻击判定是什么意思)

编辑:rootadmin
//1、只攻击正前方的单位,向前发射一条射线,攻击碰到的单位RaycastHit hit;//range 射线的长度,即攻击范围,maskTarget敌方单位的mask,只攻击敌方单位if(Physics.Raycast(unit.thisT.position, unit.thisT.forward, out hit, range, maskTarget)){Unit targetTemp=hit.collider.gameObject.GetComponent();if(targetTemp!=null && targetTemp.HPAttribute.HP>0){target=targetTemp;if(attackMode==_AttackMode.StopNAttack){if(attackMethod!=_AttackMethod.Melee) unit.StopAnimation();unit.StopMoving();}}}//2、以己方单位为圆心的某一半径长度内//返回相交球的所有碰撞体Collider[] cols=Physics.OverlapSphere(unit.thisT.position, range, maskTarget);//if(cols!=null && cols.Length>0) Debug.Log(cols[0]);if(cols.Length>0){Collider currentCollider=cols[Random.Range(0, cols.Length)];Unit targetTemp=currentCollider.gameObject.GetComponent();if(targetTemp!=null && targetTemp.HPAttribute.HP>0){target=targetTemp;if(attackMode==_AttackMode.StopNAttack){if(attackMethod!=_AttackMethod.Melee) unit.StopAnimation();unit.StopMoving();}}}//3、以己方单位为圆心的扇形范围内Collider[] cols=Physics.OverlapSphere(unit.thisT.position, range, maskTarget);//if(cols!=null && cols.Length>0) Debug.Log(cols[0]);if(cols.Length>0){Collider currentCollider=cols[0];foreach(Collider col in cols){Quaternion targetRot=Quaternion.LookRotation(col.transform.position-unit.thisT.position);if(Quaternion.Angle(targetRot, unit.thisT.rotation)Unit targetTemp=currentCollider.gameObject.GetComponent();if(targetTemp!=null && targetTemp.HPAttribute.HP>0){target=targetTemp;if(attackMode==_AttackMode.StopNAttack){if(attackMethod!=_AttackMethod.Melee) unit.StopAnimation();unit.StopMoving();}break;}}}}

推荐整理分享判断攻击范围(攻击判定是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。

判断攻击范围(攻击判定是什么意思)

文章相关热门搜索词:判断攻击范围的方法,攻击距离怎么看,攻击范围是什么,攻击判定是什么意思,判断攻击范围的方法,判断攻击范围的指令,判断攻击范围的标准,判断攻击范围的标准,内容如对您有帮助,希望把文章链接给更多的朋友!

unity商店demo学习:跑酷游戏 本文素材和代码全部来自unityassetstore里面的3DInfiniteRunnerToolkit项目步骤场景一:TitleScene1搭建开始界面场景这个场景是开启游戏的第一个界面,用于选择

跑酷角色左右移控制 //使角色能够左右移动voidMoveLeftOrRight(){if(Input.GetKey(KeyCode.A)){if(currentHorizontalDistance=-maxHorizontalDistance){return;}transform.Translate(Vector3.left*Time.deltaTime*horizontalMo

摄像机跟随与摄像机晃动 usingUnityEngine;usingSystem.Collections;publicclassCameraFollows:MonoBehaviour{privateVector3position;publicTransformtarget;publicfloatdistance;publicfloattargetHeight;publicfloatPitchAngle;privatefl

本文链接地址:https://www.jiuchutong.com/biancheng/372786.html 转载请保留说明!

上一篇:cocos2d-x初探学习笔记(8)--场景特效(cocos2dx入门)

下一篇:unity商店demo学习:跑酷游戏(unity商店资源在unity中打开)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络