Enumを簡単にStringとしてシリアライズできるパッケージ作りました

github.com なにこれ? こんなコードを書いてEnumをシリアライズすると、 .unityや.prefabを見ればわかるように、内部的には0, 1, 2というintの値として保存されます。 つまり、Enumの途中に値を追加/削除すると意図しない指定の変更が起きてしまいます。 ↓ …

Unity6で新規プロジェクトを作るとビルドがやけに長い時の対処法。ネタバレ:Forward+はシェーダーコンパイルが長いよ。

Unity6で新規URPプロジェクトを作ると、ビルド時間がやけに長く、 ログを見るとシェーダーコンパイルが遅くなっていることが分かります。 (以下、実測結果はM1 Max MacBook Proによるもの) Unity2021LTS(2021.3.43f1)、Unity2022LTS(2022.3.47f1)、Unity6(…

OnPostprocessBuildでゴニョゴニョしたら、macビルドが "~.app is damaged and can't be opened." と言われ起動しなくなった時の治し方

OnPostprocessBuildなどで.appの中身を直接いじると署名が無効になり壊れる。 public void OnPostprocessBuild(BuildReport report) { // ごにょごにょ #if UNITY_STANDALONE_OSX UnityEditor.OSXStandalone.MacOSCodeSigning.CodeSignAppBundle(report.summ…

Unityのログをファイルに書きつつ出力もする(Windowsのbashでもteeみたいなことがしたい!)

マルチプレイの確認に便利なUnity Multiplayer Play Modeパッケージ!にて、ソースコードを編集してもVirtual Playerに反映されないバグの対処法

Unity6から使えるMultiplayer Play Modeという公式パッケージがあります。 Editor上のプレイボタンを押すと最大3つのプレイヤーが自動で立ち上がり(Editor本体を入れて4つ)、 マルチプレイゲームのデバッグが簡単にできる!という非常に便利なパッケージで…

Windowsでリモートデスクトップが頻繁に切れるときにやったこと

症状 普通に繋がりはする。 繋がった後、5分ぐらいで切断される。たまに6時間持ったりもする。 再接続するとまた繋がる。 エラーコードはError code: 0x3 Extended error code: 0x11 最終的な解決法 電源オプションから、プロセッサの電源管理 > 最小のプロ…

git lfsに含まれていないファイルの中でデカいファイルを探すbash script

コメントからChatGPTと一緒に育ててきたのがよくわかる

PresetManagerに登録してあるPresetがちゃんと反映されているか確かめるテスト

AppIconChangerUnity OSダイアログ無効化バージョン

github.com 4年前に公開したこのアプリアイコンを動的に変更できるパッケージ、 たまに「OSのダイアログ(↓の画像のやつ)消せないの?」という問い合わせが来てました。 その時の返信は、 「わかる。邪魔だよね。でもOS側で出してるやつだからどうしようも…

CommonUIで開いたWidgetを特定のプレイヤーにだけ操作可能にする

今回使うプロジェクトはこちらに上がってます。 github.com CommonUIに関する情報がまだネット上に少なかったので、細かいことだけどメモ。 Create Widgetする時にOwning Playerを指定しないと全員(全コントローラー)で操作可能、 指定するとそのプレイヤ…

Unity Editorから同じネットワーク上にいるデバイスのプレイヤーにデータを送る

Unity Editorから同じネットワーク上にいるデバイスのプレイヤーにデータを送る https://t.co/fnpTJV1L9n #きゅぶろぐ pic.twitter.com/6Qcy58acdZ— きゅぶんず (@kyubuns) March 3, 2024 UnityEditor.Networking.PlayerConnection.EditorConnection とかい…

オンラインゲーム 10年の進化と同期方式の選び方

オンラインゲームを作ろう!と思ったことがある方は、 こちらの講演記事を1度は見たことがあるのではないでしょうか。 www.4gamer.net こちらの講演は、具体例を交えながら非常に分かりやすくオンラインゲームの主な同期方式が説明してあり、 2024年現在でも…

C++でData Validationを行うまでの道のり

Data Validationとは 「ゲーム開発してるとこういうの欲しくなるよね」という機能が、 UEでは、あれもこれも公式プラグインとして公開されています。 Data Validationもまさにそれ。 プロジェクト内のアセットがルールに従っているか自動でチェックするため…

Unreal Engineでdeclaration shadows a fieldエラーを無視する

error: declaration shadows a field of 'クラス名' というエラーは、 以下のようにメンバ変数の名前を覆い隠してしまう時に発生します。 これを無視するには、 プロジェクト名.Build.cs のコンストラクタ内に ShadowVariableWarningLevel = WarningLevel.Of…

EC2上でUnreal Editorを立ち上げるまでの備忘録

Unreal Engine製のゲーム/サーバーを動かす話ではなく、Unreal Editorを動かす話です。 公式ドキュメントに「AWS に Unreal Engine 5 をデプロイする」という打ってつけな項目があるのですが、 微妙に保守されていないというか、そもそも英語版には存在しな…