Unity ページ更新日 : 2024年2月28日星期三 ページ作成日 : 2022年3月30日星期三 ゲームを制作する上で多くの開発者が使用しているゲームエンジン「Unity」についての開発 Tips を公開しています。 ページ内リンク 導入 エディター設定 ゲーム公開 システム UI (ユーザーインターフェース) ユーザー入力 スプライト(2D) シーン 効果音 BGM プレハブ マップ (2D) 衝突処理 (2D) テクスチャー ファイル ローカライズ (多言語対応) 導入 本 Unity Tips について 当サイトに掲載している Unity Tips の仕様、規則について説明しています。 2023年7月29日星期六 Unity について ゲーム開発を行うことができる Unity について簡単に説明しています。 2023年7月29日星期六 Unity アカウントの作成 Unity で開発するにあたってアカウントを作成する必要があります。その手順について説明します。 2023年7月29日星期六 Unity をダウンロード・インストールする Unity をインストールして開発環境として Unity を使えるようにします。 2023年7月29日星期六 Unity のプロジェクトを作成する 実際にゲームを開発するためのプロジェクトを作成します。 2023年7月29日星期六 サンプルプロジェクトを動かしてみる (3D Sample Scene HDRP) ゲームがどのようにして動くのかをイメージするためにサンプルプロジェクトを作成して動かしてみます。 2023年7月29日星期六 チュートリアルのサンプルプロジェクトを動かしてみる (2D Platformer Microgame) ゲームがどのようにして動くのかをイメージするためにサンプルプロジェクトを作成して動かしてみます。 2023年7月29日星期六 エディター設定 Unity エディターを日本語化する Unity エディターは初期状態では英語表記になっているのでこれを日本語化します。 2023年6月29日星期四 コードを編集するエディターを変更する Unity エディターからコードを編集しようとしたときに起動するスクリプトエディターを変更する方法について説明します。 2023年6月29日星期四 ゲーム公開 Windows 向けのゲームを出力する Unity で制作したゲームを Windows 上で実行できる形式に出力する手順について説明します。 2023年9月29日星期五 IL2CPP を使用して Windows 向けゲームを事前にコンパイルする IL2CPP を使用することにより事前にネイティブコードにコンパイルしパフォーマンスやセキュリティの向上を行います。 2023年9月29日星期五 Web 向け (WebGL) のゲームを出力する Unity で制作したゲームを Web ブラウザ上で実行できる形式に出力する手順について説明します。 2023年9月29日星期五 Unity WebGL を ASP.NET Core で動かす Unity で制作したゲームを WebGL で出力し、ASP.NET Core が動作しているサイトでゲームを動かす方法について説明します。 2023年9月29日星期五 システム ゲーム解像度を変更する ゲーム起動時の解像度設定やゲームプレイ中の解像度変更の方法について説明します。 2023年10月31日星期二 ウィンドウモードとフルスクリーンモードを切り替える ゲーム実行中にウィンドウモードとフルスクリーンモードを切り替える方法について説明します。 2023年10月31日星期二 ウィンドウが非アクティブでもゲームを動かす 初期状態では Unity エディターを含めウィンドウが非アクティブ状態になっているとゲームが一時停止します。これをウィンドウが非アクティブ状態でも動くようにする方法について説明します。 2023年10月31日星期二 ゲームを終了する プログラムでゲームを終了する方法について説明します。 2023年10月31日星期二 UI (ユーザーインターフェース) カメラ(2D)とキャンバスを合わせる 初期状態では UI を配置するキャンバスの表示領域とゲームを表示するカメラ(2D)の表示領域が別々なのでそれを合わせます。 2023年12月9日星期六 Unity UI のボタンを使用する ボタンはユーザーがメニューなどで選択肢としてクリックしてもらうために使うこともできます。またデバッグやテストでも活用できます。 2023年11月28日星期二 Unity UI のドロップダウンを使用する ドロップダウンを使用することにより多数の選択項目を省スペースに配置して選択させることができます。 2023年12月27日星期三 ドロップダウンアイテムの一覧を表示したときに選択しているアイテムが先頭にくるようにスクロールする ドロップダウンアイテムの一覧を表示したとき選択アイテムの位置に関わらず一番上のアイテムが表示されます。これを選択しているアイテムが先頭にくるように表示する方法について説明します。 2023年12月27日星期三 UI オブジェクトからフォーカスが外れないようにする 通常 UI オブジェクト以外をクリックするとフォーカスが外れてしまいますが、疑似的にフォーカスが外れないように対応します。 2024年2月27日星期二 どのプラットフォームでも同じフォントを使用できるようにする 動作するプラットフォームごとに使用できるフォントは異なりますがどの環境でも同じフォントが使用できるようにする方法について説明します。 2024年2月27日星期二 WebGL で日本語を入力できるようにする 入力フィールドを配置したプログラムを WebGL で公開した際、直接日本語を入力することができないためその対処法を実装します。 2024年2月28日星期三 UI オブジェクトの選択をループさせる オブジェクトの通常配置では入力した方向にあるオブジェクトしか選択できませんが、ここでは下を入力したときに反対側にある上のオブジェクトを選択できるようにしています。 2024年2月27日星期二 ボタンの選択をアニメーションさせて分かりやすくする ボタンを選択したときにボタンを大きくさせて見た目的に分かりやすくします。 2023年12月9日星期六 ユーザー入力 入力システムパッケージ (Input System Package) を導入する ユーザーからの入力を受け付けるには Unity 初期のころからある「入力マネージャー」がありますが、途中のバージョンから導入された新しい「入力システムパッケージ」を使うためのセットアップを行います。 2023年6月29日星期四 キーボードで操作する (入力システムパッケージ版) ゲームをキーボードで操作する方法について説明します。 2023年7月29日星期六 マウスで操作する (入力システムパッケージ版) ゲームをマウスで操作する方法について説明します。 2023年7月29日星期六 ゲームパッドで操作する (入力システムパッケージ版) ゲームをゲームパッドで操作する方法について説明します。 2023年6月29日星期四 複数のゲームパッドを管理する ゲームパッドは同時に複数扱うことができます。ローカルマルチプレイなど複数人で遊ぶ場面などで使用できます。 2023年6月29日星期四 ジョイスティックで操作する (入力システムパッケージ版) ゲームをジョイスティックで操作する方法について説明します。 2023年10月31日星期二 アクションマップを使用してゲーム動作に対してボタンを割り当てる アクションマップを使用すると例えば移動やジャンプなどの行動に対してコントローラーのボタンなどを割り当てることができます。 2023年6月29日星期四 アクションマップを動的に設定する キーコンフィグなどキーやボタンの割り当てを自由にさせたいときなどアクションマップを動的に設定できる方法について説明します。 2023年6月29日星期四 On-Screen Control でタッチ向けの入力コントロールを使用する 入力システムパッケージには On-Screen Control というタッチ向けデバイスでの入力操作に対応した仕組みがあります。 2023年7月29日星期六 On-Screen Control をカスタマイズして方向パッドを実装する On-Screen Control は独自にカスタマイズすることができます。ここではスティック入力とは異なる方向パッドを実装してみます。 2023年7月29日星期六 スプライト(2D) スプライト(画像)を表示する スプライト(画像)をゲーム画面に表示させる方法について説明します。画像の表示ぐらいであれば Unity エディター上のみで完結できるので簡単です。 2023年10月31日星期二 スプライトの移動、回転、拡大縮小を行う ゲームでキャラクターを動かすようなイメージでスプライトをキーボードで動かしてみます。 2023年10月31日星期二 スプライトシートアニメーションを実装する 複数の画像を連続で切り替えて表示させ、絵が動いているかのように見せることができるスプライトアニメーションを作成してみます。 2023年10月31日星期二 ゲーム実行中にスプライトの画像を変更する ゲームを遊んでいるとスプライトの画像が頻繁に変わっているのを見かけると思います。ここではゲーム実行中にスプライトの画像を変更する方法について説明します。 2023年10月31日星期二 4方向スプライトキャラクターの歩行アニメーションを実装する RPG などによくある俯瞰視点フィールドでキャラクターを4方向に移動しながら歩くアニメーションを実装してみます。 2023年10月31日星期二 8方向スプライトキャラクターの歩行アニメーションを実装する RPG などによくある俯瞰視点フィールドでキャラクターを8方向に移動しながら歩くアニメーションを実装してみます。 2023年10月31日星期二 シーン シーンを切り替える ゲームでよくあるスタートのシーンからゲームプレイのシーンに遷移ようなシーンの切り替えを実装します。 2023年9月29日星期五 シーンを追加する 現在のシーンに別なシーンを追加して同時に表示させる方法について説明します。 2023年9月29日星期五 シーンの背景色を変更する シーンの背景色を変更する方法について説明します。 2023年9月29日星期五 効果音 単一の効果音の再生・一時停止・停止を行う 任意のタイミングで効果音の再生・一時停止・停止を行う方法について説明します。 2023年9月29日星期五 一つの音声を同時に複数再生する AudioSource のみでは単一の音しか再生できませんでしたが AudioClip を使用してひとつの音声データで複数同時に再生することができます。 2023年9月29日星期五 効果音の同時再生数を制御する PlayOneShot を使用すると音の重ね掛けができますが、上限がないため音量が大きくなりがちです。今回は同時再生数を制御して音量が大きくなり過ぎないようにしてみます。 2023年9月29日星期五 BGM BGM の再生・一時停止・停止・ループを行う BGM の再生・一時停止・停止・ループを行う方法について説明します。 2023年8月30日星期三 イントロ付きの BGM をループ再生する BGM のループ再生の中にはイントロ部分を1回だけ再生しループは途中から開始するものがあります。今回はそれを Unity で実現してみます。 2023年8月30日星期三 プレハブ プレハブを作成し大量のオブジェクトを管理する オブジェクトは複製して配置することができますが、設定を変える場合複製した数だけ変更する必要があります。プレハブを使うとコピー元設定として一括管理できるようになります。 2023年9月29日星期五 スクリプトからプレハブを元にオブジェクトを生成する 初期配置でプレハブからオブジェクトを配置できることが出来ましたがゲーム中に追加で配置したい場合もあると思います。ここではスクリプトによってプレハブからオブジェクトを配置してみたいと思います。 2023年9月29日星期五 マップ (2D) Unity 標準のタイルマップを使用して見下ろし型2Dマップを作成する 2D の RPG によるあるような見下ろし型2Dマップを Unity の標準機能であるタイルマップで作成してみます。 2023年8月30日星期三 2D Tilemap Extras を使用してオートタイルでマップを作成する 上下左右に繋がるマップチップを配置する際に毎回組み合わせを探して配置するのは面倒です。ここではオートタイルを使用して自動的にマップチップが接続されるようにしてみます。 2023年8月30日星期三 2D Tilemap Extras を使用してアニメーションタイルを作成する RPG のタイルマップでは滝の流れや波の動きなどマップチップの切り替えで動きを見せる表現が使われていることがあります。ここではそのアニメーションを実現させてみます。 2023年8月30日星期三 2D Tilemap Extras を使用してアニメーション付きオートタイルでマップを作成する オートタイルとアニメーションタイルを組み合わせてアニメーション付きオートタイルでマップを作成してみます。 2023年8月30日星期三 タイルマップとの当たり判定を実装する オブジェクトを動かしたときにタイルマップに衝突して重ならないようにする処理を実装します。 2023年8月30日星期三 マップチップの種類ごとに当たり判定を実装する 敷き詰められたマップチップの中から指定したマップチップの種類に対して当たり判定を行います。 2023年8月30日星期三 衝突処理 (2D) オブジェクト同士が衝突しているかどうかを判定する (2D) ゲームなどでよくある弾がキャラクターにあたる、キャラクター同士があたる、などに必要な衝突判定を実装する方法について説明します。 2023年6月29日星期四 衝突処理を標準機能の物理演算で行う (2D) 例えばプレイヤーキャラが他のキャラクターに当たったときに相手を押していくなどの処理を Unity 標準機能の物理演算に任せます。 2023年6月29日星期四 テクスチャー レンダーテクスチャーを使用して別のシーンの内容をテクスチャーとして表示させる 例えばゲーム内にあるディスプレイなどに別のシーンを表示させたい場合、レンダーテクスチャーを使用すると実現可能です。 2023年9月29日星期五 ファイル PlayerPrefs を使用してデータを読み書きする プレイデータや設定などを PlayerPrefs を使用して保存、読み込みします。 2023年6月29日星期四 persistentDataPath で指定された Unity 推奨のフォルダパスにデータを書き込む ゲームの設定データは任意の場所に保存できますが、ここでは persistentDataPath を使用して Unity 推奨のフォルダパスに保存します。 2023年6月29日星期四 ローカライズ (多言語対応) テキストを多言語対応し実行している環境に合わせてテキストオブジェクトのテキストを切り換える 作ったゲームを国内のみならず国外の人にも遊んでもらうにはその国の人たちが遊ぶことができるようにゲーム全体をローカライズする必要があります。ここではその一つとして配置したテキストオブジェクトを多言語対応します。 2023年8月30日星期三 国や言語に合わせて画像オブジェクトの画像を切り換える ローカライズはテキストだけではなく画像に対しても行えます。国や文化によって違う画像であったりテキストを画像化している場合にこの切り替え機能が便利です。 2023年7月29日星期六 任意のタイミングでロケールを変更する Unity 公式パッケージの Localization ではゲーム起動時にパラメータや環境に応じてロケールを自動設定していますが、ゲーム中に表示言語を変えたい場合など任意のタイミングでロケールを変更する方法について説明します。 2023年7月29日星期六 作成したロケールの一覧を取得する Localization パッケージで作成したロケールの一覧を取得する方法について説明します。ユーザーに一覧から選択させたい場合に便利です。 2023年8月30日星期三 任意のタイミングでローカライズしたテキストやアセットを取得する ローカライズされたテキストなどを UI 等で自動切換えするのではなくプログラムで任意のタイミングで取得する方法について説明します。 2023年7月29日星期六
サンプルプロジェクトを動かしてみる (3D Sample Scene HDRP) ゲームがどのようにして動くのかをイメージするためにサンプルプロジェクトを作成して動かしてみます。 2023年7月29日星期六
チュートリアルのサンプルプロジェクトを動かしてみる (2D Platformer Microgame) ゲームがどのようにして動くのかをイメージするためにサンプルプロジェクトを作成して動かしてみます。 2023年7月29日星期六
IL2CPP を使用して Windows 向けゲームを事前にコンパイルする IL2CPP を使用することにより事前にネイティブコードにコンパイルしパフォーマンスやセキュリティの向上を行います。 2023年9月29日星期五
Unity WebGL を ASP.NET Core で動かす Unity で制作したゲームを WebGL で出力し、ASP.NET Core が動作しているサイトでゲームを動かす方法について説明します。 2023年9月29日星期五
ウィンドウが非アクティブでもゲームを動かす 初期状態では Unity エディターを含めウィンドウが非アクティブ状態になっているとゲームが一時停止します。これをウィンドウが非アクティブ状態でも動くようにする方法について説明します。 2023年10月31日星期二
ドロップダウンアイテムの一覧を表示したときに選択しているアイテムが先頭にくるようにスクロールする ドロップダウンアイテムの一覧を表示したとき選択アイテムの位置に関わらず一番上のアイテムが表示されます。これを選択しているアイテムが先頭にくるように表示する方法について説明します。 2023年12月27日星期三
UI オブジェクトからフォーカスが外れないようにする 通常 UI オブジェクト以外をクリックするとフォーカスが外れてしまいますが、疑似的にフォーカスが外れないように対応します。 2024年2月27日星期二
どのプラットフォームでも同じフォントを使用できるようにする 動作するプラットフォームごとに使用できるフォントは異なりますがどの環境でも同じフォントが使用できるようにする方法について説明します。 2024年2月27日星期二
UI オブジェクトの選択をループさせる オブジェクトの通常配置では入力した方向にあるオブジェクトしか選択できませんが、ここでは下を入力したときに反対側にある上のオブジェクトを選択できるようにしています。 2024年2月27日星期二
入力システムパッケージ (Input System Package) を導入する ユーザーからの入力を受け付けるには Unity 初期のころからある「入力マネージャー」がありますが、途中のバージョンから導入された新しい「入力システムパッケージ」を使うためのセットアップを行います。 2023年6月29日星期四
アクションマップを使用してゲーム動作に対してボタンを割り当てる アクションマップを使用すると例えば移動やジャンプなどの行動に対してコントローラーのボタンなどを割り当てることができます。 2023年6月29日星期四
On-Screen Control でタッチ向けの入力コントロールを使用する 入力システムパッケージには On-Screen Control というタッチ向けデバイスでの入力操作に対応した仕組みがあります。 2023年7月29日星期六
On-Screen Control をカスタマイズして方向パッドを実装する On-Screen Control は独自にカスタマイズすることができます。ここではスティック入力とは異なる方向パッドを実装してみます。 2023年7月29日星期六
スプライト(画像)を表示する スプライト(画像)をゲーム画面に表示させる方法について説明します。画像の表示ぐらいであれば Unity エディター上のみで完結できるので簡単です。 2023年10月31日星期二
ゲーム実行中にスプライトの画像を変更する ゲームを遊んでいるとスプライトの画像が頻繁に変わっているのを見かけると思います。ここではゲーム実行中にスプライトの画像を変更する方法について説明します。 2023年10月31日星期二
4方向スプライトキャラクターの歩行アニメーションを実装する RPG などによくある俯瞰視点フィールドでキャラクターを4方向に移動しながら歩くアニメーションを実装してみます。 2023年10月31日星期二
8方向スプライトキャラクターの歩行アニメーションを実装する RPG などによくある俯瞰視点フィールドでキャラクターを8方向に移動しながら歩くアニメーションを実装してみます。 2023年10月31日星期二
一つの音声を同時に複数再生する AudioSource のみでは単一の音しか再生できませんでしたが AudioClip を使用してひとつの音声データで複数同時に再生することができます。 2023年9月29日星期五
効果音の同時再生数を制御する PlayOneShot を使用すると音の重ね掛けができますが、上限がないため音量が大きくなりがちです。今回は同時再生数を制御して音量が大きくなり過ぎないようにしてみます。 2023年9月29日星期五
イントロ付きの BGM をループ再生する BGM のループ再生の中にはイントロ部分を1回だけ再生しループは途中から開始するものがあります。今回はそれを Unity で実現してみます。 2023年8月30日星期三
プレハブを作成し大量のオブジェクトを管理する オブジェクトは複製して配置することができますが、設定を変える場合複製した数だけ変更する必要があります。プレハブを使うとコピー元設定として一括管理できるようになります。 2023年9月29日星期五
スクリプトからプレハブを元にオブジェクトを生成する 初期配置でプレハブからオブジェクトを配置できることが出来ましたがゲーム中に追加で配置したい場合もあると思います。ここではスクリプトによってプレハブからオブジェクトを配置してみたいと思います。 2023年9月29日星期五
Unity 標準のタイルマップを使用して見下ろし型2Dマップを作成する 2D の RPG によるあるような見下ろし型2Dマップを Unity の標準機能であるタイルマップで作成してみます。 2023年8月30日星期三
2D Tilemap Extras を使用してオートタイルでマップを作成する 上下左右に繋がるマップチップを配置する際に毎回組み合わせを探して配置するのは面倒です。ここではオートタイルを使用して自動的にマップチップが接続されるようにしてみます。 2023年8月30日星期三
2D Tilemap Extras を使用してアニメーションタイルを作成する RPG のタイルマップでは滝の流れや波の動きなどマップチップの切り替えで動きを見せる表現が使われていることがあります。ここではそのアニメーションを実現させてみます。 2023年8月30日星期三
2D Tilemap Extras を使用してアニメーション付きオートタイルでマップを作成する オートタイルとアニメーションタイルを組み合わせてアニメーション付きオートタイルでマップを作成してみます。 2023年8月30日星期三
オブジェクト同士が衝突しているかどうかを判定する (2D) ゲームなどでよくある弾がキャラクターにあたる、キャラクター同士があたる、などに必要な衝突判定を実装する方法について説明します。 2023年6月29日星期四
衝突処理を標準機能の物理演算で行う (2D) 例えばプレイヤーキャラが他のキャラクターに当たったときに相手を押していくなどの処理を Unity 標準機能の物理演算に任せます。 2023年6月29日星期四
レンダーテクスチャーを使用して別のシーンの内容をテクスチャーとして表示させる 例えばゲーム内にあるディスプレイなどに別のシーンを表示させたい場合、レンダーテクスチャーを使用すると実現可能です。 2023年9月29日星期五
persistentDataPath で指定された Unity 推奨のフォルダパスにデータを書き込む ゲームの設定データは任意の場所に保存できますが、ここでは persistentDataPath を使用して Unity 推奨のフォルダパスに保存します。 2023年6月29日星期四
テキストを多言語対応し実行している環境に合わせてテキストオブジェクトのテキストを切り換える 作ったゲームを国内のみならず国外の人にも遊んでもらうにはその国の人たちが遊ぶことができるようにゲーム全体をローカライズする必要があります。ここではその一つとして配置したテキストオブジェクトを多言語対応します。 2023年8月30日星期三
国や言語に合わせて画像オブジェクトの画像を切り換える ローカライズはテキストだけではなく画像に対しても行えます。国や文化によって違う画像であったりテキストを画像化している場合にこの切り替え機能が便利です。 2023年7月29日星期六
任意のタイミングでロケールを変更する Unity 公式パッケージの Localization ではゲーム起動時にパラメータや環境に応じてロケールを自動設定していますが、ゲーム中に表示言語を変えたい場合など任意のタイミングでロケールを変更する方法について説明します。 2023年7月29日星期六
作成したロケールの一覧を取得する Localization パッケージで作成したロケールの一覧を取得する方法について説明します。ユーザーに一覧から選択させたい場合に便利です。 2023年8月30日星期三
任意のタイミングでローカライズしたテキストやアセットを取得する ローカライズされたテキストなどを UI 等で自動切換えするのではなくプログラムで任意のタイミングで取得する方法について説明します。 2023年7月29日星期六