diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/AndroidManifest.xml b/app/AndroidManifest.xml
index 0466c35..7f74688 100644
--- a/app/AndroidManifest.xml
+++ b/app/AndroidManifest.xml
@@ -12,7 +12,9 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 8ec6ed9..ad8d19b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -84,6 +84,13 @@ android.applicationVariants.all { variant ->
include "js/**"
into outputDir
}
+ def sourceDirUnity = "/Users/zhl/Documents/workspace/unity/first/android/first/src/main/assets/"
+
+ copy {
+ from "${sourceDirUnity}"
+ include "bin/**"
+ into outputDir
+ }
// copy {
// from "${sourceDir}/main.js"
@@ -101,4 +108,5 @@ dependencies {
implementation project(':libcocos2dx')
implementation "androidx.appcompat:appcompat:1.0.2"
+ implementation files('../libs/unity-classes.jar')
}
\ No newline at end of file
diff --git a/app/libs/arm64-v8a/libil2cpp.so b/app/libs/arm64-v8a/libil2cpp.so
new file mode 100755
index 0000000..38cea66
Binary files /dev/null and b/app/libs/arm64-v8a/libil2cpp.so differ
diff --git a/app/libs/arm64-v8a/libmain.so b/app/libs/arm64-v8a/libmain.so
new file mode 100755
index 0000000..7b286c5
Binary files /dev/null and b/app/libs/arm64-v8a/libmain.so differ
diff --git a/app/libs/arm64-v8a/libunity.so b/app/libs/arm64-v8a/libunity.so
new file mode 100755
index 0000000..994c695
Binary files /dev/null and b/app/libs/arm64-v8a/libunity.so differ
diff --git a/app/libs/armeabi-v7a/libMonoPosixHelper.so b/app/libs/armeabi-v7a/libMonoPosixHelper.so
new file mode 100755
index 0000000..feeba3f
Binary files /dev/null and b/app/libs/armeabi-v7a/libMonoPosixHelper.so differ
diff --git a/app/libs/armeabi-v7a/libil2cpp.so b/app/libs/armeabi-v7a/libil2cpp.so
new file mode 100755
index 0000000..7ca877e
Binary files /dev/null and b/app/libs/armeabi-v7a/libil2cpp.so differ
diff --git a/app/libs/armeabi-v7a/libmain.so b/app/libs/armeabi-v7a/libmain.so
new file mode 100755
index 0000000..e76b1ce
Binary files /dev/null and b/app/libs/armeabi-v7a/libmain.so differ
diff --git a/app/libs/armeabi-v7a/libmonobdwgc-2.0.so b/app/libs/armeabi-v7a/libmonobdwgc-2.0.so
new file mode 100755
index 0000000..3368ceb
Binary files /dev/null and b/app/libs/armeabi-v7a/libmonobdwgc-2.0.so differ
diff --git a/app/libs/armeabi-v7a/libunity.so b/app/libs/armeabi-v7a/libunity.so
new file mode 100755
index 0000000..ef3873b
Binary files /dev/null and b/app/libs/armeabi-v7a/libunity.so differ
diff --git a/app/libs/x86/libMonoPosixHelper.so b/app/libs/x86/libMonoPosixHelper.so
new file mode 100755
index 0000000..fd9f1d1
Binary files /dev/null and b/app/libs/x86/libMonoPosixHelper.so differ
diff --git a/app/libs/x86/libil2cpp.so b/app/libs/x86/libil2cpp.so
new file mode 100755
index 0000000..bea8341
Binary files /dev/null and b/app/libs/x86/libil2cpp.so differ
diff --git a/app/libs/x86/libmain.so b/app/libs/x86/libmain.so
new file mode 100755
index 0000000..6bec807
Binary files /dev/null and b/app/libs/x86/libmain.so differ
diff --git a/app/libs/x86/libmonobdwgc-2.0.so b/app/libs/x86/libmonobdwgc-2.0.so
new file mode 100755
index 0000000..82c8d42
Binary files /dev/null and b/app/libs/x86/libmonobdwgc-2.0.so differ
diff --git a/app/libs/x86/libunity.so b/app/libs/x86/libunity.so
new file mode 100755
index 0000000..99007aa
Binary files /dev/null and b/app/libs/x86/libunity.so differ
diff --git a/app/src/com/fitchgc/headlesscocos/MainActivity.java b/app/src/com/fitchgc/headlesscocos/MainActivity.java
index fd1af48..148aed1 100644
--- a/app/src/com/fitchgc/headlesscocos/MainActivity.java
+++ b/app/src/com/fitchgc/headlesscocos/MainActivity.java
@@ -1,20 +1,41 @@
package com.fitchgc.headlesscocos;
import android.app.Activity;
+import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.content.res.Configuration;
import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.Window;
+
+import com.unity3d.player.UnityPlayer;
import org.cocos2dx.lib.Cocos2dxHelper;
import org.cocos2dx.lib.CocosJSHelper;
public class MainActivity extends Activity implements Cocos2dxHelper.Cocos2dxHelperListener {
+ protected UnityPlayer mUnityPlayer;
+ protected String updateUnityCommandLineArguments(String cmdLine)
+ {
+ return cmdLine;
+ }
@Override
protected void onCreate(Bundle savedInstanceState) {
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
+
+ String cmdLine = updateUnityCommandLineArguments(getIntent().getStringExtra("unity"));
+ getIntent().putExtra("unity", cmdLine);
+
+ mUnityPlayer = new UnityPlayer(this);
+ setContentView(mUnityPlayer);
+ mUnityPlayer.requestFocus();
+
+// setContentView(R.layout.activity_main);
onLoadNativeLibraries();
Cocos2dxHelper.init(this);
CocosJSHelper.initJSEnv(getApplicationContext());
@@ -40,4 +61,94 @@ public class MainActivity extends Activity implements Cocos2dxHelper.Cocos2dxHel
public void runOnGLThread(Runnable pRunnable) {
}
+
+ // begin for unity
+ @Override protected void onNewIntent(Intent intent)
+ {
+ // To support deep linking, we need to make sure that the client can get access to
+ // the last sent intent. The clients access this through a JNI api that allows them
+ // to get the intent set on launch. To update that after launch we have to manually
+ // replace the intent with the one caught here.
+ setIntent(intent);
+ }
+
+ // Quit Unity
+ @Override protected void onDestroy ()
+ {
+ mUnityPlayer.destroy();
+ super.onDestroy();
+ }
+
+ // Pause Unity
+ @Override protected void onPause()
+ {
+ super.onPause();
+ mUnityPlayer.pause();
+ }
+
+ // Resume Unity
+ @Override protected void onResume()
+ {
+ super.onResume();
+ mUnityPlayer.resume();
+ }
+
+ @Override protected void onStart()
+ {
+ super.onStart();
+ mUnityPlayer.start();
+ }
+
+ @Override protected void onStop()
+ {
+ super.onStop();
+ mUnityPlayer.stop();
+ }
+
+ // Low Memory Unity
+ @Override public void onLowMemory()
+ {
+ super.onLowMemory();
+ mUnityPlayer.lowMemory();
+ }
+
+ // Trim Memory Unity
+ @Override public void onTrimMemory(int level)
+ {
+ super.onTrimMemory(level);
+ if (level == TRIM_MEMORY_RUNNING_CRITICAL)
+ {
+ mUnityPlayer.lowMemory();
+ }
+ }
+
+ // This ensures the layout will be correct.
+ @Override public void onConfigurationChanged(Configuration newConfig)
+ {
+ super.onConfigurationChanged(newConfig);
+ mUnityPlayer.configurationChanged(newConfig);
+ }
+
+ // Notify Unity of the focus change.
+ @Override public void onWindowFocusChanged(boolean hasFocus)
+ {
+ super.onWindowFocusChanged(hasFocus);
+ mUnityPlayer.windowFocusChanged(hasFocus);
+ }
+
+ // For some reason the multiple keyevent type is not supported by the ndk.
+ // Force event injection by overriding dispatchKeyEvent().
+ @Override public boolean dispatchKeyEvent(KeyEvent event)
+ {
+ if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
+ return mUnityPlayer.injectEvent(event);
+ return super.dispatchKeyEvent(event);
+ }
+
+ // Pass any events not handled by (unfocused) views straight to UnityPlayer
+ @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); }
+ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); }
+ @Override public boolean onTouchEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); }
+ /*API12*/ public boolean onGenericMotionEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); }
+
}
\ No newline at end of file
diff --git a/libs/unity-classes.jar b/libs/unity-classes.jar
new file mode 100644
index 0000000..a073e2e
Binary files /dev/null and b/libs/unity-classes.jar differ
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 36ae9a7..2486a46 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1,3 +1,4 @@
HeadlessCocos
+ Game view
\ No newline at end of file
diff --git a/res/values/styles.xml b/res/values/styles.xml
new file mode 100644
index 0000000..e334a5f
--- /dev/null
+++ b/res/values/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+