【发布时间】:2015-04-25 06:23:57
【问题描述】:
我设置了一个简单的商店,当玩家点击“购买”一个角色时,该物品会解锁并保持解锁状态。这是在一个场景中(商店场景)。
我有第二个场景,角色根据此次购买解锁,供玩家选择(角色场景)。
我将脚本放置在每个场景的空游戏对象上。只购买一个角色时效果很好。但是如何为多个字符复制它。
我可以将脚本放在单个按钮上,并将相应的游戏对象放在检查器下,但如果我有 100 个字符,这将不切实际。
请建议我如何在多个实例中进行这项工作。考虑标记,这似乎也不可行。如果有更好的方法,我愿意接受建议。谢谢。
//Class controlling Shop Scene via an empty Gameobject
public class ShopManager : MonoBehaviour
{
private bool unlocked;
public GameObject greyImg;
void Start()
{
unlocked = PlayerPrefs.GetInt("unlocked") == 1;
greyImg.SetActive(unlocked);
}
public void Buy()
{
unlocked = true;
PlayerPrefs.SetInt("unlocked", 1);
PlayerPrefs.Save();
greyImg.SetActive(true);
}
}
这就是统一设置在商店场景中的外观。如果该项目已经购买,则灰色图像设置为活动状态,因此不允许用户再单击绿色购买按钮。
角色解锁/购买时
//Class controlling Character select scene via an empty Gameobject
public class CharacterManager : MonoBehaviour
{
private bool unlocked;
public GameObject greySelect;
void Start()
{
unlocked = PlayerPrefs.GetInt("unlocked") == 1;
}
void Update()
{
if (unlocked)
{
greySelect.SetActive(false);
}
}
}
这就是 Unity 设置寻找角色选择场景的方式。如果角色已解锁,则灰色选择图像设置为非活动状态,橙色选择按钮将可见,从而允许选择角色。
角色解锁时
【问题讨论】: