经过几天的努力终于在UDKGame环境下集成了自己的工程,接下来为了扩展我们的网络端必须进行native代码的书写。在这之前有以下两条道路可以摸索:
1.冷欺花前辈基于winsocket完成了一个UDK广播,让我有了一个好的开始。
2.UnrealScript基于FSocket实现了一个TCPLink类供我们直接使用,然而这个类多用于处理HTTP请求,由于效率的问题。我们最终还是决定基于FSocket的方式进行扩展实现自己的网络数据访问。
在这之前有几点关于编写native code的几点需要熟悉。然后在下一章开始基于FSocket对网络端的请求链接进行实现。包括:
- 根据我们定制的协议解析。
- 发送字段看服务器端的验收。
第一种方法,自动生成头文件的UC代码。这种代码在编写好之后会自动生成指定目录下的头文件,然后我们只需要实现必要的函数即可。
class ArtSocketObject extends Object Native(Socket);
上面的代码将会自动生成ArtGameSocketClasses.h的头文件,对其进行了宏定义。我们只需要在一个类中对其进行实现即可。
注意的是在实现这个类的头部应该包含,ArtGameSocketClasses.h以及进行宏定义声明。
IMPLEMENT_CLASS(UArtSocketObject);
如果这里面有native函数,将会这么做
native string function NativeTest();
在实现类中
FString UArtSocketObject::NativeTest() { ... }