Android Native Project导入Unity项目后调用SendUnityMessage的问题

问题描述 投票:0回答:1

所以我们有一个 android 原生项目,主要是在 Kotlin 中。另外,我们在 Unity 中还有一个我们想要导入的小场景。

我们已经能够将 Unity 项目导出为 Android 项目,构建它,然后将 .aar 文件导入到我们的 Native 项目中。一切正常,我们甚至可以构建它并查看 Unity 场景。

在代码中,我们可以像这样持有对 Unity 的引用

protected var mUnityPlayer: UnityPlayer? = null
...
// later initialize it
mUnityPlayer = UnityPlayer(this, this)

// And call some methods
mUnityPlayer?.requestFocus()
mUnityPlayer?.windowFocusChanged(true)

但是不起作用的是调用UnitySendMessage。我们想发送一个音频文件让角色说话,但到目前为止我们无法调用该消息,一直收到无法识别该方法的错误消息。

// This line fails each time, says 'unrecognized method'
mUnityPlayer?.UnitySendMessage("modelName", "functiontoCall", "msg")

不识别可能是什么问题?是否有一些新的/不同的方式来传递消息? unity 和 Android studio 或我正在使用的 NDK 之间是否存在潜在的版本问题?

android android-studio unity3d 3d android-native-library
1个回答
0
投票

方法是

UnitySendMessage
.

示例可以在手册中找到Android插件.

using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { 
    jc.CallStatic("UnitySendMessage", "GameManager", "NativeAlert", "Hello World!"); 
} 

mUnityPlayer.UnitySendMessage("GameManager", "NativeAlert", "Hello World!");
© www.soinside.com 2019 - 2024. All rights reserved.