<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MainManager | 怪獣の2Dアクションゲーム制作開発記</title>
	<atom:link href="https://naiterukaiju.com/tag/mainmanager/feed/" rel="self" type="application/rss+xml" />
	<link>https://naiterukaiju.com</link>
	<description>Unityでゲームを作る方法を初心者目線で発信👾</description>
	<lastBuildDate>Wed, 06 May 2026 07:21:29 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://naiterukaiju.com/wp-content/uploads/2025/09/cropped-Enemy-32x32.png</url>
	<title>MainManager | 怪獣の2Dアクションゲーム制作開発記</title>
	<link>https://naiterukaiju.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Unity入門⑫】2Dアクションゲームで開始時にBGMを流そう！</title>
		<link>https://naiterukaiju.com/unity-2d-bgm/</link>
					<comments>https://naiterukaiju.com/unity-2d-bgm/#respond</comments>
		
		<dc:creator><![CDATA[怪獣]]></dc:creator>
		<pubDate>Thu, 01 Jan 2026 08:20:34 +0000</pubDate>
				<category><![CDATA[Unity2D入門（シリーズ）]]></category>
		<category><![CDATA[2Dゲーム]]></category>
		<category><![CDATA[BGM]]></category>
		<category><![CDATA[MainManager]]></category>
		<category><![CDATA[SE]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity初心者]]></category>
		<category><![CDATA[アクションゲーム]]></category>
		<category><![CDATA[ゲーム制作]]></category>
		<category><![CDATA[音楽]]></category>
		<guid isPermaLink="false">https://naiterukaiju.com/?p=554</guid>

					<description><![CDATA[前回の記事では、効果音をつける方法の解説しました！ 今回はゲームを起動した瞬間に、 BGMを自動再生する方法を解説します。BGMが入るだけで、画面の印象やゲームの世界観が一気に引き締まり、ゲームらしさがグッと増します！  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-10 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://naiterukaiju.com/wp-content/uploads/2026/04/9327DB85-EFD6-4A95-A63A-1FA1F0A35E85.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>こんにちは！夜の街2Dアクションゲームを制作中の怪獣です🦖</p>
</div></div>



<p>前回の記事では、効果音をつける方法の解説しました！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-prev">

<a href="https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ab%e3%80%912d%e3%82%a2%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%b2%e3%83%bc%e3%83%a0%e3%81%a7%e5%8a%b9%e6%9e%9c%e9%9f%b3%e3%82%92%e9%b3%b4%e3%82%89%e3%81%9d/" title="【Unity入門⑪】2Dアクションゲームで効果音を鳴らそう！" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://naiterukaiju.com/wp-content/uploads/cocoon-resources/blog-card-cache/b4c85c1c258ccc168f600ef2dd0dbe0b.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【Unity入門⑪】2Dアクションゲームで効果音を鳴らそう！</div><div class="blogcard-snippet external-blogcard-snippet">前回の入門では「敵を踏んで倒す処理」を実装しました！今回はそのアクションに効果音（SE）を追加して、より臨場感を出していきます！具体的には、「ジャンプした時」「敵にぶつかってダメージを受けたとき」「敵を上から踏んで再ジャンプしたとき」という...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ab%e3%80%912d%e3%82%a2%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%b2%e3%83%bc%e3%83%a0%e3%81%a7%e5%8a%b9%e6%9e%9c%e9%9f%b3%e3%82%92%e9%b3%b4%e3%82%89%e3%81%9d/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">naiterukaiju.com</div></div></div></div></a>
</div>



<p>今回はゲームを起動した瞬間に、 <strong><span class="marker-under-red">BGMを自動再生</span></strong>する方法を解説します。<br>BGMが入るだけで、画面の印象やゲームの世界観が一気に引き締まり、ゲームらしさがグッと増します！</p>



<p>BGMはゲーム全体で共通の要素なので、<br>今回は <strong>MainManagerで一括管理</strong>し、<strong>UnityのInspectorから設定できる形</strong>にします。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">この記事ですること</a></li><li><a href="#toc2" tabindex="0">① BGM用Prefabを作成する</a><ol><li><a href="#toc3" tabindex="0">BGMオブジェクトを作成</a></li><li><a href="#toc4" tabindex="0">Prefab化する</a></li></ol></li><li><a href="#toc5" tabindex="0">② MainManagerに処理を書く</a></li><li><a href="#toc6" tabindex="0">③各処理の説明（初心者向け）</a><ol><li><a href="#toc7" tabindex="0">BGMの設定、制御について</a></li><li><a href="#toc8" tabindex="0">_PlayBGM()</a></li></ol></li><li><a href="#toc9" tabindex="0">④ Unity上でBGMを設定する方法</a></li><li><a href="#toc10" tabindex="0"> 動作確認</a></li><li><a href="#toc11" tabindex="0">トラブルシューティング</a><ol><li><a href="#toc12" tabindex="0">BGMが鳴らない</a></li><li><a href="#toc13" tabindex="0">BGMが二重で鳴る</a></li></ol></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">この記事ですること</span></h2>



<ul class="wp-block-list">
<li>ゲーム開始時にBGMが自動で再生される</li>



<li>BGMは MainManager が管理する</li>



<li>BGMの設定は <strong>コードを書き換えず Inspector から変更できる</strong></li>
</ul>



<figure class="wp-block-video"><video height="480" style="aspect-ratio: 852 / 480;" width="852" controls src="https://naiterukaiju.com/wp-content/uploads/2026/01/無題のビデオ-‐-Clipchampで作成-12.mp4"></video></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc2">① BGM用Prefabを作成する</span></h2>



<h4 class="wp-block-heading">Prefabとは？</h4>



<p>ゲームオブジェクトを<strong>“部品（パーツ）”</strong>として保存したものです。<br>Prefab化すると「一括管理」できるので、調整作業がラクになります！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc3">BGMオブジェクトを作成</span></h3>



<p>Prefab化するように、まずはBGMオブジェクトを作成していきます。</p>



<p><strong>Hierarchy → Create Empty → 名前を <code>BGM</code>に変更する</strong></p>



<ul class="wp-block-list">
<li><code>AudioSource</code> を追加し、以下を設定します。</li>
</ul>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1000" height="622" src="https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-15.png" alt="AudioSource の設定" class="wp-image-556" srcset="https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-15.png 1000w, https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-15-300x187.png 300w, https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-15-768x478.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p><code>AudioSource</code>は以下を設定します。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>設定</th></tr></thead><tbody><tr><td>AudioClip（再生する音声ファイルを指定）</td><td>使用したいBGMをドラッグする</td></tr><tr><td>Play On Awake（オブジェクトが生成された瞬間に自動再生するか）</td><td>✅ ON</td></tr><tr><td>Loop（音を繰り返し再生するか）</td><td>✅ ON</td></tr><tr><td>Volume（音量）</td><td>0.2〜0.5（好み）</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">Prefab化する</span></h3>



<p>Hierarchy の <code>BGM</code> を Project ウィンドウへドラッグして Prefab にします。<br>Prefab化したら、<strong>シーン上の BGM オブジェクトは削除してOK</strong>です。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="622" src="https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-16.png" alt="Prefab化" class="wp-image-558" srcset="https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-16.png 1000w, https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-16-300x187.png 300w, https://naiterukaiju.com/wp-content/uploads/2025/12/↑作成したUIをドラッグする-16-768x478.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc5">② MainManagerに処理を書く</span></h2>



<p>MainManager.csに以下の処理を書いていきます。(コピペOK！)</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>using UnityEngine;

public class MainManager : MonoBehaviour
{
    &#91;SerializeField, Header("BGM設定")&#93; private GameObject _bgmPrefab; // ← BGM を割り当て
    private static GameObject _bgmInstance;

    private void Awake()
    {
        // BGM開始
        _PlayBGM();
    }

    private void _PlayBGM()
    {
        // すでにBGMが生成されている場合は何もしない
        if (_bgmInstance != null) return;

        // BGMを生成（Prefab側の Play On Awake で再生される）こ
        _bgmInstance = Instantiate(_bgmPrefab);

        // シーンをまたいでもBGMを維持したい場合
        DontDestroyOnLoad(_bgmInstance);
    }
}
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">using</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">UnityEngine</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #9CDCFE">public</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">class</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">MainManager</span><span style="color: #D4D4D4"> : </span><span style="color: #4EC9B0">MonoBehaviour</span></span>
<span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #D4D4D4">    &#91;</span><span style="color: #9CDCFE">SerializeField</span><span style="color: #D4D4D4">, </span><span style="color: #DCDCAA">Header</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;BGM設定&quot;</span><span style="color: #D4D4D4">)&#93; </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">GameObject</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_bgmPrefab</span><span style="color: #D4D4D4">; </span><span style="color: #6A9955">// ← BGM を割り当て</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">static</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">GameObject</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">void</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Awake</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">    {</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// BGM開始</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">_PlayBGM</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">private</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">void</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">_PlayBGM</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">    {</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// すでにBGMが生成されている場合は何もしない</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4"> != </span><span style="color: #569CD6">null</span><span style="color: #D4D4D4">) </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// BGMを生成（Prefab側の Play On Awake で再生される）こ</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">Instantiate</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">_bgmPrefab</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// シーンをまたいでもBGMを維持したい場合</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">DontDestroyOnLoad</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc6">③各処理の説明（初心者向け）</span></h2>



<h3 class="wp-block-heading"><span id="toc7">BGMの設定、制御について</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>&#91;SerializeField, Header("BGM設定")&#93;
private GameObject _bgmPrefab;
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SerializeField</span><span style="color: #D4D4D4">, </span><span style="color: #DCDCAA">Header</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;BGM設定&quot;</span><span style="color: #D4D4D4">)&#93;</span></span>
<span class="line"><span style="color: #9CDCFE">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">GameObject</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_bgmPrefab</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<ul class="wp-block-list">
<li><strong>Unity上のInspectorに表示するための属性</strong></li>



<li>Unity上の設定で、①でPrefabしたBGMをドラッグします</li>
</ul>



<p>Inspectorでは次のように表示されます⬇️</p>



<pre class="wp-block-code"><code>MainManager
 └ BGM設定
     └ Bgm Prefab
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>private static GameObject _bgmInstance;</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">private</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">static</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">GameObject</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p>この変数は、<strong>今、BGMがすでに存在しているか？</strong>を覚えておくためのものです。<br>後に説明していますが、この情報を持たせておくことで<span class="marker-under-red"><strong>BGMの二重再生防止</strong></span>ができます。<br>また、<strong>static</strong>にすることで以下の設定をすることができます。</p>



<ul class="wp-block-list">
<li>新しい MainManager が作られても参照できるようになる</li>



<li>シーンが変わっても値が保持される（シーンをまたいでもBGMを維持したい場合）</li>
</ul>



<h3 class="wp-block-heading"><span id="toc8">_PlayBGM()</span></h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>if (_bgmInstance != null) return;</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4"> != </span><span style="color: #569CD6">null</span><span style="color: #D4D4D4">) </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p>すでにBGMが存在していたら、何もしないということをしています。</p>



<ul class="wp-block-list">
<li>BGMが鳴っている状態で</li>



<li>もう一度生成するのを防ぐ</li>
</ul>



<p><strong>これで二重再生を防止するようにしています。</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>_bgmInstance = Instantiate(_bgmPrefab);</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">Instantiate</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">_bgmPrefab</span><span style="color: #D4D4D4">);</span></span></code></pre></div>



