diff --git a/lib/src/io/mobile_unity_widget_controller.dart b/lib/src/io/mobile_unity_widget_controller.dart index f2080b3a..5c226956 100644 --- a/lib/src/io/mobile_unity_widget_controller.dart +++ b/lib/src/io/mobile_unity_widget_controller.dart @@ -36,7 +36,6 @@ class MobileUnityWidgetController extends UnityWidgetController { unityWidgetState, unityId: id, ); - await UnityWidgetPlatform.instance.init(id); return controller; } diff --git a/lib/src/io/unity_widget.dart b/lib/src/io/unity_widget.dart index 86832d95..dcd23606 100644 --- a/lib/src/io/unity_widget.dart +++ b/lib/src/io/unity_widget.dart @@ -155,6 +155,7 @@ class _UnityWidgetState extends State { @override Future dispose() async { + widget.onUnityDetached?.call(); if (!kIsWeb) { if (_nextUnityCreationId > 0) --_nextUnityCreationId; } @@ -199,6 +200,8 @@ class _UnityWidgetState extends State { final controller = await MobileUnityWidgetController.init(id, this); _controller = controller; widget.onUnityCreated(controller); + await UnityWidgetPlatform.instance.init(id); // init is called here so onCreated called before onAttached + // if (widget.onUnityAttached != null) // widget.onUnityAttached!(); diff --git a/lib/src/web/web_unity_widget_controller.dart b/lib/src/web/web_unity_widget_controller.dart index dcd3dc7e..af719cca 100644 --- a/lib/src/web/web_unity_widget_controller.dart +++ b/lib/src/web/web_unity_widget_controller.dart @@ -35,6 +35,9 @@ class WebUnityWidgetController extends UnityWidgetController { MethodChannel? _channel; + @override + int get id => throw UnimplementedError("Platform does not support id"); + /// used for cancel the subscription StreamSubscription? _onUnityMessageSub, _onUnitySceneLoadedSub,