工作项目中我们经常会遇到这个情况,例如在某个要进行提示的地方需要玩家进行选择的提示窗口,当玩家选择确定的时候才会进行到下一个页面,否则将不会进行跳转,如下图所示:
其中当我们点击确定的时候就会跳转到下一场景,点击取消,将会关闭当前窗口:
其中具体使用的脚本如下:
这个脚本主要用于进行脚本功能键的控制(也就是确定和取消按键的点击方法的添加):
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class WindowPanel : MonoBehaviour {
private Button ConfirmBtn;
private Button CancelBtn;
public static string OpenSceneName = "";
public static bool isOpenWindows = false;
private void Start()
{
transform.GetChild(0).gameObject.SetActive(false);
ConfirmBtn = transform.GetChild(0).Find("ConfirmBtn").GetComponent<Button>();
CancelBtn = transform.GetChild(0).Find("CancelBtn").GetComponent<Button>();
ConfirmBtn.onClick.AddListener(ConfirmMethod);
CancelBtn.onClick.AddListener(CancelMethod);
}
private void CancelMethod()
{
isOpenWindows = false;
}
private void ConfirmMethod()
{
//TODO 跳转到相应的场景
SceneManager.LoadScene(OpenSceneName);
}
private void Update()
{
transform.GetChild(0).gameObject.SetActive(isOpenWindows);
}
}
这个脚本主要进行提示消息的发送以及颜色的设置:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShowSetting : MonoBehaviour {
private Text txt;
public static bool isStartShowText = false;
void Start()
{
txt = transform.Find("Text").GetComponent<Text>();
}
private void Update()
{
if (isStartShowText)
{
promptMessage(PromptMsg.Instance.Text, PromptMsg.Instance.Color);
isStartShowText = false;
}
}
/// <summary>
/// 提示消息
/// </summary>
private void promptMessage(string text, Color color)
{
txt.text = text;
txt.color = color;
}
}
下面这个脚本主要进行的是其中跳转场景和提示信息的设置:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShowWindowsContent : MonoBehaviour {
void Update () {
if (Input.GetKeyDown(KeyCode.A))
{
WindowPanel.OpenSceneName = "one";
WindowPanel.isOpenWindows = true;
ShowSetting.isStartShowText = true;
PromptMsg.Instance.Change("您将要进入第一关!!!!!!",Color.red);
}
if (Input.GetKeyDown(KeyCode.B))
{
WindowPanel.OpenSceneName = "two";
WindowPanel.isOpenWindows = true;
ShowSetting.isStartShowText = true;
PromptMsg.Instance.Change("您将要进入第二关!!!!!!", Color.green);
}
}
}
以上三个脚本就能实现,窗口功能键的打开,以及跳转场景的控制,我们可以设置更好的页面图片,来重载相应的方法,写好一些方法更加有助于我们项目的开发,欢迎大家在下方的留言大家一起学习!!!!!!!!!!!!!