Diarkis Module のカスタマイズ
ConnectUdpAsync 関数への変更
// TutorialSubsystem.cpp
...
// UDP サーバに接続
// Connect to the UDP server
UE_LOG(LogTemp, Log, TEXT("Connecting to the UDP server..."));
bool result = DiarkisInterfaceInstance->ConnectUdpAsync(endpoint);UE_LOG(LogTemp, Log, TEXT("Connected to the UDP server")); // <-- 削除コールバック関数の実装
// TutorialSubsystem.h ... #include "DiarkisUdpBase.h" class DiarkisUdpTutorial; ... // Diarkis Module の Udp 機能をアプリ側でカスタマイズするために DiarkisUdpBase を継承したクラスを実装します。 // Implement a class that inherits from DiarkisUdpBase to customize the Udp functionality of the Diarkis Module on the application side. class DiarkisUdpTutorial : public Diarkis::DiarkisUdpBase { private: void OnConnect(const DiarkisConnectionEventArgs& args) override; };// TutorialSubsystem.cpp ... void DiarkisUdpTutorial::OnConnect(const DiarkisConnectionEventArgs& args) { if (args.GetStatus() == Diarkis::DiarkisConnectStatus::DCS_Timeout) { UE_LOG(LogTemp, Error, TEXT("Timeout occurred while connecting to the UDP server")); return; } UE_LOG(LogTemp, Log, TEXT("Connected to the UDP server")); }// TutorialSubsystem.h ... #include "DiarkisUdpBase.h" #include "DiarkisInterfaceBase.h" ... class DiarkisUdpTutorial; class DiarkisInterfaceTutorial; ... // DiarkisInterface が内部で管理する各機能のモジュールをアプリ固有のものに置き換えるために DiarkisInterfaceBase を継承したクラスを実装します。 // Implement a class that inherits from DiarkisInterfaceBase to replace each functional module managed internally by DiarkisInterface with application-specific ones. class DiarkisInterfaceTutorial : public Diarkis::DiarkisInterfaceBase { public: DiarkisInterfaceTutorial(const std::string& uid) : Diarkis::DiarkisInterfaceBase(uid) {}; bool SetupUdp() override; };// TutorialSubsystem.cpp bool DiarkisInterfaceTutorial::SetupUdp() { // アプリ側でカスタマイズした DiarkisUdpTutorial クラスを作成します // Create a DiarkisUdpTutorial class customized on the application side if (udpBase_ == nullptr) { udpBase_ = Diarkis::DiarkisAllocShared<DiarkisUdpTutorial>(); } DiarkisInterfaceBase::SetupUdp(); return true; }// TutorialSubsystem.h UCLASS() class TUTORIAL_API UTutorialSubsystem : public UGameInstanceSubsystem { ... private: std::shared_ptr<DiarkisInterfaceTutorial> DiarkisInterfaceInstance;// TutorialSubsystem.cpp void UTutorialSubsystem::Initialize(FSubsystemCollectionBase& Collection) { ... // DiarkisInterfaceインスタンスの作成 // Create DiarkisInterface instance DiarkisInterfaceInstance = Diarkis::DiarkisAllocShared<DiarkisInterfaceTutorial>("AAAA");
最終更新
役に立ちましたか?

