2016-10-13 60 views
-1

我寫了一個android庫,它的擴展名是.jar。我想在Unity.I中使用onKeyDown()方法,但是當我作爲AndroidJavaObject調用時,腳本不起作用。我怎樣才能在Unity中調用onKeyDown方法?Unity Android插件 - 如何調用onKeyDown方法?

編輯: 統一代碼C#:

public AndroidJavaClass jc; 
jc = new AndroidJavaClass("com.unitylib.unity.unitylib.StartActivity"); 
jc.Call ("onKeyDown"); 

的Android代碼:

public int x = 0 ; 
public boolean onKeyDown(int keyCode, KeyEvent event) { 

if (keyCode == event.KEYCODE_VOLUME_UP) { 

     x = 2 ; 

    } 
return true; 
} 

,也是我試圖開始UnityActivity但它沒有工作。

+0

您可能會得不到答案,如果你不提供代碼 – Programmer

+0

我添加代碼。謝謝你的回答。 – exploit4

+0

這是你在這裏試圖達到的目標。這個插件到底想要做什麼? 'onKeyDown'函數是一個自動調用的回調函數...爲什麼直接調用'onKeyDown'函數? – Programmer

回答

1

如果沒有對象引用,則不能調用AndroidJavaClass.Call,因爲它是公共的,但不是靜態的。

所以要麼將對象引用(類的實例)作爲AndroidJavaObject然後再調用。

或更容易一些,如果可能的話做的onkeydown靜態的,並使用AndroidJavaClass.CallStatic

+0

我不能讓靜態onKeyDown它給錯誤和@Programmer說onKeyDown函數是在其他評論中的回調函數。我如何檢測音量增大,音量降低和headsethook按鈕統一? – exploit4

+0

簡而言之,就像這樣:製作一個監聽事件的插件,然後將消息發送給Unity。檢查了這一點:http://stackoverflow.com/a/27166551/5756888 – turnipinrut

+0

感謝您的回答。我會嘗試。 – exploit4