首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android插件的统一访问方法

android插件的统一访问方法
EN

Stack Overflow用户
提问于 2019-02-05 16:43:02
回答 2查看 1.9K关注 0票数 1

这是非常基本的,但我并没有从官方的Unity和YouTube视频教程中成功地实现它,所以我问。

我想从已经制作的aar插件中访问方法。默认情况下,它被选中为android插件。插件有以下代码:

代码语言:javascript
运行
复制
package alarm.company.com.unity;

public class myPlugin {

    public String myTest(int i){
        return "Hello your string number is: "+i;
    }

}

编译的aar插件被复制到团结文件夹中。下面是访问该方法的c#代码:

代码语言:javascript
运行
复制
const string PluginName = "alarm.company.com.unity.myPlugin";
static AndroidJavaClass _pluginClass;
static AndroidJavaClass _pluginInstance;

public Text text;

// Start is called before the first frame update
void Start()
{

    AndroidJavaClass plugin = new AndroidJavaClass(PluginName);
    string s = plugin.CallStatic<string>("myTest", 9);
    print(s);
    text.text = s;

}

text被分配,这个脚本被放在主摄像机上。但是,在模拟器中运行时,我不会返回任何文本,也不会更改文本对象。如何解决这一问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-05 18:34:20

统一插件开发是有点棘手的建立在一开始,但一旦你能够,它是相当强大的。

几件事。

1)您正在使用一个AndroidJavaClass,并试图在java中调用一个非静态方法。如果您想使用该类,插件中的方法应该是静态的。

2)否则,您将需要使用AndroidJavaObject来构造类,然后应该能够调用您的函数。

希望这能有所帮助!

使用非静态代码的示例:

统一码

代码语言:javascript
运行
复制
   using (AndroidJavaObject leetPlugin = new AndroidJavaObject("alarm.company.com.unity.myPlugin")){
        string s = leetPlugin.Call("myTest", 9);
        print(s);
        text.text = s;
    } 

Android代码

代码语言:javascript
运行
复制
public void myTest(int value) {
   return "Your value is " + value;
}
票数 2
EN

Stack Overflow用户

发布于 2019-02-06 08:12:57

有些建议是,当你使用插件来实现统一时:

  1. 使用gradle构建系统。它在Plugins/Android中生成mainTemplate文件。您可以编辑这个文件并将源代码设置为java类,这样您就不需要每次构建时都生成aar: sourceSets { srcDirs = 'src‘srcDirs += 'E:/AndroidStudioProjects/PathToJavaClasses’}}
  2. 如果您想从java代码发送一些内容到统一,您应该从统一和调用方法UnitySendMessage扩展您的活动。 公共类UnityPlayer.UnitySendMessage(UnityGameObjectName,MyUnityPlayerActivity扩展UnityPlayerActivity{ public void SendUnityMessage() { UNITY_FUNCTION_NAME,params);}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54539169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档