通过UE_LOG()向日志输出,向其传入三个参数(①输出日志类型,一般LogTemp ②具体种类,普通/警告/错误,这里是Warning ③输出的文本内容,使用TEXT(" "),这里是TEXT("Run AActor BeginPlay"))
代码写好后需要去引擎编译才能用:
![](https://img-blog.csdnimg.cn/direct/138d14889b2c494a863a97a93167735a.png)
现在看到MyActor,属于Actor类,可以放到关卡上,新建basic关卡,将MyActor类拖拽上去,可见坐标轴:
![](https://img-blog.csdnimg.cn/direct/aa7ad9cd00a24910ad7fe4c8fb3ef2c6.png)
发现没有任何可调参数,所以为了c++类更好编辑,一般会将其转为蓝图类,在"内容"下面新建文件夹存入:
![](https://img-blog.csdnimg.cn/direct/38eb748cbfd34fc4abfefd9fddb1553d.png)
![](https://img-blog.csdnimg.cn/direct/55375bb62ebe49bf939111c843a8e75c.png)
创建完成,将其保存后关闭:
![](https://img-blog.csdnimg.cn/direct/b0eaa481a1dc470e95c6e943f7fa3216.png)
这里来到蓝图类拖出来会有蓝图类的特殊图标:
现在验证运行此蓝图类是否会输出BeginPlay中的日志,点开输出日志并将其停靠在布局中:
![](https://img-blog.csdnimg.cn/direct/7a5118e50a82418d81df157bb3583d1e.png)
运行后发现输出成功,但还包含其他杂乱输出,可使用过滤器过滤:
![](https://img-blog.csdnimg.cn/direct/009b26eaa73443b194067bb04abe599e.png)
![](https://img-blog.csdnimg.cn/direct/167007a9c7984d74823d258df5b0b14e.png)
输出成功:
![](https://img-blog.csdnimg.cn/direct/a795490d51f14fb9aa9d7755d949abe0.png)
那么该如何在窗口打印,c++写一句话即可,GEngine->AddOnScreenDebugMessage():传入四个参数:key(定为-1),显示时长(定为5s),文本颜色(FColor::MakeRamdomColor(),随机颜色),文本内容FString(TEXT("Hello C++")) ,最后前往引擎编译即可。
重新运行:
![](https://img-blog.csdnimg.cn/direct/1a17cb61e48d417784a1b2f5f34f8dea.png)
成功在日志与屏幕输出文本。
本次代码:
cpp
void AMyActor::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp, Warning, TEXT("Run AActor BeginPlay"));
GEngine->AddOnScreenDebugMessage(-1, 5, FColor::MakeRandomColor(), FString(TEXT("Hello C++")));
}