Eclipseを使ってUnityプラグイン用のjarファイルを作り、PlugInフォルダへ置く

**■Androidにアプリをインストールできなかったので、アプリを起動できたやり方に大幅変更**

　AndroidManifest.xmlを使う方法ご存じなら教えてください、
　調べきれてないです。

******

参考ページ１：http://qiita.com/relzx/items/a35f7ab6dbacb48f7e26

# ■Android側(Eclipse)

●Eclipseをダウンロード
　http://developer.android.com/sdk/installing/installing-adt.html

●ADTをインストール
　①Eclipseを起動
　②ADTを入れる
　　参考ページ２：http://www.javadrive.jp/android/adt/index1.html

　　①Help -> Install New Software
　　②Addをクリック
　　③Name：任意の名前　たとえば　"Android Plugin" 
　　Location：https://dl-ssl.google.com/android/eclipse/

■SDK Managerを開いてAPIバージョン22とBuild-Tools22.0.1まで設定
　**(どこまで入っているかでEclipse上でプロジェクトのビルドがエラーになったりします)**
　下図のようなかんじ
　![スクリーンショット 2015-04-03 14.53.25.png](https://qiita-image-store.s3.amazonaws.com/0/17904/e4503631-58dc-54ab-b907-cc1bdac0403c.png)

●Eclipseを起動して、Androidプロジェクトを作成
　①File -> New -> Other
　②Androidの下の Android Application Project を選択してNext
　③Application Name=MiyaPluginUnity
　　Package Name=com.test.miyapluginunity

　その他は下図参照
　![スクリーンショット 2015-04-03 14.58.51.png](https://qiita-image-store.s3.amazonaws.com/0/17904/5cdc7c4b-314d-bfb4-fba0-eedd1c3c7af4.png)

　④Nextをクリック
　⑤ここからFinishがでるまでNextをクリックし、最後にFinishをクリック

●Androidの実機を接続してマウント状態にする。
　※Windowsならドライバが必要
　
●作成したProjectを選択状態にして、
　メニューバーの虫みたいなマークの矢印をクリックし、Debug As -> Android Application
　Android Device Chooser　が起動するので、上のウィンドウで実機を選択状態にして
　OKをクリック

　※この後、Debugウィンドウに切り替わるようならJavaウィンドウに切り替える。


●作成したProjectを選択状態にして、右クリックして**Properties**を選択

●左の項目からAndroidを選択し、
　右の画面の**Is Library**をチェックして
　**Apply**をクリックし、**OK**を押す。

　作成したプロジェクトのbinフォルダの下に**プロジェクト名.jar**ファイルが作成される。

●class.jarを取得**（Unity Send Message はこれが無いと使えない気がする。）**
　作成したプロジェクト名を選択して右クリック
　①Java Build Path -> タブをLibrariesに切り替える。
　②Add External JARs を選択して
　　Unityのインストールパスの下からclass.jarを選択 -> 開く-> OK

　例：）C:\Program Files (x86)\Unity462\Editor\Data\PlaybackEngines\androidplayer\release\bin
　![スクリーンショット 2015-04-02 15.33.21.png](https://qiita-image-store.s3.amazonaws.com/0/17904/a4746913-d9c8-ea7d-11d9-2c99eea31802.png)


●自分のソース(クラス)を追加
　①自分のプロジェクトの下のsrcの下のパッケージ名を選択
　②右クリック -> New -> Class
　③Name を入力してFinish

●下記ソースで作成

```java:MiyaTest.java

package com.test.miyapluginunity;

//class.jarがインポートされてないとエラーになる。
//import com.unity3d.player.UnityPlayer;

public class MiyaTest {

    public int FuncA()
    {
        return 10;
    }

    public byte[] FuncB(int bytesize)
    {
        byte[] byteArray = new byte[bytesize];
        for(int i = 0; i < byteArray.length; i++)
        {
            byteArray[i] = (byte)0x50;
        }
        return byteArray;
    }	
}

```

●プロジェクトを選択し、メニューのProjectからCleanを選択、
　自分のプロジェクトが選択されていればOKをクリック

●プロジェクトを選択し、メニューのProjectからBuild Projectを選択
　自分のプロジェクトが選択されていればOKをクリック

●作った*.jarをUnityのAssetsの下のPluginsの下のAndroidの下に置く

# ■Unity側
　●Assetsの下にPluginsフォルダを作りその下にAndroidフォルダを作る

　●jarファイルはAndroidフォルダに入っている

　●Pluginsフォルダの中にjarを呼び出すスクリプトを書く。

　※**AndroidJavaObject**の**パッケージ名＋クラス名**の記述を忘れずに、
　　毎回忘れてしまう。

```csharp:UnityPluginScript.cs
using UnityEngine;
using System.Collections;

public class UnityPluginScript : MonoBehaviour {

    public static int CallFuncA()
    {
       
        // プラグイン名をパッケージ名+クラス名で指定する。
        AndroidJavaObject m_plugin = new AndroidJavaObject("com.test.miyapluginunity.MiyaTest");
        int FuncAval = m_plugin.Call<int>("FuncA");
        return FuncAval;
    }

    public static byte[] CallFuncB(int bytesize)
    {

        // プラグイン名をパッケージ名+クラス名で指定する。
        AndroidJavaObject m_plugin = new AndroidJavaObject("com.test.miyapluginunity.MiyaTest");
        return m_plugin.Call<byte[]>("FuncB",bytesize);
    }
}

```


●Build Settingsを変更する
　●**File -> Build Settings**をクリック
　●プラットフォームを**Android**の変更
　●**Prayer Settings**を開き、**Other Settings**を表示
　●**Bundle Identifier** を **jarファイル**を作ったパッケージ名に変える
　　下図の参照

　　![スクリーンショット 2015-04-03 15.48.14.png](https://qiita-image-store.s3.amazonaws.com/0/17904/6acb1be5-5c70-8a04-82f1-4dd56a17e977.png)



参考ページいろいろ：（何が正解やらわからん）
　http://stepism.sakura.ne.jp/unity/wiki/doku.php?id=wiki:unity:tips:086
　http://kakurenboman.blogspot.jp/2014/04/unity3d-android-plugin.html
　http://tech.hisasann.com/java/173/

参考動画いろいろ：
　https://www.youtube.com/watch?v=s1Mle2ERiuQ
　https://www.youtube.com/watch?v=mbACRV2S_8Q
　https://www.youtube.com/watch?v=4l64nUGt0l0