UE 编辑器属性节点可见性更新 打开DataTable中RowEditor的SearchBox后发现搜索Category的子串会将该类下所有属性都显示出来有点怪所以结合AI梳理了更新的流程备忘。可见性由两方面决定属性名/子属性名 匹配搜索串属性Category/属性值 匹配搜索串更新逻辑流程核心逻辑FDetailItemNode::FilterNode()其中的关键属性是 bShouldBeVisibleDueToFiltering由 PassesAllFilters() 负责更新FDetailItemNode::GetVisibility() 中使用。核心逻辑PassesAllFilters()核心的可见性判断是 const bool bPassesSearchFilter bPassesCategoryFilter || bPassesValueFilter || bSearchFilterIsEmpty || ( bIsNotBeingFiltered || bIsSeenDueToFiltering || bIsParentSeenDueToFiltering );不过滤 或 Category匹配 或 属性值匹配自定义细节面板这里不考虑走的是另外的逻辑bIsSeenDueToFiltering 和 bIsParentSeenDueToFiltering 由 PropertyNodeFlags 确定在 FPropertyNode::FilterNodes() 中更新。调用栈SDetailsViewBase::OnFilterTextChanged(const FText InFilterText)SDetailsViewBase::FilterView(const FString InFilter)SDetailsViewBase::UpdateFilteredDetails()FPropertyNode::FilterNodes(...)FDetailLayoutBuilderImpl::FilterDetailLayout( const FDetailFilter InFilter )FilterNode()