UnitySendMessage 不适用于非统一活动

Tal*_* Sh 5 android unity-game-engine

我正在开发一个 android 插件,它应该启动另一个活动(使用 UI 和一切......)。此活动(当然不是从 UnityPlayerActivity 继承的)应该向 Unity C# 代码发送消息。我正在尝试调用 UnityPlayer.UnitySendMessage,在发送消息之前我看到了我的日志,但C# 端没有得到它(没有引发异常)。

这是从其他活动调用的回调:

@Override
public void generatePayload() {
   try {
      Log.v(TAG, "generatePayload was triggered");
      UnityPlayer.UnitySendMessage("AndroidObject", "generatePayloadMessage", "");
   } catch (Exception ex) {
      Log.e(TAG, "failed to send message to unity");
   }
}
Run Code Online (Sandbox Code Playgroud)
  • 我尝试从统一主要活动调用此方法,并且在统一端成功接收到消息。
  • 我也尝试从其他活动发送消息(我应该这样做)但在主线程中它也不起作用......

有什么建议?当 UnityActivity 不在前台时,我不能向 unity 发送消息吗?如果是这种情况 - 我该怎么办?

urf*_*rfx 2

上面的代码中没有发送消息/字符串,只有目标对象和方法,您正在发送一个空字符串到generatePayLoadMessage([没有发送任何内容])

尝试

UnityPlayer.UnitySendMessage("AndroidObject", "generatePayloadMessage", "Hello world");

另请说明您在 Unity 方面设置了什么来处理该消息。