Unity调用安卓
16lz
2021-12-04
unity调android 本人目前发现android主activity必须继承UnityPlayerActivity,unity才能通过
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); jo.call("函数名")
或者
AndroidJavaClass jc = new AndroidJavaClass("包名+.主Activity");
jc.CallStatic("函数名");
unity调Android(一)中unity没法调用android 本文主要解决调用问题:
实现思路是通过activity切换调用的方式。受益于雨凇momo教程。让主activity继承UnityPlayerActivity,然后在主activity里通过
Intent intent = new Intent(mContext,"子activity"+.class);
intent.putExtra("Activity", "Activity");
this.startActivity(intent);
以下主要实现代码:
publicclassSDKDemoextendsUnityPlayerActivity{ContextmContext=null;JoyActivityjoyActivity;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);mContext=this;Intentintent=newIntent(mContext,JoyActivity.class);intent.putExtra("JoyActivity","JoyActivity");this.startActivity(intent);}publicvoidnativeInit(){Log.e("nativeInit","nativeInitEnter");joyActivity=newJoyActivity();joyActivity.nativeInit();Log.e("nativeInit","nativeInitEnd");}publicclassJoyActivityextendsActivity{UnityPlayerunityPlayer;//UnityPlayer.init()shouldbecalledbeforeattachingtheviewtoalayout.//UnityPlayer.quit()shouldbethelastthingcalled;itwillterminatetheprocessandnotreturn.protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);requestWindowFeature(Window.FEATURE_NO_TITLE);mUnityPlayer=newUnityPlayer(this);if(mUnityPlayer.getSettings().getBoolean("hide_status_bar",true))getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);intglesMode=mUnityPlayer.getSettings().getInt("gles_mode",1);booleantrueColor8888=false;mUnityPlayer.init(glesMode,trueColor8888);ViewplayerView=mUnityPlayer.getView();setContentView(playerView);playerView.requestFocus();}以上代码也可以参考unity调android(一)中的方式publicvoidnativeInit(){Log.e("nativeInit","##########################");}unity代码:voidStart(){jc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");jo=jc.GetStatic<AndroidJavaObject>("currentActivity");jo.Call("nativeInit");}
更多相关文章
- Android源代码下载过程及遇到的问题
- Android写文件到SDCard的一般过程和代码
- 史上最全!最经典!最无私的Android资料(书籍+代码)分享
- Android状态栏提醒(Notification,NotificationManager)的使用
- Android(安卓)自定义Progress Bar
- android 中 浏览器调用本地app应用
- Android(安卓)Universal Image Loader 源码分析
- android计时demo源代码
- Android(安卓)APK安装过程及原理详解