2023-01-01から1年間の記事一覧
Scene 上のオブジェクトには Bloom 効果がかかっているのに、RenderTexture を利用した際に Bloom 効果が反映されないことがあるという現象が起きました。 この問題を解決するために、以下のコードを使用しテストを行いました。 using UnityEngine; using Un…
Unity で TextMeshPro を使用する際に、フォントアセットを Addressable に対応させない場合、各 UI のバンドルにフォントデータが含まれ、バンドルのサイズが大きくなってしまいます。 一方で、フォントアセットを Addressable に対応させた場合は、フォン…
Addressable ロードの問題とその解決方法 TextMeshProのフォントとMaterial PresetをデフォルトおよびカスタマイズしたUIをAddressableを利用してロードする際に、Addressableの設定によって発生する問題についてご紹介します。 まず、以下の画像では、カス…
Unityでは、アセットのアイコンを取得するために AssetDatabase.GetCachedIcon を利用できます。ただし、このメソッドを使用するにはアセットのパスが必要です。アセットのタイプだけでアイコンを取得したい場合、以下のような処理を利用することができます…
UnityEngine.AddressableAssets.AssetReference を利用している際に UnityEditor 上では動作したがビルドして確認してみると以下のエラーでロードできなかった UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.Addressa…
アセットバンドルのビルド時に、以下のエラーが発生しビルドすることができなくなりました Broken text PPtr in file(Hoge.controller). Local file identifier (-7404026014276284922) doesn't exist! 実際に内部を見てみると、対象のアセット参照をもった …
Unityのバージョンをアップデートすると、アセットの設定が変更されることがあります(serializedVersionが更新されることがあります)。 基本的に、アセットのメタファイルが差分があるときに更新される際に、その設定が変更されている場合は、設定も同時に…
public static async UniTask<bool> Contains(string address) { var opHandle = Addressables.LoadResourceLocationsAsync(address); await opHandle; if (opHandle.Status == AsyncOperationStatus.Succeeded && opHandle.Result != null && opHandle.Result.Cou</bool>…
Addressable ではディレクトリにアドレスを設定することができる しかし、実際にそのアドレスをロードしようとすると、次のエラーが出てしまいます UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.AddressableAssets.I…
Addressable では 「Use Existing Build」の場合ローカルとリモートのグループともにカタログに記載されていなればロードできない しかし、ローカルグループの量が多かったりするとテストのたびにローカルのビルドをするのは時間がかかってしまいます そのた…
var settings = AddressableAssetSettingsDefaultObject.Settings; var schema = settings.DefaultGroup.GetSchema<BundledAssetGroupSchema>(); // Remote のパスを設定 schema.BuildPath.SetVariableByName(settings, AddressableAssetSettings.kRemoteBuildPath); schema.LoadPath.</bundledassetgroupschema>…
Unity 2022以降 Addressable でリモートのバンドルをロードする際にデフォルトの設定だと リモートからカタログやバンドルをロードする際に以下のエラーが発生する Non-secure network connections disabled in Player Settings Insecure connection not all…
Addressable の Path には Static なクラスの参照をもたせることができる 例えば以下のクラスのパスで置き換えたい場合は public static class AddressableUtil { public static string LoadPath; } このように記述すればカタログのロード時に置き換えること…
Hosting Window から Hosting するように変更 ブラウザから記述してあるURLにアクセスし、 Console にログが表示されれば起動しています 今回であれば http://192.168.1.8:59595/ が URL になります これを先にしないと以下のように[HostingServicePort]が置…
Addressable Asset Sysytem では Addressable Group の EditorWidow からアドレスを設定する作りとなっており、自動化したい場合は自前でなにかしらの処理を書く必要がある 大体同じ処理を書くと思うので自動的にアドレスを設定する PostProcessor を作成し…
Unity PostProcessing の Vegnette Shader を参考に ImageEffect で利用できる ShaderGraph を作成しました パラメータは以下になります こちらからDLして利用してください
ブルーム デプスオブフィールド 色補正 トーンマッピング アンビエント・オクルージョン モーションブラー クロマキー レンズフレア ノイズとグレイン ビネット アンチエイリアシング レンズディストーション フォグ SSR(Screen Space Reflections) SSAO(…
private string GetNumberName(int num) { string result = ""; while (num >= 0) { result = (char)(num % 26 + 'A') + result; num = num / 26 - 1; } return result; } // A GetNumberName(0) // Z GetNumberName(25) // AA GetNumberName(26) // MHYV Ge…
HandleUtility.PickGameObject を利用すれば対象位置のオブジェクトを取得できますが、すべて取得できません そのため、Ignoreに取得したオブジェクトを詰め込むことですべてのオブジェクトを取得することができます using System.Collections.Generic; usin…
UnityGUIのカラーフィールドを使うと、エディタ上ではカラーピッカーを利用できますが、プレイモード中にはカラーピッカーが使えません。 そのため、エディタ上でテストなどで簡単にカラーピッカーを使いたい場合は、別途カラーピッカーを実装する必要があり…
error CS0246: The type or namespace name 'NativeMultiHashMap<,>' could not be found (are you missing a using directive or an assembly reference?) Unity2021 で Unity.Collections の NativeMultiHashMap を利用している状態で、Unity2022 にアップ…
#if UNITY_EDITOR using System.IO; using System.Collections; using Unity.EditorCoroutines.Editor; using UnityEditor; using UnityEngine; using UnityEngine.Networking; public static class DownloadAndSaveImageEditor { // URLから画像をダウンロ…
環境 Unity 2022.2.15 iOS 16.4.1 Xcode 14.3 Unity から Xcode Project を出力 Unity の Build Target を iOS に変更し、Build Settings よりビルドする ビルドが終わると以下のようなファイル群が出力されるので Unity-iPhone.xcodeproj を実行して Xcode …
Light クラスには Cookie のテクスチャ(cookie) や サイズ (cookieSize) はあるが [SerializeField] private Light _Light; Inspector 上に表示されている Cookie Size や Cookie Offset の参照は無く変更することができない なぜならば Size や Offset のパ…
通常 URP Lit を利用した際には SRP Batcher が有効な Shader なので、Frame Debugger で確認したところちゃんと SRP Batcher が有効となっていることが分かる では Texture2DArray を利用した Shader では SRP Batcher が有効なのか確認してみます 追加項目…
Texture2DArray のテクスチャには以下のように Index を指定してテクスチャにアクセスするのですが、実際にどの値のときにどのテクスチャを参照するのか見てみます SAMPLE_TEXTURE2D_ARRAY(_BaseMapArray, sampler_BaseMapArray, uv, _Index) 以下のような T…
Shader を作成する際に、URPの中を探してコピーしてくるのが面倒だったので、基本的な Shader だけ抜き出して github にあげておきます 必要な際にご利用ください UnityURPShaderSample/URP12.1.8 at main · yayorozu/UnityURPShaderSample · GitHub
テスト用の シンプルな Texture2DArray を作成するためのツール using UnityEditor; using UnityEngine; public class CreateTexture2DArrayEditor : EditorWindow { [MenuItem("Tools/CreateTexture2DArray")] private static void ShowWindow() { var wind…
ハッシュを利用することにより、文字列から一意の数字を生成することができます using System.Security.Cryptography; using System.Text; public static class Utility { public static int StringToInt(string input) { using (var sha256 = SHA256.Create…
Note: You can only draw a maximum of 1023 instances at once. ドキュメントにもあるように Graphics.DrawMeshInstanced で一度に生成できるインスタンス数の上限は 1023 となっており、1023を超える数を生成すると以下のエラーが表示される ArgumentOutOf…