У меня есть два приложения
Нативное приложение для Android (скажем, NAA)
Unity Game (скажем, UG)
Я хочу интегрировать игру единства (UG) в приложение Native Android (NAA)
Я экспортировал игру «Единство» в Android, которая преобразована в библиотеку .aar, и я могу интегрировать UG в NAA. Но я хочу отправить счет игры Unity в приложение для Android.
AndroidManagerScript.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AndroidManager : MonoBehaviour {
private AndroidJavaObject curActivity;
public string strLog = "No Java Log";
static AndroidManager _instance;
public Text _text;
public static AndroidManager GetInstance()
{
if( _instance == null )
{
_instance = new GameObject("AndroidManager").AddComponent<AndroidManager>();
}
return _instance;
}
void Awake()
{
#if UNITY_ANDROID
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//AndroidJavaClass jc = new AndroidJavaClass("great.good.com.rolauncher");
curActivity = jc.GetStatic<AndroidJavaObject>("currentActivity");
#endif
_text = (Text)GameObject.Find ("Canvas/Text").GetComponent<Text>();
_text.text = strLog;
}
void Start ()
{
}
public void CallJavaFunc( string strFuncName, string strTemp )
{
if( curActivity == null )
{
strLog = curActivity + " is null";
return;
}
strLog = "Before call " + strFuncName;
//curActivity.Call(strFuncName, new object[] { strTemp } );
curActivity.Call( strFuncName, strTemp );
strLog = strFuncName + " is Called with param " + strTemp;
}
void SetJavaLog(string strJavaLog)
{
strLog = strJavaLog;
_text.text = strLog;
}
}
Я вызываю функцию javaTestFunc при выходе из игры
public void GQuit()
{
AndroidManager.GetInstance().CallJavaFunc( "javaTestFunc", "UnityJavaJarTest" );
Application.Quit();
}
Собственный код Android
import com.Hash.FC.UnityPlayerActivity;
public class MainActivity extends com.unity3d.player.UnityPlayerActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= (Button)findViewById(R.id.button);
Log.e("data","start");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this, UnityPlayerActivity.class);
startActivity(i);
}
});
}
public void javaTestFunc(String strFromUnity) {
//java to unity
//UnityPlayer.UnitySendMessage("AndroidManager", "SetJavaLog", strFromUnity + "HelloWorld");
Log.e("data",strFromUnity);
}
public static void testMethod(){
Log.e("data","data");
}
}
JavaTestFunc не запускается. Любая помощь будет оценена.