【Unity】Debug.Logの色を変えてゲーミングコンソール芸で遊ぶ
Debug.Logなどのメソッドでは、引数のstringに対してリッチテキストのタグをつけることで色を変更するなどの便利機能があります。このページではその機能を遊び方向に使ってゲーミングコンソールウィンドウを表現してみたいと思います。たまには無駄を楽しむのも良いですね(ご満悦)
あなたのゲームをいち早く完成させるための研究所
Debug.Logなどのメソッドでは、引数のstringに対してリッチテキストのタグをつけることで色を変更するなどの便利機能があります。このページではその機能を遊び方向に使ってゲーミングコンソールウィンドウを表現してみたいと思います。たまには無駄を楽しむのも良いですね(ご満悦)
Debug.Logでメッセージを出力する際、大量のメッセージがあると必要な部分の判別が難しくなります。そんな時にはリッチテキストのタグを使って色分けすると必要な情報が見分けやすくなり、ゲームのデバッグサイクルが高速化するのでおすすめです。
オブジェクト指向プログラミングの本を読んでいると、最初の頃の章でカプセル化とか隠蔽が出てきます。のっけから初心者の心理的なハードルを上げる言葉が並べられて当時は辛かったのですが、あの頃の気持ちを思い出しつつ自分の言葉でまとめようと頑張った記事がこちらになります。ご査収のほどよろしくお願いします。
C#でアクセシビリティレベルを表現するために使うアクセス修飾子を紹介しています。このうちpublicについてはUnityで特別な位置付けにあるので、C#での扱いとUnityでの扱いの両方を加味して選択するとグッド。
Unityで使っているC#はオブジェクト指向のプログラミング言語で、継承やオーバーライドの機能を上手く使えると効率よくコーディングできます。この記事では本当に導入レベルの話をしていて、キーワードの紹介に近いので他のページも一緒に参照するといいかもしれません。
TransformクラスのSetAsFirstSiblingなどを使うことでHierarchyウィンドウで親オブジェクト内の順番を変更することができます。UIの場合はHierarchyウィンドウでの順番が描画順に影響してくるのでたまに意識してみると良いかも。
thisキーワードを使ってそのインスタンス自身を表す、というのは最初はよく分かっていなかったのですが、使ってみると便利でした。特にフィールドに値をセットしたい時にはthisを使ってフィールドであることを分かりやすくするのも大切ですね。
Hierarchyウィンドウではゲームオブジェクト間で親子関係を設定することができます。適切に親子関係を設定しておくことで、Hierarchyウィンドウから情報を確認しやすくなり、開発やテストのスピードが向上します。スクリプトから親子関係を設定する場合はTransformのSetParentメソッドを使うのが便利なので、これをマスターしましょう。
このページでは主にゲーム全体で使いたい設定値、定義値をstaticなクラスに記載する際、constとstatic readonlyのどちらを使った方がいいかなーという点を出発点に、コンパイル時定数と実行時定数の違いを掘り下げています。
UnityではMonoBehaviourを継承したクラスを作ることが多いですが、これ以外にもいわゆるC#で作成するような通常のクラスを作成して使っていくことで柔軟にコーディングできます。また、staticなクラスも適切に使っていくことで、ゲーム内のデータを保持したり設定値や定義値を保持することもできます。
ブロック崩しのように大量のオブジェクトを配置する必要のあるゲームでは、手動でオブジェクトを配置していくのは大変です。スクリプトとPrefabを使えばボタンひとつでオブジェクトを配置してくれるようになってかなり便利。なので、このサンプルを試してみてくださいな。
作成したGameObject(ゲームオブジェクト)を削除したい場面は大きく分けて2つあり、ひとつは開発中にヒエラルキーウィンドウで不要なオブジェクトを削除したい時、もうひとつはゲームの実行中に不要なオブジェクトを削除したい時です。この2通りについて解説しています。
他のオブジェクトにアタッチしたスクリプトのメソッドを呼び出したい! なんて思うことは多々あります。大きく分けて3つの方法がありますが、その使い分けの方針について解説しています。
コードを少し変更したらすぐにテストすることをおすすめします。細かい単位でテストしていくことで、バグの解決が簡単になります。なるべく解決が容易なうちに修正しておくとスムーズにゲーム作りを進められます。
世界一有名なおまじないである『Hello World!』の表示をUnityでやってみます。初心者向けに画像付きで解説しています。
ソートアルゴリズムの一種であるヒープソートは、ヒープの性質、法則性が分かると簡単に実装できます。実行も速いのでぜひ挑戦してみてね。
ヒープソートの前段階として、配列をヒープ構造に変換する処理を実装します。初心者の頃はヒープってわかりにくかった記憶があるので、絵で解説してます。
挿入ソートは配列の要素をずらして移動させるソート方法。リアルな世界で本棚を整理するときのことを思い浮かべたら分かりやすいかもしれません。
交換ソートの性能比較を行いました。数字で比較すると、オーダーでの比較に現れない差異が見て取れて楽しいですね。
交換ソートのひとつであるクイックソートは、ソートするならクイックソートで、と言われるくらいには速いソート方法です。バブルとクイックは押さえておきたいところ。