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

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

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

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

Unity

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

Q&A

0回答

785閲覧

Unity スロットゲーム制作 絵柄がそろったときに効果音を発生させる方法

teruterubozu_19

総合スコア0

C#

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

Unity

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

0グッド

0クリップ

投稿2021/02/14 12:49

前提・実現したいこと

unityで現在スロットゲームを製作しております。スロットの絵柄がそろったときに「テッテレー」という効果音や
「あたり!」というような文字が表示されるように設定したいと思っているのですが、どの様にすればよろしいでしょうか?
だれかわかる方、教えていただけると幸いであります。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

言語はC#です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

enum State
{
Playing,
Stay,
}

public class GameController : MonoBehaviour{
AudioSource[] sounds;

public Button okanebt; public Button[] okaneicon; public int okane = 100; public Text okanetext; public int[] haitouvalue; public Text[] haitoutext; int odds = 0; public Button[] stopbt; public Button startbt; public GameObject[] reels; ReelController[] rc = new ReelController[3]; int[] lineH, lineC, lineM; int stopline_len = 3; State state = State.Stay; void Start(){

sounds = gameObject.GetComponents<AudioSource>();
for (int i = 0; i < haitoutext.Length; i++){
haitoutext[i].text = haitouvalue[i] + "×0";
}

okanetext.text = "$" + okane; for (int i = 0; i < 3; i++){ rc[i] = reels[i].GetComponent<ReelController>(); } } void Update(){ if (stopline_len == 3 && state == State.Playing){ state = State.Stay; Chack(); for (int i = 0; i < okaneicon.Length; i++){ okaneicon[i].interactable = false; } okanebt.interactable = true; odds = 0; haitoutxtUpdate(); } if (state == State.Stay && odds != 0){ //Coinを1つでも投入するとプレイ startbt.interactable = true; } } public void Play(){ //Playボタンを押した時 startbt.interactable = false; stopline_len = 0; state = State.Playing; for (int i = 0; i < 3; i++){ rc [i].Reel_Move(); stopbt [i].interactable = true; } } public void Stopbt_f(int id){ stopbt[id].interactable = false; } public void SetLineH(int[] line){ lineH = new int[3]; lineH = line; stopline_len++; } public void SetLineC(int[] line){ lineC = new int[3]; lineC = line; stopline_len++; } public void SetLineM(int[] line){ lineM = new int[3]; lineM = line; stopline_len++; } public void Chack(){//スロットの絵柄がそろったかのチェック for (int i = 0; i < 3; i++){ if (lineH[i] == lineC[i] && lineC[i] == lineM[i]){ switch (i){ case 0: Debug.Log("下がそろった"); break; case 1: Debug.Log("中央がそろった"); break; case 2: Debug.Log("上がそろった"); break; default: Debug.Log("そろってませーん"); break; } Debug.Log(haitouvalue[lineH[i]] * odds + "yen"); okane += haitouvalue[lineH[i]] * odds; okanetext.text = "$:" + okane; } } if (lineH[0] == lineC[1] && lineC[1] == lineM[2]){ Debug.Log("左斜めそろった"); Debug.Log(haitouvalue[lineH[0]] * odds + "yen"); okane += haitouvalue[lineH[0]] * odds; okanetext.text = "$:" + okane; } if (lineH[2] == lineC[1] && lineC[1] == lineM[0]){ Debug.Log("右斜めそろった"); Debug.Log(haitouvalue[lineH[2]] * odds + "yen"); okane += haitouvalue[lineH[2]] * odds; okanetext.text = "$:" + okane; } } public void Buy(){ if (okane <= 0){ //コインがないならリターンする return; } if (odds != 2){ okane--; odds++; okaneicon[odds - 1].interactable = true; haitoutxtUpdate(); } else{ //odds == 2 okane--; odds = 3; okaneicon[2].interactable = true; okanebt.interactable = false; haitoutxtUpdate(); } okanetext.text = "$:" + okane; } void haitoutxtUpdate(){ for (int i = 0; i < haitoutext.Length; i++){ haitoutext[i].text = haitouvalue[i] + "×" + odds; } }

}

試したこと

public class GameController : MonoBehaviour{
AudioSource[] sounds;

public Button Okanebt; public Button[] Okaneicon; public int Okane = 100; public Text OkaneText; public int[] haitovalue; public Text[] haitotext; int odds = 0; public Button[] stopbt; public Button playbt; public GameObject[] reels; ReelController[] rc = new ReelController[3]; int[] lineH, lineC, lineM; int stopline_len = 3; State state = State.Stay; // Use this for initialization void Start() { sounds = gameObject.GetComponents<AudioSource>(); for (int i = 0; i < haitotext.Length; i++) { haitotext[i].text = haitovalue[i] + "×0"; } OkaneText.text = "$:" + Okane;```ここに言語を入力

コード

for (int i = 0; i < 3; i++) { rc[i] = reels[i].GetComponent<ReelController>(); } } というように冒頭でオーディオを宣言して 次のスロットの絵柄が定義する部分をチェックする部分で public void Chack(){//スロットの絵柄がそろったかのチェック for (int i = 0; i < 3; i++){ if (lineH[i] == lineC[i] && lineC[i] == lineM[i]){    AudioSource = gameObject.GetComponent<Atari_Sound>(); switch (i){ case 0: Debug.Log("下がそろった"); break; case 1: Debug.Log("中央がそろった"); break; case 2: Debug.Log("上がそろった"); break; default: Debug.Log("そろってませーん"); break; } Debug.Log(haitouvalue[lineH[i]] * odds + "yen"); okane += haitouvalue[lineH[i]] * odds; okanetext.text = "$:" + okane; } } if (lineH[0] == lineC[1] && lineC[1] == lineM[2]){ Debug.Log("左斜めそろった"); Debug.Log(haitouvalue[lineH[0]] * odds + "yen"); okane += haitouvalue[lineH[0]] * odds; okanetext.text = "$:" + okane; } if (lineH[2] == lineC[1] && lineC[1] == lineM[0]){ Debug.Log("右斜めそろった"); Debug.Log(haitouvalue[lineH[2]] * odds + "yen"); okane += haitouvalue[lineH[2]] * odds; okanetext.text = "$:" + okane; } } など、オーディオを定義したのですが、うまくいきませんでした。 ### 補足情報(FW/ツールのバージョンなど) スロットゲームを制作しているツールはUnity2017です。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/02/16 02:33

取得したAudioSourcesを再生する部分が無いように見えますが
teruterubozu_19

2021/02/19 12:23

switch (i){ case 0: Debug.Log("下がそろった"); break; case 1: Debug.Log("中央がそろった"); break; case 2: Debug.Log("上がそろった"); break; default: Debug.Log("そろってませーん"); break; } Debug.Log(haitouvalue[lineH[i]] * odds + "yen"); okane += haitouvalue[lineH[i]] * odds; okanetext.text = "$:" + okane; } } if (lineH[0] == lineC[1] && lineC[1] == lineM[2]){ Debug.Log("左斜めそろった"); Debug.Log(haitouvalue[lineH[0]] * odds + "yen"); okane += haitouvalue[lineH[0]] * odds; okanetext.text = "$:" + okane; } if (lineH[2] == lineC[1] && lineC[1] == lineM[0]){ Debug.Log("右斜めそろった"); Debug.Log(haitouvalue[lineH[2]] * odds + "yen"); okane += haitouvalue[lineH[2]] * odds; okanetext.text = "$:" + okane; } } の部分にGetcomponent<AudioSource>().Play();を定義したら鳴りました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問