c++:
注意x86/x64,vs2015.

1 #include "stdafx.h" 2 3 4 extern "C" 5 { 6 int Add(int a, int b) { 7 return a + b; 8 } 9 }

1 LIBRARY "TestPlugin" 2 3 EXPORTS 4 5 Add @1

1 public class Test : MonoBehaviour { 2 3 private void Start() { 4 Debug.Log(PluginDefine.Add(1,2)); 5 } 6 }
jni:
java

1 package com.VoidGame.test; 2 import android.os.Bundle; 3 import android.util.Log; 4 5 import com.unity3d.player.UnityPlayerActivity; 6 7 public class MyUnityActivity extends UnityPlayerActivity { 8 9 public static MyUnityActivity Instance; 10 11 protected void onCreate(Bundle savedInstanceState){ 12 super.onCreate(savedInstanceState); 13 Instance = this; 14 Log.d("OverrideActivity","my android activity called!"); 15 } 16 17 public int java_add(int a,int b){ 18 return a+b; 19 } 20 }

1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 package="com.unity3d.player" 5 android:installLocation="preferExternal" 6 android:versionCode="1" 7 android:versionName="1.0"> 8 <supports-screens 9 android:smallScreens="true" 10 android:normalScreens="true" 11 android:largeScreens="true" 12 android:xlargeScreens="true" 13 android:anyDensity="true"/> 14 15 <application 16 android:theme="@style/UnityThemeSelector" 17 android:icon="@drawable/app_icon" 18 android:label="@string/app_name" 19 android:debuggable="true"> 20 <activity android:name="com.VoidGame.test.MyUnityActivity" 21 android:label="@string/app_name"> 22 <intent-filter> 23 <action android:name="android.intent.action.MAIN" /> 24 <category android:name="android.intent.category.LAUNCHER" /> 25 </intent-filter> 26 <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> 27 </activity> 28 </application> 29 </manifest>

1 /* 2 脚本名称: 3 脚本作者: 4 建立时间: 5 脚本功能: 6 版本号: 7 */ 8 using UnityEngine; 9 using UnityEngine.UI; 10 using System.Collections; 11 12 namespace VoidGame { 13 14 public class Test : MonoBehaviour { 15 16 private void Start() { 17 18 AndroidJavaClass cls = new AndroidJavaClass("com.VoidGame.test.MyUnityActivity"); 19 AndroidJavaObject instance = cls.GetStatic<AndroidJavaObject>("Instance"); 20 int result = instance.Call<int>("java_add",1,2); 21 GameObject.Find("Text").GetComponent<Text>().text = result.ToString(); 22 } 23 24 private void OnGUI() { 25 26 } 27 } 28 }