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

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

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

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

Unity

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

Q&A

解決済

1回答

3705閲覧

リズムゲームのリザルト

sironoir

総合スコア11

C#

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

Unity

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

0グッド

0クリップ

投稿2017/06/28 05:57

今リ
メイン
###前提・実現したいこと
今リズムゲームを作っていて、メインシーンのスコアをリザルトシーンで取得し表示しようと思っているのですが、取得できません。どうすればよいでしょうか。

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

エラーメッセージ

###該当のソースコード
//-----------メインシーン----------------
using UnityEngine;
using System.Collections;
using System.IO;
using System;
using UnityEngine.UI;

public class GameManager : MonoBehaviour
{

public GameObject[] notes; private float[] _timing; private int[] _lineNum; public string filePass; private int _notesCount = 0; private AudioSource _audioSource; private float _startTime = 0; public float timeOffset = -1; private bool _isPlaying = false; public GameObject startButton; public Text scoreText; public static int score; public string SCORE = "Score"; void Start() { score = 0; _audioSource = GameObject.Find("GameMusic").GetComponent<AudioSource>(); _timing = new float[1024]; _lineNum = new int[1024]; LoadCSV(); } void Update() { if (_isPlaying) { CheckNextNotes(); scoreText.text = score.ToString(); } } public bool IsBeat() { if (Input.GetKeyDown(KeyCode.Space)) { Debug.Log("true"); return true; } else { return false; } } public void StartGame() { startButton.SetActive(false); _startTime = Time.time; _audioSource.Play(); _isPlaying = true; } void CheckNextNotes() { while (_timing[_notesCount] + timeOffset < GetMusicTime() && _timing[_notesCount] != 0) { SpawnNotes(_lineNum[_notesCount]); _notesCount++; } } void SpawnNotes(int num) { Instantiate(notes[num], new Vector3(-4.0f + (2.0f * num), 0, 0), Quaternion.identity); } void LoadCSV() { int i = 0; TextAsset csv = Resources.Load(filePass) as TextAsset; StringReader reader = new StringReader(csv.text); while (reader.Peek() > -1) { string line = reader.ReadLine(); string[] values = line.Split(','); _timing[i] = float.Parse(values[0]); _lineNum[i] = int.Parse(values[1]); i++; } } float GetMusicTime() { return Time.time - _startTime; } public void GoodTimingFunc(int num) { Debug.Log("Line:" + num + " good!"); Debug.Log(GetMusicTime()); score+= 100; } public void NormalTimingFunc(int num) { Debug.Log("Line:" + num + " nice!"); Debug.Log(GetMusicTime()); score += 50; }

}

//-----------------------------------------
//--------------------リザルト-------------------
using UnityEngine;
using System.Collections;
using System.IO;
using System;
using UnityEngine.UI;

public class ResultScene : MonoBehaviour {

public Text scoreText; // Use this for initialization void Start () { GameObject Score = GameObject.Find("score"); scoreText.text = Score.ToString(); } // Update is called once per frame void Update () { }

}

###試したこと
様々なサイトを閲覧し、DontDestroyOnLoad等々を使ってみたのですが、うまくいきませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)

C#でUnityを使用しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

古い手法で、もしかしたら対応してないかもしれませんが、
私が以前つかったのは
シーン遷移した時に渡したい値とそれを渡すための関数を
public static
で宣言をして、遷移後のシーンで使うコードで、遷移前のシーンの関数を呼び出しをしました
MainScene(遷移前),ResultScene(遷移後),ScoreGet(点数取得関数)とすると

C#

1public class MainScene:MonoBehaviour {//遷移前のシーン 2 public static int score = 0; 3 4 public static int ScoreGet() 5 { 6 return score; 7 } 8 9 void Start(){ 10 } 11//略 12}

C#

1public class ResultScene : MonoBehaviour {//遷移後のシーン 2 void Start () 3 { 4 int result = MainScene.ScoreGet(); 5 } 6//略 7}

このようにして取得していました。

投稿2017/06/29 01:31

RagnAnet1373

総合スコア69

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問