質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1905閲覧

ボタンを押すと音が鳴り画面移動する動作を教えてください

jo1jo2jo3

総合スコア45

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/07/05 18:21

編集2020/07/05 18:55

1わからない事
セレクト画面でステージボタンを押したら音が鳴るようにしたいですがどのようにすればよいのでしょうか?
このScriptに追加、または別方法でおしえてください。
よろしくお願いします。
ボタンを押すと音が鳴り画面移動する動作がしたいです。

2試した事
サイトをみて追加したりしました。
クリックしたら音がなるスクリプトを別でOnclickへプラスしましが  StageSelectManagerのScriptを停止しないと
動かなかった為、削除しました。

試した追加コード↓  追加したらvoid エラー出ました。
private AudioSource audioSource;//オーディオソース
audioSource = gameObject.GetComponent<AudioSource> ();

    public void ButtonClick()
{
button_AudioSource.PlayOneShot(button_AudioSource.clip);
}
}

   

参考にしたサイト
https://atoz-gamedia.com/2018/11/24/2daction-sample-10/

3  StageSelectManagerのScript添付します。

   画面12個ボタンがります。
ボタンを押すとクリック音が鳴り、ステージ画面に進みたいです。
現在ボタンUIにはステージ移動のOnclickが設定されています。

イメージ説明

このコードにクリック音を追加できますか?

using

1using UnityEngine.UI; 2using System.Collections; 3 4using UnityEngine.SceneManagement; 5 6public class StageSelectManager : MonoBehaviour { 7 8 public GameObject[] stageButtons; //ステージ選択ボタン配列 9 10 // Use this for initialization 11 void Start () { 12 //どのステージまでクリアしているのかをロード(セーブ前なら「0」) 13 int clearStageNo = PlayerPrefs.GetInt ("CLEAR", 0); 14 15 //ステージボタンを有効化 16 for (int i = 0; i <= stageButtons.GetUpperBound (0); i++) { 17 bool b; 18 19 if (clearStageNo < i) { 20 b = false; //前ステージをクリアしていなければ無効 21 } else { 22 b = true; //前ステージをクリアしていれば有効 23 } 24 25 //ボタンの有効/無効を設定 26 stageButtons [i].GetComponent<Button> ().interactable = b; 27 } 28 } 29 30 // Update is called once per frame 31 void Update () { 32 33 } 34 35 //ステージ選択ボタンを押した 36 public void PushStageSelectButton (int stageNo) { 37 //ゲームシーンへ 38 SceneManager.LoadScene ("PuzzleScene" + stageNo); 39 } 40} 41 42コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

【簡単】Unityのシーン切り替えでフェードイン・フェードアウトを実装できる「Unity-FadeManager」 みたいな方法を使って「音」よりも長い時間をかけてシーンが切り替わるようにすればよいです。

今のやり方では音が鳴るのと同時にシーンが切り替わり音を鳴らしているオブジェクト(コンポーネント)が破棄されてしまうので、音が鳴りません。音が鳴り、シーンが切り替わり、オブジェクトが破棄されることが同時に起きてしまいます。

という原因を理解すれば、そのオブジェクトを DontDestroyOnLoad しておく、という別の解決方法も取れることがわかると思います。

投稿2020/07/05 23:42

bboydaisuke

総合スコア5275

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jo1jo2jo3

2020/07/06 01:36

回答ありがとうございます。 例えはどのよう文になりますでしょうか?
bboydaisuke

2020/07/06 04:29

リンク先で詳しく説明されてますよ。
jo1jo2jo3

2020/07/06 13:49

フェードアウトができましたのでボタンに音を付けDontDestroyOnLoadしてみます。ありがとうございました。
jo1jo2jo3

2020/07/06 15:05

ボタン音が鳴り、シーン移動出来ました。シーンの演出もよくなりました。解決しました。ありがとうございました。
jo1jo2jo3

2020/08/26 14:47

記録メモ デバックモードのチェックボックスを外す。チェッック外さないとプレイ画面で左上にフェードマネージャー表示されたままになる。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問