UE4 爬坑手记2

久久没做UE4了,好多概念忘了个差不多。从单机版Demo改成网络版,中间经历了许许多多的基础知识忘记,导致的无意义的时间流逝。这里深刻做检讨。记录几个之前没怎么注意的事情:

1、GameMode是只存在在服务器的东西,没事别在这里写一些客户端用到的变量。尤其是要从单机改网络版的时候,这里的东西Replicated是完全无意义的。需要从Controller或者Pawn传下来。

2、PlayerState里如果有主角状态相关的东西,最好有其他的组件之类的东东在Controller或者Pawn里与之对应和保存。单机可以存数据,改网络版的时候,这部分内容会改到怀疑人生。

3、GameState是可以下发到客户端。可一个全场景用到的数据状态,会有什么角色自身的东西是可以随便往这里存的?不要怀疑,它的范围太大了,非必要,不使用

4、UCLASS 中的反射声明如果是GENERATED_UCLASS_BODY(),则不需要重写带参数的构造函数“xxxxxxx(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get())”,编译会报错的……这里可以改成GENERATED_BODY(),声明上述构造函数是可以的

5、关于USTRUCT()。如果TArray中需要引用USTRUCT的话,需要在引用的Class的头文件中完成声明和定义。或者在其他文件中完成声明和定义,但是包含该struct的头文件,必须在Class的头文件中包含。C++的前向声明,UE4是会不给你面子的,直接编译报错-_-|||

暂时就这么多,后续会再做补充

===========================我是分割线===========================

6、DS上玩家下线,保留玩家Actor。APlayerController的派生类中,覆盖函数“OnNetCleanUp”,在函数中做完自己想要的修改后,再调用Super::OnNetCleanUp()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值