土屋つかさの技術ブログは今か無しか

土屋つかさが主にプログラミングについて語るブログです。

ゲーム開発

#unity UIから「Save As...」ボタンを外したらUnityエディタがクラッシュするようになった話(TextMeshPro Deep Dive #4)

年の瀬です。皆様いかがお過ごしでしょうか。2024年も大変お世話になりました。来年もよろしくお願いします。 土屋はこの年末の忙しい最中、「Unityエディタ拡張の自作ツールで「Save As...」ボタンを削除したら特定タイミングでUnityエディタがクラッシ…

#unity TextMeshPro内の低レイヤ処理クラスFontEngineの隠しメソッドにリフレクションでアクセスする(TextMeshPro Deep Dive #3)

この記事はUnityアドベントカレンダー2024(シリーズ3)12日目の記事です。空いてたので埋めさせていただきました。 qiita.com 今回の記事はこちらのエントリの内容をベースにした物になります。 zenn.dev TextMeshProの内部処理 TextMeshPro(以下TMP)…

C#でデリゲート型を使ってメソッドディスパッチを実装する

この記事は土屋つかさアドベントカレンダーの3日目です。嘘です。今年はACに一個も参加してなかいので言いたくなっただけです。 今回はC#でメソッドディスパッチをする方法の話。土屋がコード書いてる時に必要になったんですが、ググッても上手く見つか…

#unity C#シリアライザMemoryPackを使いたい(1)パッケージインストールの手順

MemoryPackは、Neueccさんが開発し、CySharpからリリースされている、シリアライザーと呼ばれる機能を提供するOSSライブラリです。 github.com シリアライザーは、データを永続化(シリアライズ)する為の物で、インスタンスが持つデータをバイナリデータ…

#UEFN #Verse 作用指定子(effect specifier)のv30.0新仕様について解説

Verseでは、ライブラリの実装者が各APIが持つ制約を明示する為に、関数名に「作用指定子(effect specifier)」を付与できます。これによって、その関数が副作用を持つかどうかや、環境依存性があるどうかなどをインターフェイスレベルで規定できます。 …

#UEFN #Verse 失敗許容関数内では明示的なreturnが出来ないルールについて

現在、5月25日から始まる技術書典に向けてVerse本の紙版リリースの準備を進めているのですが、無限に続く寒暖差のせいで体調が思わしくなくピンチでやばばです。頑張ります。 今回はそのVerse本に追記しようと思っているネタです。 問題編 キッカケは、ご…

#UEFN #Verse 3/28の"Ask Epic: Verse"で面白かった回答ピックアップ(延長戦1:型システム編)

Ask Epic:Verse回答祭りの延長戦です。今回紹介する2つの質問は「この機能は採用予定がありますか?」「ないです。何故なら……」という物で、コーディングにおいて直接役に立つ物ではありません。とはいえ、どちらの質問もVerseの型システムに深く関わる物で…

#UEFN #Verse 3/28の"Ask Epic: Verse"で面白かった回答ピックアップ(その1)

UEFNの公式フォーラムでは、ユーザーからテーマに沿った質問を募集し、それに内部開発スタッフが回答する"Ask Epic"という不定期イベントが開催されています。直近の3月28日に行われたAsk EpicのテーマはVerseでした。 forums.unrealengine.com Verse…

#Unity 何故PlayModeに入った時にOnValidate()が2回呼ばれるのか問題(その2:完結編)

前回の記事の続きです。 someiyoshino.info OnValidate()タイミングにRectTransform.setDelta()を更新するコードを実装した所、Edit ModeからPlay Modeに移行した時(以下これを「Enter Play Mode時」と呼びます)にNull参照例外が発生してしまうという話で…

ボイスの収録における業界特有のノウハウの話

ゲーム開発において、プロの現場と同人チームで大きな差があるとしたら、エフェクトとサウンド(BGM/SE)の分野ではないかと土屋は思っています(3Dだとまた違うんだけども、ここでは置く)。というのは、シナリオ/プログラム/イラストは、それぞ…