はじめに
こんにちは、ユーゴです。今回は、NRealの開発をしていたときに起きた問題を紹介します。
ゲームのデモ動画を撮ろうとした時、「VideoCaptureExample」を導入したまでは良いが、録画しようとすると「Permission Deny」と出てエラーが出ました。小一時間調べましたが解決策は出ず、自力でAndroidのPermission(権限)の設定を調べて直しました。
環境
Unity 2021.3.4f1
NReal Light (dev kit)
問題
NRealで録画しようとすると「Permission Deny」と出る。
解決
AndroidManifest.xmlに権限を記述します。
(1) UnityのProjectウィンドウの「Assets > Plugins > Android > AndroidManifest.xml」を探して開きます。なければこの通りのディレクトリとファイルを作成します。
(2) AndroidManifest.xmlの中はたぶん以下のようになっていると思います。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools" android:installLocation="preferExternal">
<uses-sdk tools:overrideLibrary="com.nreal.glasses_sdk" />
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
<application android:theme="@style/UnityThemeSelector" android:icon="@mipmap/app_icon" android:label="@string/app_name">
<activity android:name="com.unity3d.player.UnityPlayerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="nreal_sdk" android:value="true" />
<meta-data android:name="com.nreal.supportDevices" android:value="NrealLight|NrealAir" />
</application>
<uses-permission android:name="android.permission.BLUETOOTH" />
</manifest>
人によって違う可能性は大アリですが、htmlのようなのが書かれていればOKです。
とりあえず、下から2行目(<uses-permission android:name="android.permission.BLUETOOTH" />と</manifest>の間)に以下を追加します。
<uses-permission android:name="android.permission.RECORD_AUDIO" />
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
ここまでで、1回録画に挑戦してみてください
→うまくいった:完了
→うまくいかない:(3)へ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
(3) もし録画を開始して画面が暗転したままの場合、「許可しますか? Yes/No」みたいなのがAndroid表示されている可能性があるため、グラスからだと見えません。
・スマホと接続:そちらのスマホに「許可しますか? Yes/No」みたいなのが表示されていないか見ます。あればYes(許可する)を押します
・DevKitと接続:SCRCPYをインストール→エミュレータ起動→「許可しますか? Yes/No」が出てないか見ます
SCRCPYのインストールは以下を参考にしてください。
だれでもできる!Nreal Lightアプリ作成入門
Macなら、DevKitを接続し、ターミナルで「scrcpy」と打つだけで起動できます。
まとめ
いかがだったでしょうか。今回は、Nrealで開発している時に録画できない問題が発生したので、解決策を紹介しました。
このように、プログラミングに関するニッチな情報から、よくあるプログラミングの躓きポイントなど幅広く紹介していきます。
お役に立てましたら、いいね・LGTM・フォローの方お願いします!