Unity3d插件开发与SDK对接实战 学习

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 }
TestPlugin.cpp
1 LIBRARY "TestPlugin"
2 
3 EXPORTS
4 
5 Add @1
TestPlugin.def
1 public class Test : MonoBehaviour {
2         
3     private void Start() {
4         Debug.Log(PluginDefine.Add(1,2));
5     }
6 }
Test.cs

 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 }
MyUnityActivity
 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>
AndroidManifest
 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 }
Test

 

posted on 2017-03-07 11:02  void87  阅读(512)  评论(0编辑  收藏  举报

导航