整数仅在使用运算符时增加一瞬间"++"



调用NextLevel方法时,整数gemsCollected不会增加其值。

控制台显示该值仅变为"0";1〃;一瞬间。如何使脚本存储添加的值,而不是重置它?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class gemTaken : MonoBehaviour
{
public GameObject gem1;
public Transform playerNearCheck01;
public float playerCheckRadius01;
public LayerMask playerLayer;
private bool takenByPlayer; 
public int gemsCollected;
void Update()  
{   
Debug.Log(gemsCollected);
takenByPlayer = Physics2D.OverlapCircle(playerNearCheck01.position, playerCheckRadius01, playerLayer);
if (takenByPlayer)
{
NextLevel(); //calls method
gemsCollected ++;
}
}
void NextLevel() //method
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex +1 );
}
}

如果您将gemsCollected变量声明为"静态";,它将在整个场景中保持其价值。

此外,为了保持它的公开性,您可以制作这样一个getter方法:

public int GetGemsCollected() => gemsCollected;

如果你不熟悉语法,这与此相同:

public int GetGemsCollected() 
{
return gemsCollected;
}

然后,只要需要gemsCollected变量,就可以调用该方法。

如果可行,请告诉我。

Vlad

最新更新