0

2D Unityゲームで、単純なコインカウンターを持っています。しかし、1コインを2としてカウントしています。これは、intからstringへの変換が間違っているためだと思います。

public GameObject coin; // Gameobject with coin
public Text CoinCounter; // Text with counter that shows in game
private float TotalCounter = 0; // Float for counting total amount of picked up coins

{
   TotalCounter = Convert.ToInt32((CoinCounter.text)); // Converting text counter to Numbers
}

private void Update()
{

    TotalCounter = Convert.ToInt32((CoinCounter.text)); // Updating Counter evry frame update 
    Debug.Log(TotalCounter); // Showing Counter  in Console 
}

private void OnTriggerEnter2D(Collider2D collision)
{
    TotalCounter = (TotalCounter + 1); // adding 1 to total amount when player touching coin 
    CoinCounter.text = TotalCounter.ToString(); // Converting to Text, and showing up in UI





    coin.SetActive(false); // Hiding coin


}

そのため、デバッグ ログでは正しい合計金額が表示されますが、UI では間違った数値が表示されます。例として、合計金額が 1 の場合は 2 などを表示しています。

4

3 に答える 3