using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Manoeuvre
{
[RequireComponent(typeof(Button))]
public class SceneObject : MonoBehaviour
{
public Image SceneImage;
public Text SceneNameText;
public Text SceneCountText;
//是否可选
public bool isSelect;
public GameObject Lock;
public GameObject AllStar;
public GameObject[] Star;
public Text NeedStar;
//过度页面
public GameObject GuoDu;
string SceneToLoad;
private void Awake()
{
//查找到进度页面
GuoDu = GameObject.FindGameObjectWithTag("Loading");
}
private void Start()
{
GuoDu.SetActive(false);
//如果是第一个关卡就设为可选
if (SceneCountText.text == 1.ToString())
{
isSelect = true;
}
print(PlayerPrefs.GetInt("totalNum"));
//如果总星星大于所需星星数
if (PlayerPrefs.GetInt("totalNum") >= int.Parse( NeedStar.text))
{
isSelect = true;
}
Show();
}
private void Update()
{
//如果可选就隐藏锁头,显示星星
if (isSelect)
{
Lock.SetActive(false);
AllStar.SetActive(true);
}
}
public void Show()
{
int starsNum = PlayerPrefs.GetInt(SceneCountText.text);
//计算完成的任务获得的星星
for (int i=0; i < starsNum; i++)
{
//防止星星越界
if (i >= Star.Length - 1)
{
break;
}
Star[i].SetActive(true);
}
}
public void Initialize(Sprite _img, string displayName, string sceneName, int Count)
{
SceneToLoad = sceneName;
//set UI
SceneImage.sprite = _img;
SceneNameText.text = displayName;
SceneCountText.text = (Count + 1).ToString();
//解锁需要的星星
NeedStar.text = (Count + 2).ToString();
//add on click listener
GetComponent<Button>().onClick.AddListener(OnSceneObjectClick);
}
void OnSceneObjectClick()
{
//过度页面显示
GuoDu.SetActive(true);
//储存关卡数据名
PlayerPrefs.SetString("nowLevel", SceneCountText.text);
print(PlayerPrefs.GetString("nowLevel", SceneCountText.text));
//delete the saved key
PlayerPrefs.DeleteKey("LastSavedKey");
if (MainMenuFader.Instance)
StartCoroutine(MainMenuFader.Instance.FadeToScene(1f, SceneToLoad));
//play click sound
if (MainMenuAudioManager.Instance)
MainMenuAudioManager.Instance.PlayAudioClip(FindObjectOfType<MainMenuSceneSelection>().ButtonClickSFX);
//stop Audio Manager
if (FindObjectOfType<MainMenuAudioManager>())
FindObjectOfType<MainMenuAudioManager>().DestroyAudioManager();
}
public void OnSceneObjectHover()
{
//play hover sound
if (MainMenuAudioManager.Instance)
MainMenuAudioManager.Instance.PlayAudioClip(FindObjectOfType<MainMenuSceneSelection>().ButtonHoverSFX);
}
}
}
EASY Manoeuvre FPS使用 (十四) 关卡是否可选逻辑脚本SceneObject
最新推荐文章于 2020-11-01 23:32:43 发布