1、在客户端是否可以获取到AIController?
不可以,在DS(dedicated server)模型下,AIController只存在于服务端,其主要是通过在服务端对Pawn进行操控, 然后再同步到客户端。
2、如果在C++中需要使用windows的头文件,如何操作?
#include “AllowWindowsPlatformTypes.h” #include <windows.h> #include “HideWindowsPlatformTypes.h”
3、在头文件中经常出现的xxx.generated.h是什么?
当一个头文件中 include “xxx.generated.h“,意味着这个头文件加入了反射系统。那些
UPROPERTY, UFUNCTION 之类的宏,也标记着这些方法属性等等加入了 UE4 的反射系统,
加入了反射系统,UE4 才能帮你做 GC(垃圾回收),你才能实现蓝图、C++ 通信等等很多功能。
4、试说出宏、函数、事件的部分区别和联系。
函数与事件的区别:
1、函数有返回值,事件无返回值
2、函数调用会等待函数执行结果,事件调用只是触发但不会等待。
3、函数执行在同一个线程,事件执行在不同线程。
4、函数可以用局部变量,事件没有局部变量。
5、因为函数执行顺序有保证,所以优先使用函数
6、没有返回值的函数,在被子类Overide时,会变成事件。
宏与函数的区别在于:
(1)宏是直接展开,即直接将宏的代码直接复制替换到所有使用当前宏的地方,
这点类似于c++中的宏,而函数则是需要编译。
(2)宏运行时无实体,函数运行时有实体。
(3)宏有多个入口Exec多个出口Exec,函数只有一个入口Exec一个出口Exec。
(4)宏可以使用Delay,函数不可以使用Delay。
(5)宏不可以复制,函数可以复制。
(6)宏的参数可以使用“Exec”类型,函数不可以
5、UE4中的RPC事件有哪些?
RPC主要包括Multicast(广播)、Run On Server(在服务端执行)和Run On Owning Client
(在客户端执行)三种类型。其中广播类型在服务器上调用执行,然后自动转发给客户端;
在服务端执行的函数有客户端调用,然后仅在服务器执行。在客户端执行的函数由服务器
调用,然后仅在自己的客户端上执行。
6、连接服务器的命令是什么,如何传递参数?
连接服务器的命令是Socket->Connect(*addr); 其中的*addr是InternetAddr指针,用于传递IP和Port。