mirror of
https://github.com/storytold/EventCenterPlugin.git
synced 2026-10-07 00:18:29 +00:00
⚡ UE Plugin: Bind Redis PubSub-based events (WIP)
- C++ 74.5%
- Python 15.3%
- C# 10.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| Source/EventCenterPlugin | ||
| .gitignore | ||
| EventCenterPlugin.uplugin | ||
| publisher.py | ||
| README.md | ||
| requirements.txt | ||
| server.py | ||
EventCenterPlugin
(WIP) Subscribe to events.
I tried Redis PubSub first, but the plugin I found was buggy. I'm trying WebSockets now.
Installation
- Install python and dependencies
# Windows works just as Linux,
python -m venv python
# Except for activating the venv
.\python\Scripts\Activate.ps1
# Then it's easy again,
pip install -r requirements.txt
-
Install the BlueprintWebSocket plugin (paid/commercial) from the Epic/Unreal Marketplace. It's not expensive and has great documentation.
-
You need to adjust the main project's build dependencies (
ProjectName.Build.cs) to include the following,
PublicDependencyModuleNames.AddRange(new string[] {
// Preset dependencies
"Core", "CoreUObject", "Engine", "InputCore",
"...",
// EventCenter
"BlueprintWebSocket",
"EventCenterPlugin",
});
Unfocused Audio needs to be set in Config/DefaultEngine.ini, otherwise the game won't play audio when unfocused,
[Audio]
UnfocusedVolumeMultiplier=1.0
Usage
It's expected to wire events up in the Level Blueprint.
Python testing
I stand up a websocket+pubsub system like so:
PS C:\Users\echel\OneDrive\Documents\Unreal Projects\RedisTestProject\Plugins\EventCenterPlugin> .\python\Scripts\Activate.ps1
Notes
A few collected notes, since I'm still new to Unreal engine and I'm cleaning up my debug code.
To log to the game screen,
GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Red, "Message goes here");
Time based handling in Tick(),
void AEventSourceActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
float time = GetGameTimeSinceCreation();
if (time - timerLastTime > 15.0) {
timerLastTime = time;
// Do the thing
}
}