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 EXPORTS4 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 28 14 15 20 22 28 2923 2624 25 27
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("Instance");20 int result = instance.Call ("java_add",1,2);21 GameObject.Find("Text").GetComponent ().text = result.ToString();22 }23 24 private void OnGUI() {25 26 }27 }28 }