UE中基本图形的原始大小是多大

一、问题

在一些简单的测试中,我们经常会把左侧的一些标准控件,例如Cube、Sphere、Cone、Plane等类型,放置到场景中进行测试。放进场景之后,我们还可以在Details面板中通过Location/Rotation/Scale三个维度对场景中的Actor进行修改。那么在默认(拖入场景中之后未修改)情况下,这些几何图形的维度是什么?Cube的长宽高是多少?

二、对于StaticMeshActor类型

以Cube为例,在右侧"Details==>>Static Mesh==>>Static Mesh",将鼠标移动到cube图标上可以看到,这个cube的资源来自“/Engine/BasicShapes/Cube”,在Engine Content==>>BasicShapes文件夹可以看到这些资源。同样的,将光标移动到这些资源之后,会有一个Appox Size属性。例如cube的这个属性为100×100×100。
具体设置代码在Engine\Source\Runtime\Engine\Private\StaticMesh.cpp文件中
void UStaticMesh::GetAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags) const
{
……
const FString ApproxSizeStr = FString::Printf(TEXT("%dx%dx%d"), FMath::RoundToInt(Bounds.BoxExtent.X * 2.0f), FMath::RoundToInt(Bounds.BoxExtent.Y * 2.0f), FMath::RoundToInt(Bounds.BoxExtent.Z * 2.0f));
……
OutTags.Add( FAssetRegistryTag("Materials", FString::FromInt(StaticMaterials.Num()), FAssetRegistryTag::TT_Numerical) );
OutTags.Add( FAssetRegistryTag("ApproxSize", ApproxSizeStr, FAssetRegistryTag::TT_Dimensional) );
OutTags.Add( FAssetRegistryTag("CollisionPrims", FString::FromInt(NumCollisionPrims), FAssetRegistryTag::TT_Numerical));
……
}

三、Brush类型

这个在右侧的Details==>>Brush Settings 页签可以清楚的看到,Brush Type、Brush Shape、X、Y、Z信息。
可以看到默认的Box Brush的值为200×200×200

四、volume类型

以Nav Mesh Bounds Volume为例,由于它直接继承了ABrush,所以和Brush一样,也是通过Brush Settings看到这些信息。

五、补充

这里的维度都是完整的长宽高,在系统内部,是通过center + extent(半高)结构来表示。

六、参考

在Unreal的官网上没有找到这部分的说明,在另外一个地方看到一个可以大致的描述,其中的“Common size recommendations”节描述了相关信息。

 

posted on   tsecer  阅读(826)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示