找回密码
 立即注册
查看: 378|回复: 3

unity2d项目怎么实现伤害判定?

[复制链接]
发表于 2021-12-25 12:26 | 显示全部楼层 |阅读模式
一般就是走动作帧绑事件处理,然后就看要做到多好的问题。我一般是创建碰撞体去实现,然后单机可以用自带的物理库,网络的要自己去实现。
然后碰撞体尽量选计算量小的去实现,高速的要走cast接口或raycast
发表于 2021-12-25 12:30 | 显示全部楼层
一般就是走动作帧绑事件处理,然后就看要做到多好的问题。我一般是创建碰撞体去实现,然后单机可以用自带的物理库,网络的要自己去实现。
然后碰撞体尽量选计算量小的去实现,高速的要走cast接口或raycast
发表于 2021-12-25 12:32 | 显示全部楼层
这个问题我也是这么做的,在某一帧上使能2D盒装碰撞器
发表于 2021-12-25 12:40 | 显示全部楼层
没有做过arpg的经验,不确定这种方式是否合适、是否会影响手感。
一般在开发项目尤其是联网、联机项目时,都建议视图与逻辑层剥离,所以对于一个角色播放一个动作,然后在动作的某个环节对前方目标进行判定检测,或者此时创建一个火球向某个方向飞去。
在逻辑层上是:
玩家施法-> 延迟若干秒(配置的) -> 创建碰撞体 -> 延迟若干秒(还是配置) -> 销毁碰撞体
在碰撞体存活期间,检测是否有收到碰撞事件,然后进行命中结算。

而视图层上是:
监听到玩家施法事件 -> 播放施法动作

所以动作和检测是分开来的,通过相同的时间来达成表现与逻辑判定同步;这个不嫌麻烦的可以手动配置,或者写一个工具根据animation的文件导出各个阶段的配置时间。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 08:36 , Processed in 0.099223 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表