我不能在不同的脚本(unity 2D)中使用该变量。有什么建议么
I cant use the variable in a different script (unity 2D). Any suggestions
我想在下面的脚本中使用变量 levelButtons 和 levelunlocked :-
public class LevelSelector : MonoBehaviour
{
public Button[] levelButtons;
private void Start()
{
int levelunlocked = 1;
int levelReached = PlayerPrefs.GetInt("levelReached", levelunlocked);
for (int i = 0; i < levelButtons.Length; i++)
{
if (i + 1 > levelReached)
{
levelButtons[i].interactable = false;
}
}
}
}
并在下面的脚本中使用它们。这将是一个巨大的帮助。
public class Level : MonoBehaviour
{
[SerializeField] int breakableBlocks;
SceneLoader sceneloader;
private void Start()
{
sceneloader = FindObjectOfType<SceneLoader>();
}
public void CountBreakableBlocks()
{
breakableBlocks++;
}
public void BlockDestroyed()
{
breakableBlocks--;
if (breakableBlocks <= 0)
{
sceneloader.LoadWinScreen();
}
}
}
有什么想法吗??它的统一 c#.
您可以在 Start
方法之外声明 levelunlocked
和 levelReached
并使它们成为 public,如下所示:
public class LevelSelector : MonoBehaviour
{
public Button[] levelButtons;
public int levelunlocked = 1;
public int levelReached;
private void Start()
{
levelReached = PlayerPrefs.GetInt("levelReached", levelunlocked);
for (int i = 0; i < levelButtons.Length; i++)
{
if (i + 1 > levelReached)
{
levelButtons[i].interactable = false;
}
}
}
}
然后访问 levelunlocked
和 levelReached
,使用 GetComponent
获取对 LevelSelector
的引用,或者使字段静态并通过执行 [=18] 访问它们=] 或 LevelSelector.levelReached
.
我想在下面的脚本中使用变量 levelButtons 和 levelunlocked :-
public class LevelSelector : MonoBehaviour
{
public Button[] levelButtons;
private void Start()
{
int levelunlocked = 1;
int levelReached = PlayerPrefs.GetInt("levelReached", levelunlocked);
for (int i = 0; i < levelButtons.Length; i++)
{
if (i + 1 > levelReached)
{
levelButtons[i].interactable = false;
}
}
}
}
并在下面的脚本中使用它们。这将是一个巨大的帮助。
public class Level : MonoBehaviour
{
[SerializeField] int breakableBlocks;
SceneLoader sceneloader;
private void Start()
{
sceneloader = FindObjectOfType<SceneLoader>();
}
public void CountBreakableBlocks()
{
breakableBlocks++;
}
public void BlockDestroyed()
{
breakableBlocks--;
if (breakableBlocks <= 0)
{
sceneloader.LoadWinScreen();
}
}
}
有什么想法吗??它的统一 c#.
您可以在 Start
方法之外声明 levelunlocked
和 levelReached
并使它们成为 public,如下所示:
public class LevelSelector : MonoBehaviour
{
public Button[] levelButtons;
public int levelunlocked = 1;
public int levelReached;
private void Start()
{
levelReached = PlayerPrefs.GetInt("levelReached", levelunlocked);
for (int i = 0; i < levelButtons.Length; i++)
{
if (i + 1 > levelReached)
{
levelButtons[i].interactable = false;
}
}
}
}
然后访问 levelunlocked
和 levelReached
,使用 GetComponent
获取对 LevelSelector
的引用,或者使字段静态并通过执行 [=18] 访问它们=] 或 LevelSelector.levelReached
.