写两份了还放到share中干啥
egametang 不是放到share中,是share中的代码需要用到这个组件,例如,我这个组件是添加在Unit上面的。
那你是依赖share 而不是share依赖你的组件
egametang
这个在ET7中应该怎么做比较好呢, 写两份代码,还是把iunitcache也放share中?
接口共用就行了
字段不同的话,不是可以用 partial class 解决?
Long 实测在share中写一个A的partial类,在server和clicent中分别写两个同样A的partial类。那么在服务器A的system里面调不到Share的A中字段。且在Client,Server,ServerClient中分别定义A的partial类,ide不识别是分部类。
不建议,一个组件要么都一样,要么就分开。多出来的字段做成另外一个组件
laoyao 新项目这两天我也在纠结要不用共用一些组件,比如Player组件,客户端和服务器大部分字段是一样的,但是还是有部分字段不同, 想用partial类来解决,后面发现不同的命名空间的partial是不能一起的组合的。
dred 距离上次回复已经过去两个月了,说一下我的开发方法。我这边操作是有能前后端共用的方法组件,就放在share当中,但是对应的System脚本通常会有三个。share一个,写通用方法。client一个,写只有客户端用到的方法。server一个,写只有服务器用到的方法。如果客户端需要在共用组件中新增字段,这个操作不允许。需要客户端单独写组件扩充,add到这个组件的客户端实体上。两个月下来,这样开发节奏还是比较清晰的。这是我个人习惯哈。大佬有不同见解,欢迎指正。
dred 共用的组件的awake和destroy监听要在client和server的system中分别实现,维护两份。这样就实现了公用组件可以独立维护自身组件增删修改的特性。
laoyao 讲真,我听听都觉得麻烦.一个功能的东西分这么多份脚本去写. 我直接全都塞进share里面, Client和Server中的代码不多. 不就是share里面有的代码客户端用不上,有的代码服务端用不上嘛,不管他.
laoyao 我共用组件的Awake也放在Share里了,ET的client-server模式下相同组件在unity会走到server的Awake里。
DuckT 上一个项目我也是这样的。到后期你会发现所有东西堆在一起,共同维护的人多了之后逻辑会凌乱无比。分开来维护起来清晰非常多。
DuckT 我恰好相反,我现在选择分开写了,客户端和服务器端各写各的,全弄一起我强迫症得更严重了
laoyao 我们当前的开发规范,虽然创建的脚本会多。但是逻辑职责划分比较清晰。多人协作维护起来很方便。
laoyao 确实是这样,所以我感觉et6挺好的
laoyao 如果share一个共用的方法,在服务端和客户端有不同的逻辑,该怎么做?
当然,只要有一点不一样,就分开,不要搞一起
Liquor 有不同的逻辑意味着这个方法不应该放在share里面,将客户端的方法放到客户端的system中,服务器的方法放到服务端的system中。
laoyao 这样会有很大量的代码是重复的。比如一个Entity的创建类,在服务端和客户端前9个字段都一样,只有最后一个字段的赋值会有不同。这时如果拆成两个System,等于90%的代码都重复了,感觉很难受。我想问的就是如何在share的system里调用服务端客户端不同的那一点点代码(其实就是写在client和server的两个system)