

各スコアに数字を代入したいと考えています  
ボールとCubeのオブジェクトを用意して  
ボールがCubeに衝突した際 ボールの数値を取得してスコアに反映されるようにしています  
一つ目のスコア表示は大丈夫でしたが二つ目以降からが分からず止まっています

詳しく  
・43個のボールを用意しており、ボールのオブジェクト名(数字)で数字を取得出来るようにしています。

・43個ある1つがCubeに当たると、一つ目のスコア(画像のScene1の所)に表示され、Scene1の抽選は終了

・次のSceneに行くボタンを押すと、Scene2になり、二回目の抽選が始まる  
※オブジェクト破壊を防ぐためDontDestroyOnLoadを使用して引継ぎが出来るようにしています

・スコアも引き継いでいるため、現段階では2回目の抽選を行うと、また一回目のスコアに反映されてしまいます

・下記のスクリプトだと指定してるテキストのみになるのでScene1しか反映されない  
※現在取得できる数字を減らしています

ボールの方にはスクリプトは入れていません

[![画像の説明をここに入力](https://i.stack.imgur.com/TYQqe.png)](https://i.stack.imgur.com/TYQqe.png)

ソースコード

Cubeの方

[code]

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    using System.Text.RegularExpressions;
    
    public class Defense : MonoBehaviour
    {
        public Text number;
    
        //衝突したとき一度だけ判定を行う
        void OnCollisionEnter(Collision collision)
        {
            for (int i = 1; i <= 5; i++)
            {
                if (collision.gameObject.name == "Item (" + i.ToString() + ")")
                {
                    number.text = i.ToString();
                    Debug.Log(collision.gameObject.name);
                }
            }
        }
    }
    
[/code]

ボタンに入れてるscript

[code]

    using UnityEngine.SceneManagement; //シーンマネジメントを有効にする
    
    public class GameController2 : MonoBehaviour
    {
        public void toGameScene()
        {
        SceneManager.LoadScene("Scene2");
        }
    }
    
[/code]

試したこと

上記のスクリプト加え  
[Unity4.6でUIのTextを複製する方法](https://ja.stackoverflow.com/questions/1738/unity4-6%E3%81%A7ui%E3%81%AEtext%E3%82%92%E8%A4%87%E8%A3%BD%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)  
こちらのサイトでテキストをクローン化させて増やす所までは出来たのですが  
やはりスコアに代入するところで躓いてしまってます

バージョン  
unity2019


CC BY-SA 4.0
2020-06-11T16:25:52.230
67551
2020-06-11T18:03:59.103
2020-06-11T16:35:28.403
3060
40330
question
c# unity3d
スコア表示について


Defenseのpublic Text number;が参照している実際のTextオブジェクトは、  
Scene1の時はScene1の時に反映したいTextオブジェクト（一番左）、  
Scene2の時はScene2の時に反映したいTextオブジェクト（左から2番目）になっていますか？

DefenseをアタッチしたGameObjectのインスペクタを開き、numberに割り当てたTextオブジェクトを確認してください。  
また、number変数のログも出してみましょう

[code]

    Debug.Log(number.gameObject.Name);
    
[/code]


CC BY-SA 4.0
2020-06-11T18:03:59.103
67553
2020-06-11T18:03:59.103
25396
67551
answer