Unity3D呼叫第三方SDK(之一)從eclipse到Unity3D
http://blog.csdn.net/hiramtan/article/details/8927398
本篇展示在Unity3D中呼叫友盟SDK的實現方法.
開啟eclipse新建一個android工程:
設定package neme (需要注意:有一些資料註明package name需要與unity3D裡面的bundle identifier一致.
但是經過測試,就算是不一致,功能仍可實現....
找到SDK:需要匯入Unity3D自身的classes.jar和友盟 SDK。首先找到Unity3D安裝目錄下的classes.jar。具體路徑在你的Unity3D的安裝目錄下的這個資料夾中Editor\Data\PlaybackEngines\androidplayer\bin然後就是從網上下載的友盟 SDK了。
在Eclipse中匯入SDK,具體做法是右鍵eclipse工程,選擇最後一項:
選擇java build path後點擊add external jars,找到上面提到的classes.jar和友盟 SDK,分別匯入,點選ok,如下:
匯入成功後在eclipse中會多出下面兩項:
然後需要修改MainActivity.java如下所示(下面會有完整程式碼):
到這裡Unity3D部分的工作算是完成了,下面就是整合第三方SDK了。SDK要求的配置資訊及邏輯參考SDK官網的開發文件。
這裡用的是友盟的SDK,參照友盟SDK的開發者文件。
這時我們需要在友盟網站新增一個應用,網站會隨機分配一個AppKey。怎樣註冊友盟服務和怎樣新增應用見官方說明。
(如果我們需要在遊戲中新增聯通付費SDK,當然不需要與友盟相關的工作。而是去聯通開發者網站新增應用並得該應用內建付費的AppKey)
我這裡在友盟新增的應用資訊如下,這裡我們需要獲知友盟分配的AppKey。如下:
友盟官網要求配置AndroidManifest.xml如下,具體看友盟官方開發文件。
為此我們在Eclipse中配置AndroidManifest.xml如下(主要就是將友盟要求新增的部分貼上進去):
修改如下:
- <?xmlversion="1.0"encoding="utf-8"?>
-
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.example.test"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk
- android:minSdkVersion="8"
- android:targetSdkVersion="17"/>
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme">
- <activity
- android:name="com.example.test.MainActivity"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- <meta-dataandroid:value="523f9df156240b085a054288"android:name="UMENG_APPKEY"></meta-data>
- <meta-dataandroid:value="Channel ID"android:name="UMENG_CHANNEL"/>
- </application>
- <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
- <uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>
- <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission>
- </manifest>
友盟官網要求新增引用import com.umeng.analytics.MobclickAgent,友盟官網要求如下:
參照官網開發文件呼叫SDK中封裝的方法,最終修改MainActivity.java如下:
- package com.example.test;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- import com.unity3d.player.UnityPlayerActivity;//Unity3D
- import com.umeng.analytics.MobclickAgent;//友盟
- publicclass MainActivity extends UnityPlayerActivity {
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //setContentView(R.layout.activity_main);
- }
- @Override
- publicboolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- returntrue;
- }
- publicvoid onResume() {
- super.onResume();
- MobclickAgent.onResume(this);
- }
- publicvoid onPause() {
- super.onPause();
- MobclickAgent.onPause(this);
- }
- publicvoid onEvent()
- {
- MobclickAgent.onEvent(this, "testevent");
- System.out.println("test");
- }
- }
然後在Unity3D中建立如下目錄,其中AndroidManifest和res資料夾是從Eclipse專案中複製出來的(找到工程目錄直接複製到Unity3D目錄中即可)。
bin資料夾和libs資料夾是自己建立的,其中bin資料夾中放eclipse匯出的jar包,libs中放第三方jar包。如下:
在Unity3D Test.cs中新增程式碼呼叫在eclipse中建立的方法onEvent();
- using UnityEngine;
- using System.Collections;
- publicclass Test : MonoBehaviour
- {
- AndroidJavaClass clas;
- AndroidJavaObject obj;
- // Use this for initialization
- void Start()
- {
- clas = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- obj = clas.GetStatic<AndroidJavaObject>("currentActivity");
- }
- void OnGUI()
- {
- if (GUI.Button(new Rect(Screen.width * 0.3f, Screen.height * 0.3f, Screen.width * 0.3f, Screen.height * 0.3f), "Click"))
- obj.Call("onEvent");
- }
- }
下面就可以看到結果了:
1.執行應用點選click後logcat如下:
2.在友盟官網檢視自定義事件:
能看到自定義事件的統計,說明在Unity3D中呼叫友盟SDK成功。呼叫其它SDK方法同理。
如有任何建議請發郵件至[email protected]
相關推薦
Unity3D呼叫第三方SDK(之一)從eclipse到Unity3D
http://blog.csdn.net/hiramtan/article/details/8927398 本篇展示在Unity3D中呼叫友盟SDK的實現方法. 開啟eclipse新建一個android工程: 設定package neme (需要注意:有一
【Unity3D自學記錄】 Unity3D呼叫第三方SDK之友盟
本篇展示在unity3d中呼叫友盟SDK的實現方法,呼叫聯通/移動付費SDK同理,下面是製作流程。 首先附上專案原始碼地址:https://github.com/hiramtan/unity3d-testsdk SDK下載及使用方法說明見官方開發文件:http://dev.umeng.com/
關於呼叫第三方sdk
1.微信,qq分享 獲取開發者平臺的appid和secretid,在app.gradle裡面進行配置 2.高德地圖,也是獲得value值 <meta-data android:name="com.amap.api.v2.apikey" androi
呼叫第三方地圖導航,高德、百度、谷歌,無需引用sdk
先判斷是否存在地圖,存在就可以進入導航,沒有的話就預設進入市場下載app,程式碼如下: i1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View
深入淺出聊Unity3D項目優化:從Draw Calls到GC (難度2 推薦5)
分配 shade 觸發 比較 抉擇 share 關鍵字 兩個 聲明 原文出處: 慕容小匹夫的博客(@慕容小匹夫) 前言: 剛開始寫這篇文章的時候選了一個很土的題目。。。《Unity3D優化全解析》。因為這是一篇臨時起意才寫的文章,而且陳述的都是既有的事實,因而給自己“
Unity接第三方SDK時遇到的坑
log over err you tail 官方 銀聯 string 渲染 1、大部分SDK的方法需要在線程中執行,一般會放在主線程裏執行,安卓中主線程一般用於UI渲染。 this.runOnUiThread(new Runnable() {
yii2.0 集成/引入第三方sdk
控制器 es2017 yii2.0 nbsp 技術分享 文件夾 ++ 例子 正常 首先下載自己要使用的sdk包放到vendor文件夾下面:我以接入ping++為例子如下: 然後在入口文件出引入文件的配置文件: 下面就是在控制器使用了: 下面就可以根據自己要使用的的
簡便方法搞定第三方SDK的Jar包在DelphiXE5中的引入
earch html targe bject jar itl clas article .html 簡便方法搞定第三方SDK的Jar包在DelphiXE5中的引入 (2014-02-21 17:30:17) 轉載▼ 標簽: android delphi
移動web:原生開發打包,嵌入h5頁面 webApp:全部都是H5開發的應用 混合APP:使用第三方開發平臺從apicloud,appcan,hbuilder等開發,cordova技術打包 原生APP:就是eclipse開發或者studio等工具開發
應用 手機 .com net ack 自動連接 pan 經驗 使用 論壇43213 移動端webApp兼容問題解決 談談App混合開發 Hybrid APP混合開發的一些經驗和總結 PhoneGap是一個采用HTML,CSS和JavaScript的技術,創建
Linux學習之一-從三個重要人物的故事和一張思維導圖說起
工具 困難 一個人 人工智 計算 全世界 str 三方 微軟 Linux是一套自由加開放源代碼的類Unix操作系統,誕生於1991年10月5日(第一次正式向外公布),由芬蘭學生Linus Torvalds和後來陸續加入的眾多愛好者共同開發完成。 Linux是一個基於POSI
iOS開發—呼叫第三方地圖導航
專案裡面要求點擊發送的位置, 需要導航, 導航兩種實現方式 (整合第三方SDK、URL跳轉第三方應用) 專案要求實現直接跳轉 所以接下來做的是實現URL跳轉第三方地圖來導航了專案實現如下的效果: 思路:傳入的目的地經緯度,再呼叫第三方的導航 第三方導航
java使用httpclient呼叫第三方介面
java使用httpclient呼叫第三方介面 HttpClientUtil工具類 package com.fz.util; import java.io.File; import java.net.URL; import java.util.ArrayList; im
WebService呼叫第三方服務(中英文翻譯)
本篇部落格內容是應用webservice知識來獲取第三方服務,這裡以中英文轉換的服務為例。服務釋出地址:http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl。如果需要其他提供其他服務,可百度搜索webxml。 1.新
Qt Creator 呼叫第三方庫libZPlay 解析音訊檔案 標題、專輯、檔名、藝術家
libZPlay libZPlay庫集成了所有支援格式(mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm )的編碼解碼器。 一、官網下載sdk http://libzplay.sourceforge.net/ 二、pro檔案修改:
呼叫第三方介面獲取資料寫入資料庫
系統框架:springboot(和框架沒有什麼太大關係,僅記錄一下) 呼叫路徑:controller→service 第三方介面:http://xx.xxx.com:9905/api/list?transtime=20181017105600&token=abcdefghijklmn
Android提供aar包給Unity3d呼叫
1.aar包製作 下面通過手機振動為例:PhoneVibrate package com.gamestar.nativesoundpool; import android.Manifest; import android.app.Activity; import android.app.S
python呼叫第三方工具(命令)的方法及區別
一 前言 在上篇《關於os.popen你可能不知道的》中,提到了呼叫第三方工具或命令的os.popen方法,同時也指出了使用中可能遇到的坑。本文就介紹下python提供了哪些方法可以執行第三方工具或命令,以及它們的用法和區別。 二 主要方法 1. os.system 這
第三方SDK中的巨坑
開發中經常會使用第三方SDK,尤其是那些看不到原始碼的SDK。出現了崩潰真是無處下手。由於最近又遇到一個之前遇到的錯誤,今天分享一下: 執行程式會出現如下錯誤資訊: was compiled with optimization - stepping may behave oddly;
Android平臺下JNI呼叫第三方so庫
首先說一下在網上查詢資料時,對於呼叫第三方so庫,有人說有兩種方法: 1. 對於so庫的API符合JNI格式(即使用javah指令生成的標頭檔案中那種格式),可以在Java程式碼中宣告它對應的native方法,直接調 用。 &
如何呼叫第三方API實現圖片上傳?
這裡是修真院後端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析後端知識/技能,本篇分享的是: 【如何呼叫第三方API實現圖片上傳? 】 1.背景介紹 在