[ARPG阶段二] 2.制作主菜单开始游戏场景,完善游戏流程

完整的游戏流程应该是主菜单场景->新建自定义角色场景(如果继续游戏则跳过这步)->实际的游戏场景。具体流程如下

新建开始游戏菜单场景并导入摆放好的UI窗口

创建好场景后,这里直接导入摆放好的窗口资源(带三个按钮就行,UI的制作不做重点,资源商店随便找个)。

创建场景管理器

创建场景管理器,挂载同名脚本,用于控制在进入主菜单场景时动态加载主菜单UI窗口。

alt

场景管理器继承自逻辑管理器基类(框架里的一种单例,预先写好了事件监听添加移除的方法),并使用UI框架管理UI窗口的生命周期,框架的导入见第一阶段

public class MenuSceneManager : LogicManagerBase<MenuSceneManager>
{
    void Start()
    {
        UIManager.Instance.Show<UI_MainMenuSceneWindow>();
    }

UI窗口上挂载同名控制类。

集成了UI的View和Controller,其中控制逻辑借由UI框架完成,UI窗口类继承自WindowBase,使用UI框架和自定义特性进行管理。添加开始游戏,继续游戏,关闭游戏三个Button及对应的事件监听方法,并指定窗口关闭时进行窗口AA资源的释放。

[UIElement(false, "UI_MainMenuSceneWindow",1)]
public class UI_MainMenuSceneWindow : UI_WindowBase
{
    [SerializeField] Button startButton;
    [SerializeField] Button continueButton;
    [SerializeField] Button quitButton;

    public override void Init()
    {
        startButton.onClick.AddListener(StartButtonClick);
        continueButton.onClick.AddListener(ContinueButtonClick);
        quitButton.onClick.AddListener(quitButtonClick);

        //TODO:如果当前没有存档,应该隐藏继续游戏按钮
    }

    public void StartButtonClick()
    {
        //使用当前存档进行游戏
        Close();
    }

    public void ContinueButtonClick()
    {
        //创建存档进行游戏-》进入自定义角色场景
        Close();
    }

    public void quitButtonClick()
    {
        Application.Quit();
    }

    public override void OnClose()
    {
        base.OnClose();
        //释放自身的AA资源
        ResManager.ReleaseInstance(gameObject);
    }
}

绑定UI元素。

alt

GameRoot下的GameManager挂载同名脚本

使用GameManager(GameRoot下的单例)进行跨场景数据传输,向GameManager中添加存档相关方法。 alt

public class GameManager : SingletonMono<GameManager>
{   
    /// <summary>
    /// 创建新存档
    /// </summary>
    public void CreateNewArchiveAndEnterGame()
    {
        //TODO:进入自定义角色场景
    }

    /// <summary>
    /// 使用存档,进入游戏
    /// </summary>
    public void UseCurrentArchiveAndEnterGame()
    {
        // TODO:进入游戏场景
    }

向AA中添加UI窗口资源

因为使用了框架中的资源服务,预制体的加载都是通过AA的,所以要添加,资源的释放在窗口Close时调用。 alt

测试结果如下,进入主菜单场景时,场景管理器通过AA加载UI窗口点,击进入游戏触发窗口关闭事件并释放资源。

alt

Unity独立游戏开发-ARPG 文章被收录于专栏

Unity独立游戏开发

全部评论

相关推荐

2024-12-09 12:21
门头沟学院 C++
l11hy:今早刚开,已满足
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务