<p>BGMのPrefabを生成して、変数に保存しています。</p>



<ul class="wp-block-list">
<li>Prefabを実体化</li>



<li>生成されたオブジェクトを <code>_bgmInstance</code> に代入</li>
</ul>



<p>これで、<strong>「今鳴っているBGMはこれだ」</strong>と MainManager が把握できるようになります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>DontDestroyOnLoad(_bgmInstance);</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">DontDestroyOnLoad</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">_bgmInstance</span><span style="color: #D4D4D4">);</span></span></code></pre></div>



<p>シーンが切り替わっても、このBGMを消さない、ということをしています。</p>



<ul class="wp-block-list">
<li>リトライ</li>



<li>ステージ切り替え</li>



<li>タイトル → ゲーム</li>
</ul>



<p>でも <strong>同じBGMを鳴らし続けたい場合</strong> に使います。</p>



<p>※ シーンごとにBGMを変えたい場合は、この行を削除 or 制御を変えます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc9">④ Unity上でBGMを設定する方法</span></h2>



<ol class="wp-block-list">
<li>Hierarchyで <strong>MainManager</strong> を選択する</li>



<li>Inspectorの「<strong>BGM設定</strong>」欄を確認</li>



<li><code>Bgm Prefab</code> に<br>作成した <strong>BGM.prefab</strong> を<strong>ドラッグ＆ドロップ</strong>します</li>
</ol>



