先開啟Eclipse,新增一個Android專案
之後請到Unity的安裝路徑:Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin
複製這個檔案到剛剛創建的Eclipse專案的libs資料夾內
之後再對該專案按下F5重新整理,即可看到如下圖所示:
再來對src點選右鍵→ New → Package
之後對新增出來的Package點選右鍵 → New → Class
之後輸入以下程式碼
package ToastForUnity;
import android.widget.Toast;
import com.unity3d.player.UnityPlayer;
public class AndroidToast
{
//Method必須為static
public static void showToast(final String content, final boolean isLong)//傳入的參入必須為final,才可讓Runnable()內部使用
{
UnityPlayer.currentActivity.runOnUiThread(new Runnable()
{
@Override
public void run()
{
//若使用者傳入的boolean為true,則Toast顯示3.5秒;否則為2秒
Toast.makeText(UnityPlayer.currentActivity, content, isLong ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT).show();
}
});
}
}
都好後Ctrl+S存檔,再對專案點右鍵 → Export,選擇JAR file
然後按照下面這張圖的方式勾選完畢後,按下Finish
之後開啟Unity,新建一個專案,並產生如下的資料夾
並將剛剛Eclipse產生的jar放到libs資料夾內
然後創建一個C#腳本,命名為AndroidBehaviour,程式碼如下,請直接複製貼上即可(這個腳本的目的在於取得jar內的資訊)
using UnityEngine;
using System.Collections;
public abstract class AndroidBehaviour<T> : MonoBehaviour where T : AndroidBehaviour<T>
{
protected abstract string javaClassName { get; }
private static T _instance;
protected static T instance { get { return _instance; } }
protected AndroidBehaviour() { _instance = this as T; }
protected void CallStatic(string methodName, params object[] args)
{
using (AndroidJavaClass ajc = new AndroidJavaClass(javaClassName))
{
ajc.CallStatic(methodName, args);
}
}
protected ReturnType CallStatic<ReturnType>(string methodName, params object[] args)
{
using (AndroidJavaClass ajc = new AndroidJavaClass(javaClassName))
{
return ajc.CallStatic<ReturnType>(methodName, args);
}
}
protected ReturnType GetStatic<ReturnType>(string fieldName)
{
using (AndroidJavaClass ajc = new AndroidJavaClass(javaClassName))
{
return ajc.GetStatic<ReturnType>(fieldName);
}
}
}
再新增一個腳本,命名為Toast,程式碼如下
using UnityEngine;
using System.Collections;
public class Toast : AndroidBehaviour<Toast>
{
protected override string javaClassName
{
//要呼叫的class所在的Package名稱.要呼叫的java class名稱
get { return "ToastForUnity.AndroidToast"; }
}
/// <summary>
/// 使用Toast
/// </summary>
/// <param name="message">要顯示的字串</param>
/// <param name="isLong">true為3.5秒;false為2秒</param>
public static void makeText(string message, bool isLong)
{
//第一個參數為要呼叫的Method名稱
instance.CallStatic("showToast", message, isLong);
}
}
都完成後,即可新增一個腳本來做測試是否成功呼叫Android的Toast功能了!
新增一個C#腳本,命名為Test,程式碼如下
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour
{
private void Start()
{
Toast.makeText("成功的使用了Android的Toast了!", true);
}
}
再來將Test和Toast放到同個物件上!
(在此範例我放到Camera上)
然後將檔案導出成apk,安裝在Android系統上執行!(無法再Unity上測試)
(在此安裝在BlueStacks模擬器上執行)
留言列表