UE4跨模塊調用示例

A模塊(項目主模塊)

Class A_Saple

B模塊(新建的模塊,非主模塊)

Class B_Saple

問題:在B_Saple中調用A_Saple的函數?

解決方式

1.在A模塊的.Build.cs文件的 PublicDependencyModuleNames.AddRange(
                new string[] 
                {
                    "...之前要必須包含的模塊"
                    "B"
                 }
             );

2.在Class B_Saple.h頭部聲明DECLARE_MULTICAST_DELEGATE(FOnSample)代理

類似這樣:

static FOnSample OnSample;
static FOnSample& GetSampleDelegate() { returnOnSample; }

Class B_Saple.cpp頭部聲明靜態變量

FOnSampleB_Saple::OnSample;

3.在A_Saplel類中找個合適的地兒給這個代理綁定函數

類似這樣:

B_Saple::GetSampleDelegate().AddUObject(this, &A_Saple::Test);

這樣的話,在B中想調用A中的綁定好的Test函數時,只需要執行多播就行,A模塊中的綁定函數會自動接收這邊的執行

if (OnSample.IsBound())

{
OnSample.Broadcast();
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章