<p>これで設定完了です✨<br><strong>コードを触らずにBGMを差し替え可能</strong>になります。</p>



<h2 class="wp-block-heading"><span id="toc10"> 動作確認</span></h2>



<figure class="wp-block-video"><video height="480" style="aspect-ratio: 852 / 480;" width="852" controls src="https://naiterukaiju.com/wp-content/uploads/2026/01/無題のビデオ-‐-Clipchampで作成-12.mp4"></video></figure>



<p>➡️BGMを入れることで一気にゲームの世界観が出ますね！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc11">トラブルシューティング</span></h2>



<p>上手くいかない場合は以下を見直してみてください。</p>



<h3 class="wp-block-heading"><span id="toc12">BGMが鳴らない</span></h3>



<ul class="wp-block-list">
<li>Inspectorで <code>_bgmPrefab</code> が未設定になっている</li>



<li>AudioSource の <code>Play On Awake</code> が OFFのまま</li>



<li>AudioClip が未設定になっている</li>
</ul>



<h3 class="wp-block-heading"><span id="toc13">BGMが二重で鳴る</span></h3>



<ul class="wp-block-list">
<li><code>static GameObject _bgmInstance</code> が無い</li>



<li><code>DontDestroyOnLoad</code> を使っているのに<br>別シーンにも MainManager が存在している</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc14">まとめ</span></h2>



