Skip to content
This repository was archived by the owner on May 31, 2025. It is now read-only.
Prev Previous commit
Next Next commit
Add hooks for direct communication between C++ and Unity
  • Loading branch information
tomduncalf committed Jan 26, 2021
commit ae41734b813cd6cd813c3a1fed04ea79e8ccb6e3
14 changes: 12 additions & 2 deletions ios/RNUnityViewManager.m → ios/RNUnityViewManager.mm
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#import "RNUnityViewManager.h"
#import "RNUnityView.h"

// TODO FIXME
#include "../../../../../../../modules/roli_studio_engine/Misc/UnityBridge.h"

@implementation RNUnityViewManager

@synthesize bridge = _bridge;
Expand All @@ -11,16 +14,23 @@ - (UIView *)view
{
self.currentView = [[RNUnityView alloc] init];
if ([UnityUtils isUnityReady]) {
[self.currentView setUnityView: [GetAppController() unityView]];
[self.currentView setUnityView: (RNUnityView*)[GetAppController() unityView]];
} else {
[UnityUtils createPlayer:^{
[self.currentView setUnityView: [GetAppController() unityView]];
[self.currentView setUnityView: (RNUnityView*)[GetAppController() unityView]];
}];
[GetAppController() setUnityMessageHandler: ^(const char* message) {
roli::studio::UnityBridge::instance().onUnityMessage (message);

[_bridge.eventDispatcher sendDeviceEventWithName:@"onUnityMessage"
body:[NSString stringWithUTF8String:message]];
}];
}

roli::studio::UnityBridge::instance().setSendMessageToUnityCallback ([](const char* message) {
UnityPostMessage(@"UnityMessageManager", @"onRNMessage", [NSString stringWithUTF8String: message]);
});

return self.currentView;
}

Expand Down