Baste 发表于 2021-12-25 12:26

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

一般就是走动作帧绑事件处理,然后就看要做到多好的问题。我一般是创建碰撞体去实现,然后单机可以用自带的物理库,网络的要自己去实现。
然后碰撞体尽量选计算量小的去实现,高速的要走cast接口或raycast

fwalker 发表于 2021-12-25 12:30

一般就是走动作帧绑事件处理,然后就看要做到多好的问题。我一般是创建碰撞体去实现,然后单机可以用自带的物理库,网络的要自己去实现。
然后碰撞体尽量选计算量小的去实现,高速的要走cast接口或raycast

DomDomm 发表于 2021-12-25 12:32

这个问题我也是这么做的,在某一帧上使能2D盒装碰撞器

BlaXuan 发表于 2021-12-25 12:40

没有做过arpg的经验,不确定这种方式是否合适、是否会影响手感。
一般在开发项目尤其是联网、联机项目时,都建议视图与逻辑层剥离,所以对于一个角色播放一个动作,然后在动作的某个环节对前方目标进行判定检测,或者此时创建一个火球向某个方向飞去。
在逻辑层上是:
玩家施法-> 延迟若干秒(配置的) -> 创建碰撞体 -> 延迟若干秒(还是配置) -> 销毁碰撞体
在碰撞体存活期间,检测是否有收到碰撞事件,然后进行命中结算。

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

所以动作和检测是分开来的,通过相同的时间来达成表现与逻辑判定同步;这个不嫌麻烦的可以手动配置,或者写一个工具根据animation的文件导出各个阶段的配置时间。
页: [1]
查看完整版本: unity2d项目怎么实现伤害判定?