【UE】UE4问题合集

实习期间接触UE4,记录了从安装部署写功能到搭建专属服务器的一些问题

1.搭建服务端时找不到文件UnrealVersionSelector-Win64-Shippping.exe

这个文件被放在了Epic Games\Launcher\Engine\Binaries\Win64目录下,拷贝到需要用的目录即可

2.更换版本的时候出现问题:下载一直请稍等

怀疑是软件的问题,实际后台已经在下载了。观察网速,看到EP的带宽占用比较大时,暂停安装,再开始安装,显示回归正常

3.新建C++UE项目时报错:ERROR: Multiple configurations specified on command line (first Test, then Development)

重新换个名字新建

4.新建蓝图类,设置了spherecollision和对应的mesh组件,属性已经设置为blockAll.但是添加projectilemovement组件后反而无法检测碰撞

将spherecollision设为root,而不是放在root下

5.按照官方教程建立UE4的专用服务器

https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux)#Section_1_Building_a_dedicated_server_in_Unreal_Engine_4

在生成和设为启动项目后,调试出现错误:“远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行

参考官方文档,挨个尝试。(关闭了代理和电脑管家后重启VS解决)

https://msdn.microsoft.com/zh-cn/library/ms164726.aspx

6.打包项目时报错:

ERROR: UBT ERROR: Failed to produce item: D:\UnrealEngine-4.18\Engine\Plugins\Media\WmfMedia\Binaries\Win64\TestProject-WmfMedia.lib

打开Edit-Plugins,搜索WMF Media Player,取消勾选Enabled

打包完成后,按照教程建立server,打开server时报错,Failed to load module ‘xxx.dll’,如图

打包时因为一些意外原因导致dll没有被拷贝出来。将

(UE安装目录)\Engine\Binaries\ThirdParty\PhysX\Win(版本号)\VS(版本号)\

下的对应dll文件或者所有dll文件,全部拷贝到

(游戏目录)\ Engine \ Binaries \ ThirdParty \ PhysX \ Win(架构)\ VS(版本)\

7.打包游戏后,Server报错:Accessed None trying to read property XXXX.但是在debug时没有错误

因为后台是命令行模式,没有UI等资源,所以对TextRender等操作的行为将导致这个warning,在后台将相关操作设置成只有客户端执行.

运行dedicated server且没有客户端运行时,Execute Console Command使用ce命令,不知道为什么,即使调用muticast的event,这个event依然不会在服务端执行,因为server只有命令行,不能调用ecc?

8.ActorComponent的GetOwner()->出现错误:不允许指针指向不完整的类类型

编译可以通过,可以放着不管。也可以解决:添加头文件#include “Engine.h”

9.制作人物动画时出现: uses potentially thread-unsafe call Get Player Controller .

蓝图动画使用多线程存在安全隐患,在animationBlueprint的classsetting中取消勾选Use Multi Threaded Animation Update来禁用动画多线程

10.Accessed None trying to read property CallFunc_GetPlayerCharacter_ReturnValue from function

使用更为安全的Try Get Pawn Owner->Get Movement Component->Is Falling代替Get Player Character->Get Character MoveMent->Is Falling

11.发现一个问题,client委托server执行事件(event run on server),对client所属的character的组件(例如charactermovement)做修改(例如修改maxwalkspeed),虽然这个修改会同步(所有character都能看到移速的变化),但是在其他地方获取该组件的修改后的值居然没有变化(例如将该值打印到ui界面,一直不变)

可能是由于组件没有replicated的问题,暂时解决方法为使用自己新建的变量保存这个变化的值,然后将自己的变量设为relicated,这样获取该值就没问题

12.自定义人物、动画,控制某一个客户端的人物移动总会出现抖动和抽搐的现象,且在其他客户端中显示正常,在server端控制人物也正常。

搜索了大量关于animation replicated/movement replicated等等问题,全都没法解决。直到发现了这么一个回答

居然是这么简单的问题!自建人物的方向控制和默认模型冲突了,关闭即可。

13.编译代码时出现    -waitmutex”已退出,代码为 5。请验证您是否拥有运行此命令的足够权限。

把include “xxxxx.generated.h”放在最后一个include的地方

14.启动引擎时71%出现fatal error

在vs生成代码后使用本地调试器启动ue4,能看到你代码产生错误的地方,改掉这个bug启动成功

15.某一次同步代码后出现Failed to load /Game/AnimStarterPack/UE4_Mannequin/Mesh/SK_Mannequin.SK_Mannequin

使用epic重新将AnimStarterPack导入到项目中

发布者

VC-Robot

游戏爱好者,动漫迷,C++修炼中,编程菜鸟,随性

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.