<ul class="wp-block-list">
<li>BGMは MainManager で管理するのがわかりやすい</li>



<li>SerializeField + Header を使うと Inspector から設定できる</li>



<li>Prefab化 + Instantiate で柔軟なBGM再生が可能</li>



<li>static管理で二重再生を防ぐ</li>
</ul>



<p>この記事では<strong>ゲーム開始時に</strong>BGMを自動再生させる方法を解説しました。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-10 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://naiterukaiju.com/wp-content/uploads/2026/04/9327DB85-EFD6-4A95-A63A-1FA1F0A35E85.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>最後まで読んでいただきありがとうございました！</p>
</div></div>



<p>この記事が少しでもゲーム制作に役立てたら嬉しいです🦖<br><br>次回の記事では、「プレイヤーがマップから落下したら、ゲームオーバーUIを表示する」実装方法を解説していきます！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-next">

<a href="https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ac%e3%80%91%e8%90%bd%e4%b8%8b%e3%81%97%e3%81%9f%e3%82%89%e3%82%b2%e3%83%bc%e3%83%a0%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%ef%bc%81%e3%82%b2%e3%83%bc%e3%83%a0/" title="【Unity入門⑬】落下したらゲームオーバー！ゲームオーバーUIを表示させよう" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://naiterukaiju.com/wp-content/uploads/cocoon-resources/blog-card-cache/b4c85c1c258ccc168f600ef2dd0dbe0b.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【Unity入門⑬】落下したらゲームオーバー！ゲームオーバーUIを表示させよう</div><div class="blogcard-snippet external-blogcard-snippet">前回の記事では、ゲーム開始時にBGMをつける方法の解説しました！今回は「プレイヤーがマップから落下したら、ゲームオーバーUIを表示する」実装方法を解説します。落下判定は2Dアクションでよく使う定番ギミックです。ミスしたかが分かりやすくなるの...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://naiterukaiju.com/%e3%80%90unity%e5%85%a5%e9%96%80%e2%91%ac%e3%80%91%e8%90%bd%e4%b8%8b%e3%81%97%e3%81%9f%e3%82%89%e3%82%b2%e3%83%bc%e3%83%a0%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%ef%bc%81%e3%82%b2%e3%83%bc%e3%83%a0/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">naiterukaiju.com</div></div></div></div></a>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://naiterukaiju.com/unity-2d-bgm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://naiterukaiju.com/wp-content/uploads/2026/01/無題のビデオ-‐-Clipchampで作成-12.mp4" length="524567" type="video/mp4" />

			</item>
	</channel>
</rss>
