サルでもわかるWEBプログラミング

フリーソフトのみでホームページ作成

ユーザ用ツール

サイト用ツール


z_blog:2019:190828_unity_gps


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
z_blog:2019:190828_unity_gps [2019/08/28] – [GPS権限許可のダイアログ表示(1) UnityAndroidRuntimePermissionsアセットの利用] adash333z_blog:2019:190828_unity_gps [2019/08/28] (現在) – [GPS権限許可のダイアログ表示(1) UnityAndroidRuntimePermissionsアセットの利用] adash333
行 28: 行 28:
 ===== GPS権限許可のダイアログ表示(1) UnityAndroidRuntimePermissionsアセットの利用 ===== ===== GPS権限許可のダイアログ表示(1) UnityAndroidRuntimePermissionsアセットの利用 =====
  
-UnityAndroidRuntimePermissionsアセットを利用する方法があるそうです。+UnityAndroidRuntimePermissionsアセットを利用する方法があるそうです。(未確認)
  
   -自分のUnityアプリに、https://assetstore.unity.com/packages/tools/integration/android-runtime-permissions-117803 のアセットをインストール   -自分のUnityアプリに、https://assetstore.unity.com/packages/tools/integration/android-runtime-permissions-117803 のアセットをインストール
行 34: 行 34:
   -(Unity のインストール先)\Editor\Data\PlaybackEngines\AndroidPlayer\Apk\AndroidManifest.xmlの内容(AndroidManifest.xml)を、上記フォルダにコピーする   -(Unity のインストール先)\Editor\Data\PlaybackEngines\AndroidPlayer\Apk\AndroidManifest.xmlの内容(AndroidManifest.xml)を、上記フォルダにコピーする
   -AndroidManifest.xmlの<manifest>...</manifest>の間に、<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">を追加する   -AndroidManifest.xmlの<manifest>...</manifest>の間に、<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">を追加する
-  -UnityでEmpty Objectを作成 +  -UnityでEmpty Objectを作成し、GameDirectorという名前に変更する 
-  -Unityで新規C#Scriptを作成してGameDirectorという名前に変更 +  -Unityで新規C#Scriptを作成してGameDirectorという名前に変更し、上記のGameDirectorオブジェクトにアタッチする 
-  -GameDirector.csのvoid Start(){}の中に、以下を記載すると、ゲーム起動時にGPSデータ接続の否をプレイヤーが選択できるようになる+  -GameDirector.csのvoid Start(){}の中に、以下を記載すると、ゲーム起動時にGPSデータ接続の否をプレイヤーが選択できるようになる
  
 <code> <code>
-GameDirector +AndroidRuntimePermissions.Permission result = AndroidRuntimePermissions.RequestPermission( "android.permission.WRITE_EXTERNAL_STORAGE" ); 
 +    if( result == AndroidRuntimePermissions.Permission.Granted ) 
 + Debug.Log( "We have permission to access external storage!" ); 
 +    else 
 + Debug.Log( "Permission state: " + result );
 </code> </code>
- 
- 
- 
- 
  
 https://forum.unity.com/threads/open-source-androidruntimepermissions-manage-runtime-permissions-synchronously-on-android-m.528833/ https://forum.unity.com/threads/open-source-androidruntimepermissions-manage-runtime-permissions-synchronously-on-android-m.528833/
行 60: 行 59:
 To write data on external storage, you need the android.permission.WRITE_EXTERNAL_STORAGE permission. To write data on external storage, you need the android.permission.WRITE_EXTERNAL_STORAGE permission.
  
 +https://qiita.com/kingyo222/items/404e8645821e54c35b41
 +@kingyo222
 +2019年05月07日に投稿
 +Unity:アセット(Asset)のインポートの方法(5種類!?)
  
  
行 68: 行 71:
 【Unity】デフォルトの AndroidManifest.xml が保存されている場所 【Unity】デフォルトの AndroidManifest.xml が保存されている場所
  
-(引用ここら)+(引用ここら)
 【Unity のインストール先】\Editor\Data\PlaybackEngines\AndroidPlayer\Apk 【Unity のインストール先】\Editor\Data\PlaybackEngines\AndroidPlayer\Apk
 (引用ここまで) (引用ここまで)
行 141: 行 144:
  
 ===== GPS権限許可のダイアログ表示(2) android-support-v4.jarの利用 ===== ===== GPS権限許可のダイアログ表示(2) android-support-v4.jarの利用 =====
 +
 +https://teratail.com/questions/182750
 +Unityで、Androidの「現在地の権限」を付与したい
 +nagi2011
 +投稿 2019/04/03
 +
 +によると、以下のようにするとできるそうです。(未確認)
 +
 +  -Assets\Plugins\Android配下のAndroidManifest.xmlに、以下のパーミッションを設定する
 +<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 +<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
 +  -android-support-v4.jarをダウンロードする
 +  -Plugins/Androidフォルダを作り、そこにandroid-support-v4.jarを配置する
 +  -UnityでEmpty Objectを作成し、GameDirectorという名前に変更する
 +  -Unityで新規C#Scriptを作成してGameDirectorという名前に変更し、上記のGameDirectorオブジェクトにアタッチする
 +  -GameDirector.csの中に、以下を記載すると、ゲーム起動時にGPSデータ接続の可否をプレイヤーが選択できるようになる
 +
 +<code>
 +        static bool CheckPermission (string permission)
 +        {
 +            using (var unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"))
 +            using (var activity = unityPlayer.GetStatic<AndroidJavaObject> ("currentActivity"))
 +            using (var compat = new AndroidJavaClass ("android.support.v4.app.ActivityCompat")) {
 +                var check = compat.CallStatic<int> ("checkSelfPermission", activity, permission);
 +
 +                if (check == 0)  return true;
 +
 +                int REQUEST_CODE = 1;
 +                compat.CallStatic ("requestPermissions", activity, new String[] {
 +                    permission
 +                }, REQUEST_CODE);
 +
 +                //再チェック
 +                check = compat.CallStatic<int> ("checkSelfPermission", activity, permission);
 +                if (check == 0)  return true;
 +
 +                // "設定からパーミッションを許可してください。機能が使用できません。";
 +            }
 +            return false;
 +        }
 +        
 +void Start() {
 +    CheckPermission ("android.permission.ACCESS_FINE_LOCATION");
 +}
 +</code>
 +
  
  
行 163: 行 212:
 Plugins/Androidフォルダを作り、そこにandroid-support-v4.jarを置いておけば解決できます。 Plugins/Androidフォルダを作り、そこにandroid-support-v4.jarを置いておけば解決できます。
 (引用ここからまで) (引用ここからまで)
- 
-https://teratail.com/questions/182750 
-Unityで、Androidの「現在地の権限」を付与したい 
-C#Unity 
-nagi2011 
-投稿 2019/04/03 
  
 https://teratail.com/questions/203447 https://teratail.com/questions/203447


z_blog/2019/190828_unity_gps.1566965053.txt.gz · 最終更新: 2019/08/28 by adash333

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki