編輯:關於Android編程
環境:AndroidStudio 2.1.1 + Unity5.4.0f1
大體步驟如下:
創建AndroidStudio工程 生成jar 將jar導入Unity工程廢話不多說,一步一步完成就好……
1.1 設置好名稱、路徑、包名。

1.2 選擇SDK

1.3 選擇 Empty Activity

1.4 不改名,直接finish

到這裡,工程就創建完畢了,接下來創建一個Module來封裝幾個簡單的方法,然後生成Jar文件。
2.1 創建Module 點擊File->New->New Module

2.2 選擇Anroid Library

2.3 輸入Library的名字和包名,愛輸啥輸啥,看喜好,這裡我的包名書寫的和新建的項目包名不同,這裡為org.lzy.test.myjar

2.4 找到Unity中的classes.jar導入到AndroidStudio工程,那個文件路徑大約在Unity安裝路徑的這裡(5.x版本的Unity):
\EditZ喎?/kf/ware/vc/" target="_blank" class="keylink">vclxEYXRhXFBsYXliYWNrRW5naW5lc1xBbmRyb2lkUGxheWVyXFZhcmlhdGlvbnNcbW9ub1xSZWxlYXNlXENsYXNzZXNcY2xhc3Nlcy5qYXI8YnIgLz4NCtXStb2687i01sbV4rj2zsS8/rW9uNWyxdDCvai1xExpYnJhcnnW0LXEbGlic87EvP7W0KGjPGJyIC8+DQo8aW1nIGFsdD0="這裡寫圖片描述" src="/uploadfile/Collfiles/20160827/20160827093150322.png" title="\" />
如果視圖是Android,不是Project,可以切換到Project標簽。點擊標簽的小三角就能看到

2.5 把classes.jar加入依賴。點擊File->Project Structure

2.6 Modules選擇自己新建的Android Library,中間欄點Dependencies標簽,然後點擊右側加號+,選擇File Dependency,然後找到自己拷貝進來的在libs目錄下的classes.jar點擊OK

2.7 新建Class。

名字為:MyExportActivity

MyExportActivity.java
package org.lzy.test.myjar;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Vibrator;
import com.unity3d.player.UnityPlayerActivity;
public class MyExportActivity extends UnityPlayerActivity {
public void showDialog(final String mTitle, final String mContent) {
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder mBuilder = new AlertDialog.Builder(MyExportActivity.this);
mBuilder.setTitle(mTitle)
.setMessage(mContent)
.setPositiveButton("確定", null);
mBuilder.show();
}
});
}
public void shareText(String subject, String body) {
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
public void setVibrator() {
Vibrator mVibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
mVibrator.vibrate(new long[]{200, 2000, 2000, 200, 200, 200}, -1);
}
}
2.8 雙擊build.gradle,修改代碼,注意修改的是自己新建的Library的build.gradle,不是整個project的build.gradle

build.gradle
//indicates that this is a library
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
sourceSets {
main {
//Path to your source code
java {
srcDir 'src/main/java'
}
}
}
defaultConfig {
minSdkVersion 21
targetSdkVersion 23
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
lintOptions {
abortOnError false
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile files('libs/classes.jar')
}
//task to delete the old jar
task deleteOldJar(type: Delete) {
delete 'release/AndroidPlugin.jar'
}
//task to export contents as jar
task exportJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('release/')
include('classes.jar')
///Rename the jar
rename('classes.jar', 'AndroidPlugin.jar')
}
exportJar.dependsOn(deleteOldJar, build)
2.9 刷新gradle,一般情況下修改了build.gradle後,系統上方會讓你SyncNow,還可以手動刷新一下,右側點擊Gradle標簽,選中自己的Library,右擊選擇Refresh external project

2.10 生成jar,找到other下的exportJar,並雙擊,等待完成

完成後出現如下提示

我們可以看到在release目錄已經有生成好的jar包了,右擊Show in Explorer可以拿到jar包AndroidPlugin.jar

創建Unity工程,制作三個按鈕來測試封裝的android層的三個方法
3.1 創建Unity工程,新建UI的Canvas

3.2 在Canvas下創建UI的Panel,添加一個Grid Layout Group

3.3 創建3個按鈕,名為:BtnShowDialog、BtnShareText、BtnSetVibrator

3.4 編寫代碼,觸發按鈕事件調用Android方法
UIController.cs
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class UIController : MonoBehaviour
{
private AndroidJavaClass unity;
private string subject = "WORD-O-MAZE";
private string body = "PLAY THIS AWESOME. GET IT ON THE PLAYSTORE";
private Button[] btns;
void Awake()
{
if (unity == null)
{
unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
}
}
void Start()
{
btns = GetComponentsInChildren
3.5 將UIController.cs腳本掛到Canvas上

3.6 將剛才打好的AndroidPlugin.jar拷貝到Unity工程的Assets\Plugins\Android中,並在該文件中新建AndroidManifest.xml文件。
注意:在activity的這一句包名和類名要書寫正確
activity android:name=”org.lzy.test.myjar.MyExportActivity”
此處的包名是我們新建的Library的包名:org.lzy.test.myjar,類名是書寫的MyExportActivity.java的類名
AndroidManifest.xml
3.7 設置Unity的Player Settings,注意先切換到Android,包名隨便修改,一定要修改,默認的包名無法打包,然後,Build And Run吧。

3.8運行效果
showDialog

shareText

setVibrator
震動沒有辦法截圖。。。。
Android Studio開發基礎之AutoCompleteTextView控件的使用
在輸入框中輸入我們想要輸入的信息就會出現其他與其相關的提示信息,這種效果在Android中是用AutoCompleteTextView實現的。AutoCompleteTe
Android 動畫解析(二) 補間動畫(Tween Animation)
上篇文章簡單描述了有關如何實現逐幀動畫(Frame Animation),如何還未了解逐幀動畫(Frame Animation)。今天這篇文章就來描述補間動畫(Tween
在Android中調用WebService實例
某些情況下我們可能需要與Mysql或者Oracle數據庫進行數據交互,有些朋友的第一反應就是直接在Android中加載驅動然後進行數據的增刪改查。我個人不推薦這種做法,一
Android基礎之——MacOSX下elipse開發環境的配置
前不久換了台macbook,然後自己就把開發環境給配好了,本來這事就這麼過去了,今天有位博友留言讓我寫一篇關於配置的文章,考慮到這個東西確實以後可能還會用,那就寫下來,分