客户端开发中,核心战斗是重点。核心战斗中,数据的分布很灵活,大致有以下三种思路(抛开纯C#开发):
A:所有的对象数据放在C#中,读取和修改这些数据的操作放在LUA中,角色、技能、AI、BUFF等在LUA中实现。
B:所有的对象数据放在LUA中,C#只是一个负责渲染、声音的包装,比如战斗对象的血量减少了,直接把C#中的设置血量暴到LUA中,LUA设置血量即可。
C:用C/C++在中间再封装一层,供C#和LUA调用。
三种方式各有所长,之前一个项目采用的是第一种,比较累。另一个项目采用的主要是第二种,看起来还不错,AI使用了行为树,只不过只实现了SELECT和SEQUENTIAL两个节点,没有实现CONDITION/ACTION节点。