Unity制作RPG游戏——战斗注视LockOn实现方法

一、实现步骤

1.在Input脚本中新增一个LockOn信号,显然它是Onpressed信号

2.当LockOn信号为true时,调用cameraController中的LockUpLock方法,主要实现逻辑放在该方法中

3.采用Physics.overlapbox()方法,在玩家正前方产生一个box碰撞器,返回一个collider数组

 获得返回的数组colliders

 4.构建一个LockTarget类,将当前的Target设置为该类的一个实例

5. 如果colliders数组不为空且将第一个获取到的物体不为当前target,则设置该物体为当前的target

6.在相机旋转的位置新增bool判断,当lockstate==true时,应当使相机偏转朝向物体,直接构建一个向量由target的position减去player的position,然后让player的朝向这个方向即可,这是修改后的相机偏转代码

 

7.构建一个UI红点,用来标记target,这个实现方法重点在于如何将世界坐标系下的位置信息转化为UI的坐标位置信息,可以通过方法camera.WorldToScreenPoint()

同时,这里还实现了当距离超过10之后,自动失去目标。至此,战斗注视大致介绍完了。

二、几点补充

1.由于在战斗注视中,视角属于锁定状态,所以仅仅通过1D混合树制作的动画就会捉襟见肘,所以需要改为2D混合树,并增加right动画参数,当lockon时起作用

2.在实现战斗注视过程中封装了一个Target类,专门用来保存物体及其半高,在collider.bounds.extends下表示的都是该碰撞体的长宽高的一半。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值