์ ๊ท ํ๋ก์ ํธ์์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๊ณ ๋น๋๋ฅผ ์๋ํ์ ๋
๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
Target.cs ๊ด๋ จ RulesErrorUnrealEditor-MySpartaLog.lib ์ค๋ณต ์์ฑ ์๋ฌ์๋ฌ ๋ก๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ธ์ ์ถ์ ํ ๊ฒฐ๊ณผ,
ํ๋ฌ๊ทธ์ธ ๋ชจ๋์ด ๋ ๊ฐ์ ๊ฒฝ๋ก์์ ๋์์ ๋น๋ ๋์์ผ๋ก ์กํ๊ณ ์์๋ค.
[Project Target.cs]
โ
MySpartaLog (์ง์ ๋ฑ๋ก)
โ
-------------------------
โ
[Plugin .uplugin]
โ
MySpartaLog (์๋ ๋ฑ๋ก)
| ๊ตฌ๋ถ | ์์ธ | ์ํฅ |
|---|---|---|
| Target.cs | ExtraModuleNames.Add("MySpartaLog") | ํ๋ฌ๊ทธ์ธ ๋ชจ๋์ ํ๋ก์ ํธ ๋ชจ๋๋ก ์ธ์ |
| .uplugin | Modules ๋ฑ๋ก | ํ๋ฌ๊ทธ์ธ ์์คํ ์์ ์๋ ๋ก๋ฉ |
| ์บ์ | Plugins/Intermediate ์์กด | ์ด์ ๋น๋ ์ ๋ณด ์ถฉ๋ |
| ๋ค์ด๋ฐ | ํ๋ฌ๊ทธ์ธ๋ช /๋ชจ๋๋ช ํผ์ฉ | ์ค๋ณต ์ธ์ ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ |
๊ฒฐ๊ณผ์ ์ผ๋ก ๋์ผ ๋ชจ๋์ด ๋ ๋ฒ ์ปดํ์ผ ๋์์ด ๋๋ฉด์ ๋์ผ lib ์์ฑ ์ถฉ๋ ๋ฐ์
[Project Target.cs]
โ
ModuleAndPlugin (ํ๋ก์ ํธ ๋ชจ๋๋ง)
[Plugin .uplugin]
โ
MySpartaLog (ํ๋ฌ๊ทธ์ธ ๋ชจ๋)
.uplugin์์๋ง ๊ด๋ฆฌIntermediate, Binaries ์ญ์ Plugins/
โโ MySpartaLog/
โโ MySpartaLog.uplugin
โโ Source/
โโ MySpartaLog/
ํ๋ฌ๊ทธ์ธ์ ๊ธฐ๋ณธ ์์ ์ ํฌํจ์ํค๋ ค ํ์ง๋ง
๋ช ํํ ๊ธฐ์ค์ด ์์๋ค.
์ด๊ธฐ ์ ๊ทผ์ ๊ฒฝ๋ก ๊ธฐ๋ฐ ํ๋์ฝ๋ฉ ๋ฐฉ์์ด์๋ค.
ConstructorHelpers::FObjectFinder<UMaterial>(TEXT("/Plugin/..."));
| ๋ฌธ์ | ์ค๋ช |
|---|---|
| ๊ฐํ ๊ฒฐํฉ | ์ฝ๋๊ฐ ํน์ ๊ฒฝ๋ก์ ์์กด |
| ์ ์ง๋ณด์ ์ด๋ ค์ | ๊ฒฝ๋ก ๋ณ๊ฒฝ ์ ์ฝ๋ ์์ ํ์ |
| ํ์ฅ์ฑ ๋ถ์กฑ | ํ๋ก์ ํธ๋ณ ์ปค์คํฐ๋ง์ด์ง ๋ถ๊ฐ |
| ๋ก๋ฉ ๋ฌธ์ | ์ด๊ธฐํ ํ์ด๋ฐ ์์กด์ฑ ๋ฐ์ |
์ฆ, ์ฝ๋์ ์์ ์ด ์ง์ ์ฐ๊ฒฐ๋ ๊ตฌ์กฐ์๋ค.
[Plugin Content]
โ
[PrimaryDataAsset (์์
๋ฌถ์)]
โ
[DeveloperSettings (์ค์ ์ ํ)]
โ
[Plugin Code (Soft Reference ๋ก๋ฉ)]
| ๊ตฌ์ฑ ์์ | ์ญํ |
|---|---|
| Plugin Content | ๊ธฐ๋ณธ ์์ ์ ์ฅ |
| PrimaryDataAsset | ์์ ๋ฌถ์ ๊ด๋ฆฌ |
| DeveloperSettings | ํ๋ก์ ํธ๋ณ ์ค์ |
| Plugin Code | ์ค์ ๋ก์ง ์ฒ๋ฆฌ |
Plugins/MySpartaLog/Content/
โโ Data/
โโ Materials/
โโ Widgets/
UCLASS()
class UMySpartaLogDefaults : public UPrimaryDataAsset
{
GENERATED_BODY()
public:
TSoftObjectPtr<UMaterialInterface> DefaultMaterial;
TSoftClassPtr<UUserWidget> DefaultWidget;
};
UCLASS(Config=Game)
class UMySpartaLogSettings : public UDeveloperSettings
{
GENERATED_BODY()
public:
TSoftObjectPtr<UMySpartaLogDefaults> DefaultsAsset;
};
Settings โ DefaultsAsset โ ์ค์ ์์
๋ก๋
auto Settings = GetDefault<UMySpartaLogSettings>();
auto Defaults = Settings->DefaultsAsset.LoadSynchronous();
| ๊ตฌ๋ถ | Before | After |
|---|---|---|
| ์์ ์ฐธ์กฐ | ๊ฒฝ๋ก ํ๋์ฝ๋ฉ | DataAsset ๊ธฐ๋ฐ |
| ๊ฒฐํฉ๋ | ๋์ | ๋ฎ์ |
| ํ์ฅ์ฑ | ๋ฎ์ | ๋์ |
| ์ ์ง๋ณด์ | ์ด๋ ค์ | ์ฌ์ |
| ์ปค์คํฐ๋ง์ด์ง | ๋ถ๊ฐ๋ฅ | ๊ฐ๋ฅ |
- ์ด๋ฒ ์์ ์ ํต์ฌ์ ๋จ์ํ ํ๋ฌ๊ทธ์ธ ์์ฑ์ด ์๋๋ผ
๋ชจ๋ ๊ตฌ์กฐ์ ์์ ์์กด์ฑ ๋ถ๋ฆฌ ์ค๊ณ์๋ค.๋ชจ๋ โ .uplugin ๊ธฐ์ค ๊ด๋ฆฌ ์์ โ DataAsset์ผ๋ก ๋ฌถ๊ธฐ ์ค์ โ DeveloperSettings๋ก ๋ถ๋ฆฌ ๋ก๋ โ Soft Reference ์ฌ์ฉ