【Unitydemo制作】音游制作—模式玩法的实现


👨‍💻个人主页@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创
👨‍💻 收录于专栏就业宝典

⭐🅰️推荐专栏⭐

⭐-软件设计师高频考点大全



文章目录

    • ⭐前言⭐
    • [🎶(==3==) 选择模式面板逻辑](#🎶(==3==) 选择模式面板逻辑)
    • [🎶(==4==) 关卡模式面板逻辑](#🎶(==4==) 关卡模式面板逻辑)
    • [🎶(==5==) 五个关卡场景逻辑](#🎶(==5==) 五个关卡场景逻辑)
    • [🎶(==6==) 生存模式面板逻辑](#🎶(==6==) 生存模式面板逻辑)
    • ⭐🅰️⭐

⭐前言⭐



🎶(3) 选择模式面板逻辑


csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

//-------------------------------
//-------功能: 模式选择面板
//-------创建者:         -------
//------------------------------

public class SelectPanel : BasePanel 
{
    // Start is called before the first frame update
    void Start()
    {
       
        AllEvent();
    }

    // Update is called once per frame
    void Update()
    {

    }

   public void AllEvent()
    {
        GetControl<Button>("Button1").onClick.AddListener(() => {
            UIManager.GetInstance().RemovePanel ("SelectPanel");//移除背景面板   
            UIManager.GetInstance().ShowPanel<LevelsMPanel>("LevelsMPanel"); //加载关卡模式选择面板     
        });
        GetControl<Button>("Button2").onClick.AddListener(()=> {
            UIManager.GetInstance().RemovePanel("SelectPanel");//移除背景面板   
            UIManager.GetInstance().ShowPanel<EndlessMPanel>("EndlessMPanel"); //加载生存模式选择面板     
        });
        GetControl<Button>("Button3").onClick.AddListener(()=> {
            UIManager.GetInstance().RemovePanel("SelectPanel");//移除背景面板   
            UIManager.GetInstance().ShowPanel<FreeMPanel>("FreeMPanel"); //加载自由模式选择面板     
        });
    
    }
}

🎶(4) 关卡模式面板逻辑


  • 一共有五个关卡。每一个关卡的场景都不一样,并且音符下落的速度也不一样
csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

//-------------------------------
//-------功能:关卡模式面板         
//-------创建者:         -------
//------------------------------

public class LevelsMPanel : BasePanel
{
    public Text hight;
    void Start()
    {
        hight.text = DataContorl.GetInstance().foreverPalyerdata.AllScore .ToString(); //更新最高分
        AllEnvent();
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void AllEnvent()
    {
        //关卡按钮逻辑
        GetControl<Button>("level1").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除此面板   
            DataContorl.GetInstance().levelGame = true; //进入关卡模式
            SceneManager.LoadScene(1);
        });
        GetControl<Button>("level2").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除此面板   
            DataContorl.GetInstance().levelGame = true;

            SceneManager.LoadScene(2);
        });
        GetControl<Button>("level3").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除此面板   
            DataContorl.GetInstance().levelGame = true;

            SceneManager.LoadScene(3);
        });
        GetControl<Button>("level4").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除此面板   
            DataContorl.GetInstance().levelGame = true;
            SceneManager.LoadScene(4);
        });
        GetControl<Button>("level5").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除此面板   
            DataContorl.GetInstance().levelGame = true;
            SceneManager.LoadScene(5);
        });
        GetControl<Button>("Back").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除背景面板   
            UIManager.GetInstance().ShowPanel<SelectPanel>("SelectPanel"); //加载模式选择面板
        });
        GetControl<Button>("rank").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除背景面板   
            UIManager.GetInstance().ShowPanel<RankPanel1>("RankPanel1"); //加载模式选择面板
        });
      
    }
}

🎶(5) 五个关卡场景逻辑


  • level1 ------下落的速度为3
  • level2------下落的速度为5

  • level3------下落的速度为8
  • level4------下落的速度为10

  • level5------下落的速度为12



🎶(6) 生存模式面板逻辑


  • 生存模式中的音符下降速度会越来越快
  • 生存模式场景


csharp 复制代码
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

//-------------------------------
//-------功能: 生存模式面板
//-------创建者:         -------
//------------------------------

public class FreeMPanel : BasePanel
{
    public Text hight;
    public Text speed;
    public Slider slider;
    public AudioClip[] audioClips = new AudioClip[5];
    public Dropdown dropdown;//下拉列表
    void Start()
    {
        for (int i = 0; i < audioClips.Length; i++)
        {
            DataContorl.GetInstance().audioClip[i] = audioClips[i];
        }

        hight.text  = DataContorl.GetInstance().foreverPalyerdata.livingScore.ToString();
        AllEvent();
    }


    void Update()
    {
        DataContorl.GetInstance().index = dropdown.value; //获取下拉列表的值
        Debug.Log(dropdown.value);
        speed.text  = (slider.value*15) .ToString ();  //速度实时更新(最大设置为15)
        DataContorl.GetInstance().speed = slider.value * 15;  //设置速度
        
    }

    public void AllEvent()
    {
        //给返回按钮添加逻辑
            GetControl<Button>("Back").onClick.AddListener(() => {
            UIManager.GetInstance().RemovePanel("FreeMPanel");//移除背景面板   
            UIManager.GetInstance().ShowPanel<SelectPanel>("SelectPanel"); //加载模式选择面板

        });

        //给开始按钮添加逻辑
        GetControl<Button>("Start").onClick.AddListener(() => {
           
            UIManager.GetInstance().RemovePanel("FreeMPanel");//移除此面板   
            DataContorl.GetInstance().livingGame = true;
            SceneManager.LoadScene(6);

        });
        GetControl<Button>("rank").onClick.AddListener(() =>
        {
            UIManager.GetInstance().RemovePanel("LevelsMPanel");//移除背景面板   
            UIManager.GetInstance().ShowPanel<RankPanel2>("RankPanel2"); //加载模式选择面板
        });

    }
}

⭐🅰️⭐


【Unityc#专题篇】之c#进阶篇】

【Unityc#专题篇】之c#核心篇】

【Unityc#专题篇】之c#基础篇】

【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】---进阶章题单实践练习

【Unityc#专题篇】---基础章题单实践练习

【Unityc#专题篇】---核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!



相关推荐
虾球xz5 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
red_redemption9 小时前
自由学习记录(23)
学习·unity·lua·ab包
A_cot10 小时前
理解设计模式与 UML 类图:构建稳健软件架构的基石
microsoft·设计模式·简单工厂模式·工厂方法模式·uml
肖老师+10 小时前
可视化建模与UML《协作图实验报告》
uml·可视化建模
/**书香门第*/13 小时前
Cocos creator 3.8 支持的动画 7
学习·游戏·游戏引擎·游戏程序·cocos2d
向宇it1 天前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
Heaphaestus,RC1 天前
【Unity3D】获取 GameObject 的完整层级结构
unity·c#
芋芋qwq1 天前
Unity UI射线检测 道具拖拽
ui·unity·游戏引擎
tealcwu1 天前
【Unity服务】关于Unity LevelPlay的基本情况
unity·游戏引擎
大眼睛姑娘1 天前
Unity3d场景童话梦幻卡通Q版城镇建筑植物山石3D模型游戏美术素材
unity·游戏美术