Adobe XD ユーザーフェス2021 で講演しました

Adobe XD ユーザーフェス2021 講演

JenkinsでUnityのmetaファイルのコミットし忘れをチェックする

metaファイルのコミットし忘れ or 再起動しただけでmetaに変更が入る状況になっていないかをチェックする。 方法は色々あると思うんですが、結局Unity起動してちゃんとビルド出来るかのチェックとか走らせているので Unityを起動した後に、metaファイルが増…

多言語対応!「日本語」「韓国語」「中国語」ってどの文字が表示出来れば良いの?

多言語対応しよう!と思った時、例えば「英語」ならASCIIが表示できれば対応できそうです。 (最近は絵文字が流行りですね。また深い話になるので置いておきましょう。) しかし、「日本語」「韓国語」「中国語」の3つは一体何の文字が表示出来れば良いので…

GitHubActionsでUnityのiOSビルドを走らせてXcodeビルドをしてApp Centerに配信するまで

pushしたら自動でUnityビルドが走る人権環境を手に入れるの続編です。 はじめに 詳細を書くのが面倒なので、GitHub ActionsやFastlaneを分かってる人向け記事です。 ポイント match不使用 今回はmatchを使用せず、証明書(.p12)とmobileprovisionを手動で生成…

pushしたら自動でUnityビルドが走る環境を手に入れる

はじめに まだ手元の作業用マシンでUnityビルドを回してませんか? Unity2021でIL2CPPビルドが早くなったとはいえ、結構な時間のロスです。 何よりも「手元のマシンが一時的に使えなくなり作業が中断する」というのが最悪な体験です。 GitHub(←ここは何でも…

Unity道場 2021.1 で講演しました

Unity道場 2021.1 講演 www.youtube.com

Unityでも便利なLINQメソッドを色々使いたかったのでExtraLINQをUPM対応しました

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…

AddressableでビルドしたAssetBundleのファイルサイズを列挙する

Bundle Naming Modeを"Filename"とかにしていれば出力したファイルを見れば良いだけなのですが、 "Use Hash of Filename"等を使っていると、どのファイルがどのAssetか見分けが付かなくなるので、どうにかしました。 var results = new List<(string, long)>…

Addressableでグループ名とアドレスからHashNameを算出する

AddressableでBundle Naming Modeを"Use Hash of Filename"にしている時に生成されるファイル名を算出する方法です。 そのファイル名で実際にアクセス出来ることのテストとして、ファイルサイズの出力をしてみています。 var groupName = assetGroup.Name.Re…

一番最初に再生したAudioClipの頭の音が切れる問題の対応方法

AudioMixerのAudio Mixer Suspendにチェックが入っていると、最初の音の頭がちょっと切れる。 最初から使うならチェックを外す。

AddressableAssetsが存在するかテストする

ただの備忘録。 定義 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…

EditorではAddressableのロードを早くする

AddressableをIDisposableで管理するの続きです。 Addressable、めっちゃ便利だけどEditorでもロードに少し時間がかかってしまい反復テストに向いてないんですよね。 そこで、Editor限定でロードを早くしてみました。 直接読み込むことで速度を早くしている…

AddressableをIDisposableで管理する

Addressable、めっちゃ便利だけどAsyncOperationHandleを握っておいてReleaseメソッドを呼ぶ。という開放がちょっと面倒なんですよね。 そこで、IDisposableで管理できるようにしてみました。 合わせて読みたい -> EditorではAddressableのロードを早くする …

TextMeshProのAutoSizeは実行時に使うとめっちゃ重いのでAgileBestFitを使いましょう

uGUIの"BestFit"とかTextMeshProの"AutoSize"、便利だけど流石にパフォーマンス的にヤバすぎん?って思って調べたら公式も「サイズ調べるために使うためのものでサイズわかったら切ってね」って言ってた> TMP AutoSize performance vs UGUI's BestFit? https…

IUniTaskAsyncEnumerableを使って操作の先行入力を実現する

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>…