前提・実現したいこと
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です。
あなたの回答
tips
プレビュー