ぼっちプログラマのメモ

UE4とかUE5とかについて書いたり書かなかったり。

【UE5】Collision Presetの選択UIを検索可能版(SSearchableComboBox)にする方法について

本記事はUnreal Engine (UE)のカレンダー | Advent Calendar 2023 - Qiita シリーズ 5の 2日目の記事です

はじめに


ホグワーツレガシーの開発者による講演「Collision Data in UE5: Practical Tips for Managing Collision Settings & Queries(Unreal Engine 5での衝突データ: 衝突設定とクエリの管理に関する実用的なアドバイス)」にて、「Collision Presetを検索可能なコンボボックスに変更するといいぞ」という内容がありましたが、具体的にどうすればいいのかは説明がなかったので…調べて記事にしました!

動いてる様子

なぜ検索可能にすると良いのか?など講演の内容に関しては下記記事でまとめてるのでどうぞ!
(Collision PresetのCustomを禁止するとPresetの数が運用上多くなるので、検索可能にしたほうが便利という理由です)
pafuhana1213.hatenablog.com

CollisonPresetのコンボボックスを検索可能版に

  • Engine/Source/Editor/DetailCustomizations/Private/BodyInstanceCustomization.h
class FBodyInstanceCustomization : public IPropertyTypeCustomization
{
...
// edit SComboBox -> SSearchableComboBox
TSharedPtr<class SSearchableComboBox> CollsionProfileComboBox;
//
...
  • Engine/Source/Editor/DetailCustomizations/Private/BodyInstanceCustomization.cpp
void FBodyInstanceCustomization::AddCollisionCategory(TSharedRef<class IPropertyHandle> StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
{
...
	.ValueContent()
	[
		SNew(SHorizontalBox)
		.IsEnabled(this, &FBodyInstanceCustomization::IsCollisionEnabled)
		+ SHorizontalBox::Slot()
		.VAlign(VAlign_Center)
		[
			// edit SComboBox -> SSearchableComboBox
			SAssignNew(CollsionProfileComboBox, SSearchableComboBox)
			//
			.OptionsSource(&CollisionProfileComboList)
...

検索できた方が便利だと思うので、近々プルリクしようかなと思います。
おしまい