插件:eidt-plugins
插件:eidt-plugins
构建工具UrealBuildTool解决什么问题;
1,头文件路径,要编译的源文件,库依赖
2,调用各种程序,由于程序本身可能不仅仅包含源文件,还可能包含其他配置文件,图片,视频等等
3,跨平台,它可以同一生成windows和Linux,MAC三个平台的配置,从而使行为保持一致性。虽然我们在windows的IDE VS开发,但是我们的工程配置是由UBT完成。
搞的啥? 搞不起
12-需要完成的功能
ROLE_Authority 判断是否在服务器端
C++ 如何调用蓝图函数?
代理 在蓝图中赋值,在c++中使用代理
UFUNCTION(UAssignable) 对函数赋值
11-代理示例
客户端没有Gamemode, 客户端只有GameInstance
只有 DECLARE_DYNAMIC_MULTICAST_DELEGATE 这种代理才能在蓝图中使用。
调用的时候OnBoard
提示不出现,解决小贴士:
1. 切换文件
2. 输入换行,然后删除保存
创建:
调用:
绑定:
蓝图里面加入Custom Event
10-UE4崩溃了,我也崩溃了
崩溃怎么解决?
1. 查看崩溃日志
崩溃日志放到最大
第一行崩溃原因
接下来是程序调用栈,找到自己的代码
2. 提前设置Assert方便快速调试
Assert 条件出错就崩溃
check 提早发现问题
3. 崩溃日志里找不到自己的代码
日志错误的内存地址就很很多0,可以猜测遇上了野指针
变量为空判断
Enemy == nullptr
Attach to programe 让编辑器调试游戏运行
09-AI
UFUNCTION
要支持反射,函数必须申明为这个
08-代理
代理可以不用知道函数对象的类型。
只要函数和代理要求的参数和返回值相同即可。
类似于iOS中的通知。
定制你的UE4 C++开发环境
ue4-vs-extensions
解决UPROPERTY 必须要空两个的问题
07-UFUNCTION
UFunction 可以被反射识别
任务54:06-函数隐藏
05-初始化顺序
MakeArray 蓝图中构造数组的方法。
04-再次调试
点击蓝图中的函数进入相应的引擎源码,如果发现名称和蓝图中不一样,可以看下函数的声明。
直接在UE4源码中打断点,找到传进来的变量值
03-调试
启动调试器
方案1:Debug --> Attach to process
选中ue4.exe
方案2:
Start Debugging
加载速度慢
Loading fewer symbols might improve debuggger performace.
这个不用管,只有第一次慢
Step Into
进入第一个调用的函数,进入函数内部
Step Out
跳出函数
Step Over
直接下一步
日志与屏幕输出
1. 怎么打印日志?
UE_LOG(LogTemp, Warning, TEXT("Your message"));
2. 打印在什么地方
日志打印位置Outputlog,设置输入日志窗口的位置Window --> Developer Tools --> Output Log
3. 怎么筛选日志?
Filter --> 可以筛选警告,错误信息
4. 向屏幕输出日志?
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("This is an on screen message!"));
UClLASS标记过的类,不允许使用纯虚函数
FString、FName、FText
UE4中的所有字符串都作为FStrings或TCHAR数组以UTF-16 格式存储在内存中
wchar_t 表示宽字符,占用两个字节,UFT16每一个字符都需要一个两个字节,用wchar_t表示。
TEXT("hahha") 将c字符串转换成的宽字符串
不知道该调用哪个函数,怎么办?
蓝图
源码???
传递类对象
循环引用问题
从Output从找错误,不要冲Error list中去找
从Output的第一个错误开始解决,可能其他的错误都是第一个错误引起的。
不要显示Error list
Tools --> options --> error list --> Always show error