UnityのためのC#
今回はUnity公式のカメラ制御システムであるCinemachineを使って、マウスなどでカメラをコントロールしつつも、ダッシュ時には進行方向に自動で向いてくれるカメラを作ってみたいと思います。 カメラの制御は特に3Dゲームで重要で、カメラ操作が多すぎるとプ…
オブジェクト・プールというのはプログラミング・パターンのひとつで、あらかじめオブジェクトを生成してプール(備蓄)しておくことで実行中の負荷を減らそうという手法です。 Unityでもよく使われるパターンのひとつですが、Unity 2021にてオブジェクト・…
今回はC#シリアライザであるMessagePack-C#のUnity (2022.3.8f1)での使い方についてまとめたいと思います。著者もまだまだ使い始めであり、あくまで最低限使えるようになるまでの入門編ですので、ご了承ください。(約3500文字) [追記] この記事を書いた直…
Unity公式のe-bookでScriptableObjectへの理解が進んだとは言え、モヤモヤは残っていました。結局、ScriptableObjectって何なのか、と。しかし、遂に自分なりの答えを見つけることが出来たのでここに記します。 ScriptableObjectとは、アセット化することの…
今回はScript Templatesを自分で作成することで、Unity上でのスクリプト作成を効率化する方法について書いていきます。 Unity公式による、コーディング・スタイルについてまとめたe-book "Create a C# style guide"を参考にしています。スクリプト・テンプレ…
今回はScriptableObject(スクリプタブル・オブジェクト)をより使いこなすためのエディター拡張テクニックをUI toolKitで再現しようという試みです。 内容はタイトルの通りですが、ゲームオブジェクト側のインスペクターからScriptableObjectのデータを操作…
UnityにおいてColliderが衝突した時に呼び出されるOnCollisionEnterを利用して、ボールが綺麗に跳ね返る、あるいは反射する壁を作ってみました。ここでのボールとはRigidbodyコンポーネントを持ち、物理挙動をするボールのことです。 単純にボールがバウンド…
Unity 2021LTS版がリリースされました。多くの新機能があるのですが、今回はUnityが、C#8.0に対応したことで可能となった、新しいswitchの書き方についてです。 なお、文とは"statement"を指しますが、この新しい構文は厳密にはstatement(文)ではなく"式"…
Unityでの画作りに欠かせない存在となっているポスト・エフェクトをC#スクリプトから操作する方法について簡単にまとめます。なおユニバーサル・レンダーパイプラインでの実践となるので、ご了承ください。 シーンにGlobal Volumeを作成、Post Processing Pr…
2021.2以降、Unity UIでのテキストはTextMeshProに完全に置き換わりつつあるようで、今回はそのテキスト内容をどう変更するかについてです。 TextMeshProはもはやUnityの基本システムであり、標準でパッケージがインストールされています。問題は以前(Legacy…
Input Systemが正式導入されて、二年ほど経つわけで今更なのですが、しばらくUnityに触ってなかった自分のような者にとっては、なかなか触りにくい新機能でした。 しかし、そうも言っていられず、最近ようやく触り始めていて、その素晴らしさに感激している…
Layer(レイヤー)とは、ゲーム・オブジェクトを分類したり、あるいは物理演算や衝突判定において、各レイヤー間でぶつかるかどうかを設定したりするのに使える、Unityの基本システムの一つです。 ビルトイン(組み込み)・レイヤーとして、DefaultやTranspa…
少し気になったことがあったので書きます。環境はWindows10でUnity2020.3.22です。お前の使い方、環境が悪い!案件だったらすいません。と、この記事を書いた後に調べてみたら、どうやら自分の勘違いでした! 結論から言えば、GetComponentInParentやGetComp…
前回は前置きだけで終わってしまったので、今回はいよいよDOTSで制作した玉転がしゲームの中身について書いていきます。8000文字を超える大作です! 本ブログのチャンネルを設立し、テストプレイ動画をアップしました。音もない状態ですがひとまず。 DOTS及…
Unityの新たな可能性の一端を示すUnity 2019.3ですが、その中でDOTSの開発は大きく進み、プレビュー版ではありますが自分なりにいろいろ試しています。まだ分からないことが多いですが、かなり面白いです! [ 追記 2023/06 ] Unity 2022 LTSにて、ECS(Entiti…
オープンワールド・ゲームにおいて、BGMを自然に切り替える、クロスフェードする方法をUnity上で再現してみたので、その経緯と結果をまとめます。そして、自分なりにやってみた後で、FMODという画期的なオーディオ・ソフトウェアに出会ったので、それについ…
下から叩くと画面を揺らし、画面上にいる敵キャラを全部倒す、というブロックをUnity2Dで再現してみました!一気に敵を一掃できる爽快感溢れるアクションになりますが、これを上手くやるためにはカメラを揺らすだけでなく、ポリモーフィズムと継承を上手く活…
スーパードンキーコング・シリーズと言えば、レア社と任天堂による、SFCの傑作2Dアクションゲーム三部作です。今回はその"バナナ"や☆の獲得後の動きを再現してみました。 本シリーズのバナナは言わば、マリオにおけるコインのような存在で、100本集めると一…
Unityでのスクリプト作成、コーディングにおいて重要であり、かつ基本的なメソッドである"GetComponent"について、まとめてみます。 そして、そもそも"参照(リファレンス)を得る"ということはどういうことか?という基本的な部分についても書いてみたいと…
今回はUnity上で、マリオなどのアクションゲームで目にする"下から叩くとアイテムを出すブロック"を再現してみたいと思います。Unity2Dになりますので、3Dとの違いにご注意を。 完成版のGIFです。こんな感じでニュッと出るようにしました。明らかに敵っぽい…
人間にとって、意味のない識別番号を読みやすく、理解しやすくするために、列挙体"enum"は重要な存在! ※2017/07/12 じゃんけんの例を追記 ゲームと列挙体 ドラクエのやくそう、ポケモンのモンスターボールなど。ゲームにおいて、アイテムというものは無くて…
"Rigidbody"を使った動く足場、床の作り方、それに乗ったプレイヤーと足場を同期させる方法について。現時点での解決法のまとめ! この行ったり来たりする、宙に浮く足場というものは、マリオをはじめたとしたアクションゲーム(海外で言うところの"Platform…
物事には自然な順序があり、それはもちろんプログラムにもあるだろう、という部分から考えてみました。コードの自然な流れの感覚を身につける、ということについて。 プログラミングにおける基本原理。 プログラミングにおける基本要素としては、変数、関数…