极致21点开发DAY2

今天完成的主要内容时MainScene场景中设置面板的开发。游戏逻辑:点击设置按钮,弹出音乐设置弹框,弹框内容包括音乐的打开与关闭,退出游戏。

点击退出游戏,弹出退出游戏确认面板。效果图:

1.首先在Controller.cs文件中添加Settings对象以及这两个面板对象字段。然后添加打开设置面板的方法,代码如下:

 1    public GameObject set_music;
 2     public GameObject set_confirm;
 3 
 4   private void OnSetBtn()
 5     {
 6         settings.SetActive(true);
 7         //确保每次打开设置时,音乐设置面板打开,确认面板关闭
 8         set_music.SetActive(true);
 9         set_confirm.SetActive(false);
10     }
11 
12 //当然还有在Init方法中添加监听的代码
13  setBtn.onClick.AddListener(OnSetBtn);

2.然后在Settings物体上添加脚本SetController.cs

这个脚本目前完成的任务包括控制2个窗口的显示逻辑。分2步走,比较懒,一次更所有代码了。

  1 /*        项目:极致21点
  2  *
  3  *        主题:
  4  *
  5  *      功能:设置面板的逻辑:1.打开关闭音乐逻辑
  6  *                             2.是否退出游戏逻辑
  7  *      作者:Mr.Zhang
  8  *
  9  *      日期:2019.1.1
 10  *
 11  */
 12 using UnityEngine;
 13 using UnityEngine.UI;
 14 namespace PureMVCDemo
 15 {
 16     public class SetController : MonoBehaviour
 17     {
 18         private bool musicOnOff;
 19         public Image musicImage;
 20         public Sprite musicOn;
 21         public Sprite musicOff;
 22         public GameObject musicSetting;
 23         public Button onOffBtn;
 24         public Button backBtn;
 25         public Button quitGameBtn;
 26 
 27         public GameObject confirm;
 28         public Button sureBtn;
 29         public Button cancelBtn;
 30 
 31         private void Start()
 32         {
 33             musicOnOff = true;            
 34             Init();
 35            
 36         }
 37         void Init()
 38         {
 39             onOffBtn.onClick.AddListener(OnOnOffBtn);
 40             backBtn.onClick.AddListener(OnBackBtn);
 41             quitGameBtn.onClick.AddListener(OnQuitGamBtn);
 42             sureBtn.onClick.AddListener(OnSureBtn);
 43             cancelBtn.onClick.AddListener(OnCancelBtn);
 44         }
 45         #region 音乐设置面板监听事件
 46         /// <summary>
 47         /// 音乐开启关闭监听事件
 48         /// </summary>
 49         private void OnOnOffBtn()
 50         {
 51             //如果当前状态是打开,则切换为关闭
 52             if (musicOnOff)
 53             {
 54                 musicImage.sprite = musicOff;
 55                 //修改开关状态
 56                 musicOnOff = false;
 57             }
 58             else
 59             {
 60                 musicImage.sprite = musicOn;
 61                 musicOnOff = true;
 62             }
 63         }
 64         /// <summary>
 65         /// 返回主面板,关闭设置面板
 66         /// </summary>
 67         private void OnBackBtn()
 68         {
 69             // Debug.Log("Back button clicked");
 70             this.gameObject.SetActive(false);
 71         }
 72         /// <summary>
 73         /// 关闭音乐设置面板,弹出确认退出游戏面板
 74         /// </summary>
 75         private void OnQuitGamBtn()
 76         {
 77             musicSetting.SetActive(false);
 78             confirm.SetActive(true);
 79         }
 80         #endregion
 81 
 82         #region 确认退出面板监听事件
 83         /// <summary>
 84         /// 确认退出游戏
 85         /// </summary>
 86         private void OnSureBtn()
 87         {
 88             Debug.Log("Sure Button clicked");
 89             Application.Quit();
 90         }
 91         /// <summary>
 92         /// 取消退出游戏
 93         /// </summary>
 94         private void OnCancelBtn()
 95         {
 96           
 97             //关闭设置面板
 98             this.gameObject.SetActive(false);
 99         }
100         #endregion
101     }
102 }

猜你喜欢

转载自www.cnblogs.com/blackteeth/p/10204491.html
今日推荐