代码中没用到,问美术,也没有引用过该资源
最后发现,是在测试DataDrive的时候,引入了一个CSV,在csv中,有个定义是”Texture2d’/Game/Textures/AchievementIcon1′”
Cook的时候,发现这个名字就去找对应的资源了.
Category: 游戏开发
Jenkins的log中显示乱码
- 用Jenkins管理unreal4的自动化,出现乱码.
- 查看Jenkins的 系统管理->系统信息, 显示 file.encoding GBK
- 因为Jenkins启动时,读取了系统的encoding, 操作系统是中文的,但unreal输出的是utf8
- 所以在启动的时候,要告诉Java, 用utf8的encoding.
- Jenkins被安装为Service, 打开Services.msc, 在属性里,Jenkins的启动不能添加参数.
- Jenkins的service启动,是调用Jenkins.exe. (不是 Java -jar Jenkins.war),所以不能加参数.
- 查看jenkins的安装文档,
- 当用Service方式启动时,会在Jenkins.exe的目录下,生成Jenkins.xml文件,这里面可以设置启动参数.
- 修改Jenkins.xml文件,在 arguments 项中,加入-Dfile.encoding=UTF8 (需要加在前面一些.放在最后面貌似无效).
- 再重启service.
UE4的FRotator初始化不清零
- FRotator不清0,
- 所以会出现在Debug模式下Spawn每次成功.
- 在Release模式下,有时成功,有时失败.
- 尽量用 FRotator::ZeroRotator 作为Spawn的参数(或者游戏的其它值)
一个浮点数相加不正确的问题
今天遇到一个问题:
float CurTime = FApp::GetCurrentTime(); UE_LOG(LogGame, Warning, TEXT("%3.2f"), CurTime); CurTime += 1; UE_LOG(LogGame, Warning, TEXT("%3.2f"), CurTime);
结果两个数值的打印 有时相同, 有时结果相差2
看汇编 也没什么问题
000007FEB7EB9B37 movss xmm0,dword ptr [CurTime] 000007FEB7EB9B3D addss xmm0,dword ptr [__real@42c80000 (07FEB7F7BAB0h)] 000007FEB7EB9B45 movss dword ptr [CurTime],xmm0
1个小时后的结论是: GetCurrentTime() 返回的是double型.
应该是 double 赋值给 float 时, float的指数位用完了,所以加另一个浮点数时, 只取整数部份(大于1时, 小数部分进1)
随着时间增长,有一天,这个结果会是”有时数值相同,有时结果相差4″