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日土曜日