アラキタウン

黒歴史や生き恥を切り売り

Unity recorderで「output height must be a power of 2」のエラーが出た。

Unity recorderで「output height must be a power of 2」のエラーが出た。

縦横は2の階乗にしないとダメとのこと。

Powerで累乗という意味があることを知らなかった。

 

2の階乗の値にすれば大丈夫。

 

Quest2とPCをUSB接続したいのに、「USB接続ダイアログ」が無くなっていた。

PCとquest2をUSB接続して、ファイルをquest2に送ろうとしたところ、quest2にデバイス認証のポップアップが出ない現象に襲われました。

今までなら、「接続したデバイスにファイルへのアクセスを許可しますか?」のポップアップが出て、許可したらPCと接続できた。

システムの「開発者」タブにある「USB接続ダイアログ」のトグルをONにしてないと出ない時があり、それがOFFになっているのかと思ったらなくなっている。

 

対応方法として、Quest2の下のメニューにある通知ボタンを押して、お知らせ画面を出します。

するとUSB接続をしていると以下の文言の通知があるので、これをクリックするとPCと接続できました。

 

「USBが検出されました。

このお知らせをクリックして、リンク済みのデバイスにファイルへのアクセスを許可できます。」

 

 

「USB接続ダイアログ」のトグルが無くなっていたのはアップデートでしょうか?

いきなりの変更びっくりでした。

assetbundleからUnityVideoPlayerを再生しようとした際、OpenExtractor could not translate archive:/〇〇.resource to local file. Make sure file exists, is on disk (not in memory) and not compressed. 

android環境でassetbundleからUnityVideoPlayerを再生しようとした際、以下のエラーが発生した。

AndroidVideoMedia::OpenExtractor could not translate archive:/〇〇.resource to local file. Make sure file exists, is on disk (not in memory) and not compressed. 
AndroidVideoMedia: Error opening extractor: -10004 

訳すると、
OpenExtractor はローカル ファイルに変換できませんでした。ファイルが存在し、ディスク上にあり (メモリ内ではなく)、圧縮されていないことを確認してください。

 

assetbundle Browserでは無圧縮に設定されている。

 

バージョンの問題かとも考えた、

 

今回の取り組んでいるandroidのバージョンは12

以下のunityの公式のページには、

docs.unity3d.com

 

Android Pie and above, Unity supports playback from compressed asset bundles.
Android Pie以降の場合、Unity は圧縮されたアセット バンドルからの再生をサポートします。

 

12なので関係ない。

Note: Not all devices support resolutions greater than 640 × 360.
注: すべてのデバイスが 640 × 360 を超える解像度をサポートしているわけではありません。

念のため、640×360の解像度にしてみてもエラーメッセージは変わらず。

 

改修元のスクリプトを見るとアセットバンドルの読み取りが、、
AssetBundle.LoadFromMemory()となっていた。
AssetBundle.LoadFromFile()に変更すると読み取れ、再生できました。

なぜローカルのファイル読み込みでLoadFromMemoryを使っていたのか・・・

スベリヒユの佃煮

最近野食系のYouTuberさんにハマり、私もそこら辺の食べ物に挑戦してみたくなりました。

スベリヒユってどこにでも生えてますね。

道端のそこら辺に生えてる。

これらを少し頂いて調理に挑戦してみましょう。

 

洗って

 

適当に切る

 

醤油、みりん、砂糖、日本酒(分量は適当)で

 

煮る

 

結構かさが減るな。

 

冷蔵庫にでも入れて粗熱を取れば

出来上がり。

 

特有の粘り気があって美味い😋

草の部分は染みやすいのか味が濃くて善き。

茎の部分が食感や粘り気といい、味のバランスが良かった。

これ俺が佃煮の汁を適当に作らなければもっと美味しいものができたんじゃないかな。

料理の勉強してみようと思う。

 

 

 

 

 

 

 

 

AssetBundleに含まれたテキストファイルを取得する。

AssetBundleに"test.txt"を含め、テキスト情報だけ取得したかったのですが、
以下でできました。

 

AssetBundleCreateRequest acr = AssetBundle.LoadFromFileAsync("AssetBundleのパス");
TextAsset text = acr.assetBundle.LoadAsset<TextAsset>("test.txt");

 

以下の書き方でも取得できる。

TextAsset text = acr.assetBundle.LoadAsset("test.txt", typeof(TextAsset)) as TextAsset;

 
 

AssetBundleのロードしようとしたらThe Object you want to instantiate is null.のエラー

AssetBundleのロードしようと、以下のように書いたら、

 

var LoadedAssetBundle = AssetBundle.LoadFromFile("ファイルパス名"));
var prefab = LoadedAssetBundle.LoadAsset<GameObject>("オブジェクト名");
Instantiate(prefab);

 
 

次のエラーが出た。

ArgumentException: The Object you want to instantiate is null.

 

 


原因はLoadedAssetBundle.LoadAsset<GameObject>("オブジェクト名");に書いたプレハブのオブジェクト名の指定が間違っていたことでした。
こんなところ間違わないと思って、無駄に違うところ探しちゃった。悲しい。

sdkmanagerを使用時にException in thread "main" java.lang.NoClassDefFoundError等のエラー

UnityにてAndroid APIのレベルを変更するため、

コマンドプロンプトで、sdkmanagerを使用して、

Android SDKを入れようとした際以下のエラーが出ました。

 

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

 

UnityのEdit→External ToolsにてJDKのインストール先パスがあるので、

環境変数を設定してあげれば、動作するようになりました。