【Unity】コルーチン入門

コルーチンとは? Unityでゲームを作っていると、「3秒待ってから次の処理を実行したい」「フェードアウトを少しずつ進めたい」といった、時間に関わる処理を書きたくなる場面が出てきます。 こうした処理をUpdateだけで書こうとすると、経過時間を測るための変数を用意し、毎フレーム加算して、しきい値を超えたかどうかを判定して……と、コードがあっという間に膨らんでいきます。 using UnityEngine; public class WaitWithUpdate : MonoBehaviour { private float _elapsedTime; private bool _isWaiting = true; private void Update() { if (_isWaiting) { // 経過時間を加算する _elapsedTime += Time.deltaTime; // 3秒経過したかチェックする if (_elapsedTime >= 3f) { Debug.Log("3秒経過しました"); _isWaiting = false; } } } } たった「3秒待ちたい」だけなのに、状態を管理するフラグや経過時間の変数が必要になってしまいます。 こんなときに便利なのがコルーチン(Coroutine)です。 コルーチンを使うと、処理の途中で一時停止して、後で再開するような書き方ができます。 Updateに状態管理を持ち込まずに、自然な流れで「待つ」処理を書けるのが利点です。 Unity Docs Unity - Manual: Write and run coroutines docs.unity3d.com 先ほどの3秒待つ処理を、コルーチンで書き直してみると以下のようになります。 using System.Collections; using UnityEngine; public class WaitWithCoroutine : MonoBehaviour { private void Start() { // コルーチンを開始する StartCoroutine(WaitAndLog()); } private IEnumerator WaitAndLog() { // 3秒待つ yield return new WaitForSeconds(3f); Debug.Log("3秒経過しました"); } } フラグも経過時間の変数もなくなり、コードを上から下へ追うだけで処理の流れが読み取れます。
  • Unity
  • C#

【Unity】Unity CLIでEditorを操作する|起動中のEditorに接続してターミナルやClaude Codeから指示する

前回の記事では、Unity CLIを使ってEditorのインストールやプロジェクトを開く操作をターミナルから行う方法を紹介しました。 🔗 関連記事 Unity CLIのインストールからプロジェクトを開くまでの手順は、こちらで解説しています。 【Unity】Unity CLIの使い方|インストールからEditor追加・プロジェクトを開くまでコマンドで操作する Unity CLIとは、Unity Hubアプリを使わずにターミナルからEditorのインストールやプロジェクトの起動を行えるツールです。インストール手順とコマンド例、batchmodeやHub CLIとの違い、experimental版を使うときの注意点まで解説します。 GARNET LOG あとで読む Unity CLIには、起動中のUnity Editorにつないで、シーンの中身を直接操作する機能もあります。 今回はこの機能を使い、ターミナルからキューブを配置したあと、同じ作業をClaude Codeにお願いするところまでを試します。 Unity Docs Introduction to the Unity command-line interface (CLI) • Unity command-line interface (CLI) • Unity Docs Install, update, and use the Unity CLI to manage Unity Editors and modules from a terminal. docs.unity.com Unity CLIでEditorを操作するとは? Unity CLIは、起動中のUnity Editorと通信して、GameObjectの作成やシーンの保存、C#コードの実行などを行えます。 この通信を受け持つのが、プロジェクトに追加するPipelineパッケージ(com.unity.pipeline)です。 Pipelineパッケージを入れたEditorはローカルでサーバーを立ち上げ、CLIからのコマンドを受け付けます。 すでに起動しているEditorに対して命令を送るので、batchmodeのように毎回Editorを立ち上げ直す必要はありません。 Unity CLIに同梱されているスキルの説明では、起動済みのEditorへの命令はおよそ200〜600ミリ秒で返ってくるとされています。 なお、AIからUnityを操作する方法としてはUnityMCPもあります。 UnityMCPはMCPサーバーを介してAIクライアントにUnity操作用のツールを渡す仕組みです。 今回紹介する方法は、AIにターミナルでunityコマンドを打ってもらう形になります。
  • Unity
  • UnityCli
  • 開発ツール

【Unity】AudioSource入門 - BGM・SEの再生から3Dサウンドまで

AudioSourceとは? AudioSourceは、AudioClipを再生するためのコンポーネントです。 GameObjectにアタッチして使用し、BGMや効果音、ボイスなどゲーム中のあらゆるサウンド再生で利用されます。 AudioSourceは単体では動作せず、シーン内にAudioListener(音を「聞く」側)が存在することで初めて音が鳴ります。 AudioListenerはデフォルトでMainCameraにアタッチされているので、特に意識しなくても再生はできるようになっています。 Unity Docs Audio Source - Unity マニュアル Audio Source は、シーン内で Audio Clip を再生します。クリップは AudioListener や Audio Mixer を通して再生することが可能です。Audio Clipが 3D クリップの場合、ソースは、所定の位置で再生され、距離が離れると弱まります。オーディオはスピーカー間で広がり (ステレオ - 7.1) (Spread)、3D と 2D 間で変わります (SpatialBlend)。これは、減衰曲線を使用して距離に応じて制御できます。また、リスナー が 1 つまたは複数の リバーブゾーン 内にある場合、ソースに反響が適用されます。オーディオソースごとに個別のフィルターを適用して、さらに豊かなオーディオ体験を実現できます。詳細については、オーディオ効果 を参照してください。 docs.unity3d.com 音の流れをざっくり整理すると、以下のようになります。 AudioClip … 再生する音データ(.wav, .mp3, .oggなど) AudioSource … AudioClipを再生する「スピーカー」 AudioListener … 音を受け取る「耳」(通常はカメラに付与) この3つの関係性を押さえておくと、後の3Dサウンドの話も理解しやすくなります。
  • Unity
  • Audio

【Unity】Fab.comでアセットを手に入れる|期間限定無料と他エンジン向け素材

Fabとは? ゲーム開発では、3Dモデルやテクスチャ、エフェクトといった素材(アセット)を、自分で全部作るのは大変です。 Unityなら公式のUnity Asset Storeがありますが、それ以外にも使えるマーケットがあります。 そのひとつが、Epic Gamesが運営しているFab(fab.com)です。 外部記事 Fab Fab is a digital marketplace that offers creators a single destination to discover, share, buy and sell high quality, real-time-ready game assets, environments, VFX, audio, animations, characters, plug-ins, and more. Fab.com Fabは、リアルタイム向けのゲームアセットを探して、共有・購入・販売できるデジタルマーケットプレイスです。 Unreal Engine MarketplaceはすでにFabへ統合済みで、QuixelのMegascansもFab側へ移ってきています。 名前だけ聞くと「Unreal専用のストア」と思いがちですが、実際はそうではありません。 Unreal Engine向けだけでなく、UnityやGodotなど、他のゲームエンジンでも使えるアセットが並んでいます。 Unityユーザーにとっても、素材のもう一つの入手先として知っておく価値があります。 公式の購入・ダウンロード手順はこちらです。 外部記事 Purchasing and Downloading Assets in Fab | Fab Documentation | Epic Developer Community Learn how to search, view, and download products in Fab. Epic Games Developer
  • Unity
  • Asset
  • Fab