自版本 2018.3 起,Unity允许您将 .java 文件添加到Unity项目中,并在构建Android播放器时进行编译。
1)将输出 UnityAndroidLocation.java 文件复制到Unity项目中的 Assets / Plugins / Android 目录中。
2)转到: [文件]> [内部设置]> [播放器设置]> [播放器] ,然后复制软件包名称。
3)在这两个类中,找到“ ual.ual.ual” 包名称并将其替换为在步骤 2)中复制的包名称。
“ UnityAndroidLocation.cs” 类:
using UnityEngine;
public class UnityAndroidLocation : MonoBehaviour
{
#if UNITY_ANDROID || UNITY_EDITOR
private static AndroidJavaObject plugin = null;
#endif
// Use this for initialization
void Awake()
{
#if UNITY_ANDROID && !UNITY_EDITOR
plugin = new AndroidJavaClass("ual.ual.ual.UnityAndroidLocation").CallStatic<AndroidJavaObject>("instance");
#endif
}
/// <summary>
/// <para>Open Google Map with Specific Adress.</para>
/// <para>Adress: [City,street]</para>
/// </summary>
/// <param name="Adress">Adress.</param>
public void GoogleMapWithAdress(string Adress)
{
plugin.Call("GoogleMapWithAdress",Adress);
}
/// <summary>
/// <para>Open Google Map with Specific Coordinate.</para>
/// <para>Zoom (integer number 2-23)</para>
/// </summary>
/// <param name="latitude">Latitude.</param>
/// <param name="longitude">Longitude.</param>
/// <param name="zoom">Zoom.</param>
public void GoogleMapWithCoordinate(float latitude,float longitude,int zoom)
{
plugin.Call("GoogleMapWithCoordinate",latitude,longitude,zoom);
}
}
“ UnityAndroidLocation.java” 类:
package ual.ual.ual;
import android.content.Intent;
import android.net.Uri;
import com.unity3d.player.UnityPlayer;
public class UnityAndroidLocation {
private static UnityAndroidLocation _instance;
public UnityAndroidLocation() {
}
public void GoogleMapWithAdress(String Adress) {
String uri = "geo:0,0?q=" + Adress;
Intent mapIntent = new Intent("android.intent.action.VIEW",Uri.parse(uri));
UnityPlayer.currentActivity.startActivity(mapIntent);
}
public void GoogleMapWithCoordinate(float latitude,int zoom) {
if (zoom < 2) {
zoom = 2;
}
if (zoom > 23) {
zoom = 23;
}
String uri = "geo:" + latitude + "," + longitude + "?z=" + zoom;
Intent mapIntent = new Intent("android.intent.action.VIEW",Uri.parse(uri));
UnityPlayer.currentActivity.startActivity(mapIntent);
}
public static UnityAndroidLocation instance() {
if (_instance == null) {
_instance = new UnityAndroidLocation();
}
return _instance;
}
}
注意:例如,如果您的软件包名称为“ com.my.app”,则结果名称将为:
“ UnityAndroidLocation.cs”类:
plugin = new AndroidJavaClass("com.my.app.UnityAndroidLocation").CallStatic<AndroidJavaObject>("instance");
“ UnityAndroidLocation.java”类:
package com.my.app;
import android.content.Intent;
import android.net.Uri;
import com.unity3d.player.UnityPlayer;
本文链接:https://www.f2er.com/3159385.html