【厚积薄发】如果想用ECS实现技能系统有什么好的思路

文摘   2024-10-21 18:32   上海  
这是第406篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com

UWA QQ群:793972859


本期目录:
  • 如果想用ECS实现技能系统有什么好的思路

  • 在使用Recast Navigation时遇到的两个问题

  • 通过摇杆控制角色移动时,怎么获取要移动方向上的坐标

  • 有判断一个点是否在NavMesh上的接口吗


Script

Q:在DOTS中,如果想用ECS实现技能系统有什么好的思路吗?

A:有,但是开发成本太大。没有特别值得推广的设计,本身ECS是可以的,但是非得用上DOTS,是不值得的。如果只用ECS,帧同步类游戏会非常方便,但是MMO等回调驱动的游戏,与OOP的开发难度一致甚至略高,后期成本在于把握各种时序。无DOTSECS,可以直接参考ET框架。


如果是割草游戏中小兵的“技能系统,建议直接硬做。以实现需求为主,也就是1个技能1个System,开单子做功能。想要通过某些设计一劳永逸,基本不太可能。本身ECS的抽象性就是远远不如OOP的,再加上DOTS中禁用Class,导致你所有抽象行为基本全不被支持。


针对以上问题,有经验的朋友欢迎转至社区交流
https://answer.uwa4d.com/question/67160df6682c7e5cd61bf960
Terrain

Q:在使用Recast Navigation遇到的两个问题:

1. 场景中的资源(网格 bin 文件)都打成AssetBundle了,那现在LoadNavMesh的方法是不是就会有问题了,要怎么修改?


2. 切换场景的时候,之前场景加载的场景数据怎么清除?


A:1. 可以把文件内容在C#里读出来,然后直接传给LoadNavMesh,也就是要改一下 LoadNavMesh的实现,把LoadNavMesh(path)改成LoadNavMesh(content)。


2. LoadNavMesh里换成新的内容,然后把之前的数据清掉。


针对以上问题,有经验的朋友欢迎转至社区交流
https://answer.uwa4d.com/question/67160fcc682c7e5cd61bf961
Terrain

Q:用Recast Navigation时,在通过摇杆控制角色移动时,怎么获取要移动方向上的坐标?


A:代码如图所示:


针对以上问题,有经验的朋友欢迎转至社区交流
https://answer.uwa4d.com/question/6716110a3d306f3e9d594d48
Terrain

Q:有判断一个点是否在NavMesh上的接口吗?


A:代码如图所示:



针对以上问题,有经验的朋友欢迎转至社区交流
https://answer.uwa4d.com/question/671611893d306f3e9d594d49

封面图来源于网络


天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。


UWA官网:www.uwa4d.com

UWA社区:community.uwa4d.com

UWA学堂:edu.uwa4d.com

官方技术QQ群:793972859


(长按识别二维码进入UWA问答)


点击下方名片关注我们,将我设为星标,及时接收小编每日推送哦,性能优化不迷路~

 

Unity网游寻路方案



近期精彩回顾

【学堂上新】优化篇|UWA DAY 2024系列精选

【万象更新】Frame Capture模式 - 着色器查看器

【万象更新】GPM 2.0多维数据与实时截帧完美结合

【学堂上新】Unreal引擎系列精选|UWA DAY 2024


侑虎科技
UWA,专业的游戏和VR应用性能优化平台。www.uwa4d.com
 最新文章