Unity
この記事は、2022/03/26時点での情報です。 2022/03現在、Application.persistentDataPathのドキュメントは、 Unity2020.3 https://docs.unity3d.com/ja/2020.3/ScriptReference/Application-persistentDataPath.html Unity2022.1 https://docs.unity3d.com/…
EditorPrefsを気軽に使いたいけど、 UnityEditor.EditorPrefsのためだけにdefine書いたり、 そもそもstringしかダメだから一回シリアライズするのも面倒だな・・・って時のために、 EditorPrefsWrapperを作ったのでメモ。 使い方 MessagePack-CSharpに依存し…
github.com AlternateIconについて 基本的にiOSアプリのアイコンは埋め込みで、アプリを更新しない限りアイコンの変更は出来ませんでしたが、 アイコンを埋め込んでおきさえすればアプリ内から変更できる、というのがAlternateIconです。 最近では、デレステ…
2021年の今でも [Unity URL scheme parameter] とかでググると、このプラグインを入れて・・・とかいう記事がたくさん引っかかるんですが、 Unity2019.2以降であれば、 Application.absoluteURL で起動時のURLを取得することが出来ます。 iOSもAndroidも同様…
これは反省文です。 これらの問題に開発終盤に気づくと、影響範囲が広くなりがちです。 知識として入れておきましょう。 Time.time どんなチュートリアルにも最初の方に出てくる、言わずと知れた経過時間を取得する方法。 超基本的なものだと思って、気軽に…
metaファイルのコミットし忘れ or 再起動しただけでmetaに変更が入る状況になっていないかをチェックする。 方法は色々あると思うんですが、結局Unity起動してちゃんとビルド出来るかのチェックとか走らせているので Unityを起動した後に、metaファイルが増…
github.com 前々から愛用していたmariusschulz/ExtraLINQ。 例えばChunkとか、 int[] numbers = { 1, 2, 3, 4, 5, 6, 7 }; int[][] chunks = numbers.Chunk(3); // chunks = [[1, 2, 3], [4, 5, 6], [7]] Flattenとか、 int[][] numbers = { new[] { 1, 2, 3…
Bundle Naming Modeを"Filename"とかにしていれば出力したファイルを見れば良いだけなのですが、 "Use Hash of Filename"等を使っていると、どのファイルがどのAssetか見分けが付かなくなるので、どうにかしました。 var results = new List<(string, long)>…
AddressableでBundle Naming Modeを"Use Hash of Filename"にしている時に生成されるファイル名を算出する方法です。 そのファイル名で実際にアクセス出来ることのテストとして、ファイルサイズの出力をしてみています。 var groupName = assetGroup.Name.Re…
AudioMixerのAudio Mixer Suspendにチェックが入っていると、最初の音の頭がちょっと切れる。 最初から使うならチェックを外す。
ただの備忘録。 定義 public static class AddressableAssets { public static class Bgm { public const string Test1 = "Bgm/TestBgm1"; public const string Test2 = "Bgm/TestBgm2"; public const string Test3 = "Bgm/TestBgm3"; } } 使うところ Addres…
AddressableをIDisposableで管理するの続きです。 Addressable、めっちゃ便利だけどEditorでもロードに少し時間がかかってしまい反復テストに向いてないんですよね。 そこで、Editor限定でロードを早くしてみました。 直接読み込むことで速度を早くしている…
Addressable、めっちゃ便利だけどAsyncOperationHandleを握っておいてReleaseメソッドを呼ぶ。という開放がちょっと面倒なんですよね。 そこで、IDisposableで管理できるようにしてみました。 合わせて読みたい -> EditorではAddressableのロードを早くする …
uGUIの"BestFit"とかTextMeshProの"AutoSize"、便利だけど流石にパフォーマンス的にヤバすぎん?って思って調べたら公式も「サイズ調べるために使うためのものでサイズわかったら切ってね」って言ってた> TMP AutoSize performance vs UGUI's BestFit? https…
public class Sandbox1 : MonoBehaviour { public void Start() { var channel = Channel.CreateSingleConsumerUnbounded<ICommand>(); SetupWriter(channel.Writer); SetupReader(channel.Reader).Forget(); } private void SetupWriter(ChannelWriter<ICommand> channelWriter)</icommand></icommand>…
github.com アセットを登録しておいたら表示しておいてくれる。 ただそれだけのエディタ拡張です。 よく使うAsset(シーンとか設定用のSerializedObjectとか)を登録して表示しておけるエディタ拡張作りました。類似アセットとの違いは・登録はDrag&Dropする…
あのResharperやRiderで使われている静的コード分析をCI(=コマンドライン)で、それも無料で使えちゃうんです。 CIで実行することで、PullRequestの自動チェックで走らせて未然に事故を防ぐことが出来ます。 静的コード分析って? コードを分析して、以下のよ…
ああ〜このリソース、Sceneの寿命に紐付けたいな〜って時ありますよね。 var disposable = Disposable.Create(() => {}); disposable.AddTo(Lifespan.Scene); これを実現するのが以下のコード。 using System; using UnityEngine; using UniRx; using Object…
このあたりインターフェイスが変わりまくっているようで、ググって出てきた情報が古かったので1.0.2時点での使い方を置いておきます。 公式のクイックスタートを読んでも、PlayerInputを通した使い方しか書いておらず、 いやいや、そんなMonoBehaviourにベッ…
async/awaitで、特定条件までawaitしつつも毎フレームこれを実行したい!みたいなめっちゃゲームでしか出てこなさそうなことをどう書くと綺麗に書けるか考えている。 とりあえず素直に書くならこう。 var cancellationTokenSource = new CancellationTokenSo…
Testとかのために同期的にAddressableからAssetを読みたい時用。 public static class EditorAddressables { public static AddressableAssetGroup[] GetGroups() { var settings = UnityEditor.AddressableAssets.AddressableAssetSettingsDefaultObject.Se…
Unity2021から入るVisualScriptingでUI遷移 + アニメーション作ってみた!アニメーションを実行中にいじりながら確認できるのは便利そう!#unity #visualscripting pic.twitter.com/iFcmRLIzfo— きゅぶんず (@kyubuns) 2021年2月27日 説明 Start, Menu 中身…
github.com コンセプトは、加工しやすいようにシンプルに値だけを出力するもの。 HogeEasingRawを使うと0~1の入力を受け取って値を帰すバージョンもあります。 ちなみに、AnKuchenもVisualScripting対応しました。 AnKuchenがVisualScripting対応しました!…
github.com 機能 Debug.Logの出力を実機で確認、クリップボードにコピー出来ます。 入力補完付きのテキストボックスで、モバイルでも素早くデバッグコマンドが打ち込めます。 この入力補完付きって部分が探してもなかなか見つからなかったので作っちゃいまし…
using UnityEngine; using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; #if UNITY_IOS using System.IO; using Extension; using UnityEditor.iOS.Xcode; #endif public class IosPostprocessBuild : IPostprocessBuildWithR…
私はこれで休日を失いました。 新しいFontAsset作ってそっちを参照すればオッケー。 https://forum.unity.com/threads/tmpro-text-is-not-visible-on-a-device.636085/
ググるとshift_jisに変換してバイト数数えるやつがよく出てくるんですが、 Unity + Android環境だとI18N.dll突っ込まないと動かないらしいので正確じゃないけどそれっぽい動きするやつ。 正確にやりたい人は頑張ってください。 public static class StringUt…
便利なもの作ったのは良いけど、githubで公開してるだけじゃ誰も見つけてくれないんだよな〜 ということで、AssetStoreに出してみました!!! 以上。 Auto 9Slicerの機能紹介記事はこちら。
github.com Task(async/await)ガンガン使ってる方向けのTweenアニメーションライブラリです。 v1.0から何が変わった? なんと、基本構文すら変わりました。 ということで、1から紹介し直します。 基本 (-5f, 0f, 0f) から (5f, 0f, 0f) へ2秒かけて移動する…
はじめに これは、Adobe XDからPrefabを自動生成できるライブラリAkyuiUnityをオススメする際に、 「そもそもUIをAdobe XDで作れると何が嬉しいの?」と聞かれた時用の記事です。 この記事では「デザイナーさん」と「プログラマーさん」という2人の登場人物…