えんじにあ雑記!

開発していて学んだことをまとめていきます!

Unity向けSource Generatorの作り方

Unity2021.2以降Roslynの導入によって利用可能になったSource Generator。今回はSource Generatorの実装方法についてまとめます。

Editor拡張コードを書くのが楽になる「UniTyped」使ってみた

Unity上でSerializedObjectやSerializedPropertyに対する型付けされたアクセスを提供するSource Generator「UniTyped」がリリースされていたので触ってみました。

【Unity】Sceneの保存時に処理をフックする

Scene保存時に編集されていた値をリセットするなど、任意の処理をコールバックに登録する方法を解説します。

【Unity】Componentの値をInspectorView上で編集不可能にする

Componentの値をInspectorViewで編集不可能にする方法を解説する記事です。

【Unity】バイト数をサイズに合わせてフォーマットした文字列に変換する

Unityでバイト数をデータサイズに適した単位を付与した文字列にフォーマットする方法です。

【Unity】アセットのデータサイズを取得する方法

Unityプロジェクト内のアセットのファイルサイズを取得する方法です。

【Unity】Animation Clipからの値の更新を検知する

Animationによるコンポーネントの値の変更を検知する方法の紹介です

Roslyn APIを使って、構文ツリー解析を行う方法

C#

Roslyn APIを使用して、CSharpコードの構文ツリー解析を行う方法を解説します。 ※こちらの記事は2021.12月のC#アドベントカレンダー6日目の記事になります。

「今日からできるC#のパフォーマンス改善小ネタ10選」を書いてみました

C#

C#についてもくもくと学んでいる中で、意識すれば誰でもできるパフォーマンス改善に繋がる項目をいくつか紹介してみます。

structをusing-statementで使用したらboxingが発生するのか

structをusingステートメントで使用するとboxingされるのかを検証しました。

UnityでRoslyn Analyzerを導入してみた

Roslyn AnalyzerがUnity2020.2から使えるっぽかったのでとりあえず触ってみました。

UnityでC#スクリプトのコンパイル時間を計測する方法

UnityでC#スクリプトのコンパイルにかかった時間を計測するエディタ拡張を実装したので記事にしました。

MonoBehaviourを継承したクラスのメソッドは今呼ばれているのか、、調査

GameObjectが非アクティブの時、コンポーネントだけが非アクティブの時などの状況でそのメソッドは実行されるのか、、理解が曖昧だったので調査しました。

Unityのエディタ拡張メソッドをコマンドラインから呼び出す

Unityで実装したエディタ拡張用のメソッドはコマンドラインから実行することが可能です。そのやり方を簡単に解説してみました。

Unityでデバッグ/本番を切り分けたビルド環境を構築する

Unityのみならず、開発ではデバッグ環境と本番環境を区別して開発することが多いです。 その際にDebug環境でのみ含めたいコードなどがあり、Debug用と本番用を切り分けることができるビルド環境の構築方法をまとめました。

ContentSizeFilterを実装してみる

UnityのLayoutControllerの一つであるContentSizeFilterの挙動を、実際に実装しながら理解してみました。

改めてuGUIのリファレンスを読んでみたまとめ

uGUIに関して学び直しておこうと思い、公式リファレンスを読んでみた際のメモ記事です。 Unityを普段から触ってらっしゃる方には当たり前の情報ばかりかもしれませんが、、

2020年の振り返りと100歳までの抱負

ほぼ自分用ですが、2020年の振り返りと今後の人生の抱負をまとめました。 僕がどんな人間で、何を目指しているかは知って頂けるかなと思います! 興味のある方はどうぞ!!😍

自作Packageを作成、UPMで管理してみた

開発を高速化させるためにも、汎用的に使える機能やUI基盤などは使いまわせるようにしたいですよね。 今回はUnity Package Managerを使って自作のパッケージを作成、配布する方法までを紹介します。

GoogleSpreadSheetを使ってマスタデータを管理する

ゲームのマスタデータをゲームのIDE外で管理する方法を模索している中、GoogleSpreadSheetが結構良かったので方法をまとめてみます。

XCodeのビルドを高速化する並列ビルドの設定方法

GithubActionsを使ったiOSのCI/CD環境構築の際にiOSのビルドがかなり長かったので、どうにか高速化できないかと調べてる際に見つけたポイントをまとめてみました。

Github ActionsでiOSアプリのCI/CDをやってみた

FlutterでiOS/Androidアプリを開発していた際に、GithubActionsを使ってiOSのCI/CD環境を構築した際のまとめです。

Github ActionsでAndroidアプリのCI/CDをやってみた

FlutterでiOS/Androidアプリを開発していた際に、GithubActionsを使ってAndroidのCI/CD環境を構築した際のまとめです。

別スレッドからUIを操作しようとして引っかかった話

UnityでUniTaskを使って非同期処理を実装している際に、別スレッドからUIを操作しようとしてしまいエラーが出てはまったときの対応メモです。

Unity Cloud BuildでCI/CDとslackへの通知まで

Unity Cloud Buildを使用したCI/CD環境の構築と、ビルド過程の情報をslackに通知するまでの設定方法を解説しています。

オンラインイベントを運営する

コロナウイルスの影響もあり、様々なオンラインイベントが開催されるようになってきました。 僕も何度か運営や司会をやらせて頂けたので、その際に気をつけた点と便利だった機能やツールなどをまとめて紹介できればと思います。

【Editor拡張】Scene名一覧を持つクラスの自動生成

Unityで開発している時に、シーン名を定数文字列として持つクラスを作成することがあります。簡単な作業ですが、自動化できればありがたいなと思いEditor拡張を作りました。

Go + MySQL + Dockerで環境構築やってみた

Go + MySQL + Dockerを使って、環境構築をやってみた際に作成したDockerfileやdocker-compose.ymlの解説です。

1セメスターで50以上のゲームを開発したプロジェクトの話

アメリカの大学で実施された「可能な限り早いプロトタイピングにより、できるだけ多くの新しいゲームプレイを発見する」ことを目的としたプロジェクト「How to Prototype a Game in Under 7 Days」 短期間でゲームを作り続けて見えてきた事実が興味深い内容…

デザインパターンの解説と実装例!

頻出する問題解決の設計パターンであるデザインパターンをいくつか説明します。 デザインパターンを知っておくことは、共通言語にもなり得ますし、設計の引き出しも増えるでしょう。