个人项目(3):敌人1

个人项目(3):敌人1

有了主体角色,要实现动作交互以及增加游戏趣味性,就务必要增加敌人。

敌人的行动逻辑

第一种类型敌人(即敌人1)当主角位于其发觉范围之外时并不会做任何行动,当主角位于其发觉范围之内时便会向主角移动,当主角进入其攻击范围时便会发动攻击,该行动逻辑的部分实现代码如下:

Vector3 x=follow.position;
       Vector3 y=this.GetComponent<Transform>().position;
       float distances=Vector3.Distance(x,y);
       if(distances<=maxdistance&&distances>mindistance){//当主体对象位于该对象发觉范围内时
           if(musicplaying==true){
           as1.Play();
           }//脚步声音效播放
           musicplaying=false;//音效已在播放
           isfighting=false;
           movement=this.GetComponent<Transform>().position-follow.position;
           movement.x*=-1;
           movement.z*=-1;
           movement.Normalize();
           Animator.SetBool("isrunning",true);
           Animator.SetBool("isattacking",false);
       }
       else if(distances<=mindistance){//当主体对象位于该对象攻击范围内时
           as1.Stop();
           musicplaying=true;//脚步声音效暂停
           isfighting=true;
           movement.Set(0.0f,0.0f,0.0f);
           Animator.SetBool("isrunning",false);
           Animator.SetBool("isattacking",true);
       }
        else if(distances>maxdistance){//当主体对象位于该对象发觉范围外时
           as1.Stop();
           musicplaying=true;
           movement.Set(0.0f,0.0f,0.0f);
           Animator.SetBool("isrunning",false);
           Animator.SetBool("isattacking",false);
       }

其中的运动与转向方法与主体角色类似,这里就不再赘述。而动画控制器的设计也与主体角色类似,主要是通过调整一些参数的布尔值来实现动画的播放与否。

image-20220824102327493

这里的walking动画并没有应用到,本来是想用于制作一个敌人的AI实现定向巡逻的效果,以后可以再加以完善。

攻击的触发器

本篇我想主要讲一下敌人1攻击时造成主角扣血的触发器逻辑,如图,除了碰撞体(小胶囊)外,我还为该敌人角色添加了一个触发器(大胶囊)。

image-20220824102837369

image-20220824102953500

其中的具体逻辑如下:

private void OnTriggerStay(Collider other){//判断玩家是否处在触发器范围中
        if(other.transform==follow&&isfighting==true){
            isplayerinrange=true;
        }
    }

    private void OnTriggerExit(Collider other){//判断玩家是否不在或离开触发器范围
        if(other.transform==follow){
            isplayerinrange=false;
        }
    }
if(isplayerinrange==true){//触发器触发,主体角色掉血
           if(player.invincibility==false){
               player.hp--;
               player.ishit=true;
           }
       }

当主体角色为于该攻击范围触发器中并且敌人角色正在攻击,则isplayerinrange布尔值为真,表示主体角色可被攻击,当主体角色不在无敌时间时,就会触发主体角色掉血的逻辑。其中player获取的是为主体角色添加的脚本组件。

当然也可以选择为角色手中的大剑模型添加触发器,具体的实现方法类似,当敌人攻击并打到主体角色是会执行主体角色掉血逻辑。(这里不采用这种方法是因为一开始使用的敌人1模型并没有武器,所以直接添加了一个胶囊体触发器,这里的敌人1模型是将原来敌人1模型的部分组件转移过来的,这也是可以完善的一点。当然后续主体角色的攻击逻辑则是使用了这种方法)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蛋白质是生物体中普遍存在的一类重要生物大分子,由天然氨基酸通过肽键连接而成。它具有复杂的分子结构和特定的生物功能,是表达生物遗传性状的一类主要物质。 蛋白质的结构可分为四级:一级结构是组成蛋白质多肽链的线性氨基酸序列;二级结构是依靠不同氨基酸之间的C=O和N-H基团间的氢键形成的稳定结构,主要为α螺旋和β折叠;三级结构是通过多个二级结构元素在三维空间的排列所形成的一个蛋白质分子的三维结构;四级结构用于描述由不同多肽链(亚基)间相互作用形成具有功能的蛋白质复合物分子。 蛋白质在生物体内具有多种功能,包括提供能量、维持电解质平衡、信息交流、构成人的身体以及免疫等。例如,蛋白质分解可以为人体提供能量,每克蛋白质能产生4千卡的热能;血液里的蛋白质能帮助维持体内的酸碱平衡和血液的渗透压;蛋白质是组成人体器官组织的重要物质,可以修复受损的器官功能,以及维持细胞的生长和更新;蛋白质也是构成多种生理活性的物质,如免疫球蛋白,具有维持机体正常免疫功能的作用。 蛋白质的合成是指生物按照从脱氧核糖核酸(DNA)转录得到的信使核糖核酸(mRNA)上的遗传信息合成蛋白质的过程。这个过程包括氨基酸的活化、多肽链合成的起始、肽链的延长、肽链的终止和释放以及蛋白质合成后的加工修饰等步骤。 蛋白质降解是指食物中的蛋白质经过蛋白质降解酶的作用降解为多肽和氨基酸然后被人体吸收的过程。这个过程在细胞的生理活动中发挥着极其重要的作用,例如将蛋白质降解后成为小分子的氨基酸,并被循环利用;处理错误折叠的蛋白质以及多余组分,使之降解,以防机体产生错误应答。 总的来说,蛋白质是生物体内不可或缺的一类重要物质,对于维持生物体的正常生理功能具有至关重要的作用。
Unity中实现像崩坏3一样的敌人侦查范围,可以通过以下几个步骤来实现: 1. 创建敌人模型:使用Unity的建模工具或者导入外部3D模型来创建敌人模型。敌人的模型应该和游戏场景相匹配,以便玩家可以自然地将其视为合理的敌人。 2. 添加侦查范围:在敌人模型上添加侦查范围组件,例如Sphere Collider或Capsule Collider等。侦查范围的大小和形状应该根据游戏的需求来进行调整。 3. 编写敌人的AI脚本:编写敌人的AI脚本,以便控制敌人在侦查范围内的行为。脚本应该包括以下几个方面: - 敌人在侦查范围内的巡逻行为; - 敌人在侦查范围内发现玩家后的追击行为; - 敌人在侦查范围外的待机行为。 4. 实现敌人的视觉和听觉系统:在敌人的AI脚本中实现敌人的视觉和听觉系统,以便敌人能够在侦查范围内发现玩家的位置。视觉系统可以通过射线检测或者碰撞检测来实现,听觉系统可以通过声音检测来实现。 5. 实现敌人的警戒状态和攻击行为:当敌人发现玩家后,敌人应该进入警戒状态,并且开始进行攻击行为。攻击行为可以通过射击或者近战攻击来实现。 6. 设置敌人的属性:设置敌人的属性,包括移动速度、攻击力、防御力和血量等。敌人的属性应该根据游戏设计来进行调整。 总而言之,实现像崩坏3一样的敌人侦查范围需要考虑到敌人的AI系统、视觉和听觉系统、警戒状态和攻击行为等多个方面。需要根据游戏的需求来进行调整和优化,以提高游戏的难度和体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值