Android库和Unity插件通信问题。无法引用枚举类型并将按钮事件传递给android

时间:2014-01-10 15:59:28

标签: android plugins enums unity3d

我是Unity的新手,我正在尝试为Android库创建一个Unity插件,我面临以下问题:

1)我找不到将后退按钮事件传递给Android库的方法。我设法做的是通过设置以下行将触摸事件传递到Android端的活动

<meta-data android:name="unityplayer.ForwardNativeEventsToDal vik" android:value="true" />

<activity android:name="com.unity3d.player.UnityPlayerProxyActivity" ... >

中的AndroidManifest

但是,我不能以我不必更改库中的代码的方式传递后退按钮事件

我现在在剧本中做的是

public void Update() {

if(Input.GetKeyDown(KeyCode.Escape))
Application.Quit();
} 

但是我需要选项将我捕获的那个事件传递给库,而不是在Unity层处理它。

2)我试图在我的脚本中引用我在Android库中的枚举。

例如,我在Place.java文件中有以下枚举

package com.myapp.constants;

public enum Place { TOP, BOTTOM, RIGHT, LEFT }

我希望找到一种从我的脚本中引用它的方法。

我尝试过类似的东西:

AndroidJavaClass topPlace = new AndroidJavaClass("com.myapp.constants.TOP");

但没有运气。

任何人都可以帮助解决这些问题吗?任何帮助表示赞赏...

2 个答案:

答案 0 :(得分:3)

2)Java中的枚举是一个常规类,其枚举值是该类的实例,存储在静态字段中。所以为了得到它们,你要做到这一点:

AndroidJavaObject topValue = new AndroidJavaClass("com.myapp.constants.Place").GetStatic<AndroidJavaObject>("TOP");

答案 1 :(得分:0)

很抱歉不得不发表评论作为答案,因为我没有足够的代表评论以前的ans。 您可能想在统一论坛中查看此主题

http://forum.unity3d.com/threads/219950-Call-a-method-in-an-activity-(using-AndroidJavaObject-)

它允许您将信息从Unity传递到Java。希望它有所帮助。