Unity-UI 架构优化小技巧(二)

简介: Unity-UI 架构优化小技巧

注意这个时候初始化方法已经被封装起来了,在设置状态时会自动调用,而初始化方法设置成了虚函数,方便子类进行定制。

因此加载进度界面和登录注册界面的代码的修改前后为:

using UnityEngine;
using UnityEngine.UI;
public class LoadingWnd : WindowRoot
{
    //初始化加载进度界面
    protected override void InitWnd()
    {
        //实际操作代码
    }
    //设置进度
    public void SetProgress(float prg)
    {
      //实际操作代码
    }
}    
using UnityEngine;
using UnityEngine.UI;
public class LoginWnd : WindowRoot
{
    //初始化登录注册界面
    protected override void InitWnd()
    {
        //实际操作代码
    }
}

注意对比,现在初始化方法要对父类的初始化方法覆写,同时权限不再是公有,因为父类中权限为 protected,所以子类中无法设置成 public,因此此时初始化方法只能被设置状态时自动调用,无需也不能在外部手动调用了。

此时无需改动 GameRoot,但登录注册业务模块和资源加载服务模块对界面的调用也应该发生改变:

using System;
using UnityEngine;
using UnityEngine.SceneManagement;
public class ResSvc : MonoBehaviour 
{
    public void AsyncLoadScene(string sceneName,Action loaded)
    {
        //显示加载界面
        GameRoot.Instance.loadingWnd.SetWndState(true);
        //异步加载指定名字的场景
        AsyncOperation sceneAsync = SceneManager.LoadSceneAsync(sceneName);
        prgCB = ()=>
        {
            //获取当前进度
            float val = sceneAsync.progress;
            //在加载界面设置当前进度
            GameRoot.Instance.loadingWnd.SetProgress(val);
            //加载完成
            if(val == 1)
            {
                //加载完成后调用回调函数
                if(loaded != null)
                {
                    loaded();
                }
                //清空委托和中间结构
                sceneAsync = null;
                prgCB = null;
                //取消对加载界面的展示
                GameRoot.Instance.loadingWnd.SetWndState(false);
            }
        };
    }
}
using UnityEngine;
public class LoginSys : MonoBehaviour 
{
    public void EnterLogin()
    {
        //加载登录场景
        ResSvc.Instance.AsyncLoadScene(Constants.SceneLogin,()=>{
            //加载完成后打开登录注册界面
            loginWnd.SetWndState(true);
        });
    }
}

我们的改动不大,改动部分:(其余部分省略)


//显示加载界面 GameRoot.Instance.loadingWnd.SetWndState(true);


//取消对加载界面的展示 GameRoot.Instance.loadingWnd.SetWndState(false);


//加载完成后打开登录注册界面 loginWnd.SetWndState(true);

其实每个窗口界面里也有可能会用到公共服务 (如资源加载服务模块),如果不作改进,那我们每个窗口界面中都要去获取资源加载服务模块的单例并调用功能,这样改进之后,我们可以在基类窗口脚本中持有对此服务模块的引用,随后在基类初始化方法中对引用赋值,然后在每个窗口的自定义初始化函数中多调用下基类的初始化方法,就可以进一步精简代码,架构也更加清晰。

标红部分即为修改部分:

image.png

UI界面基类

image.png

加载进度界面

同理,其他界面,如登录注册界面,也可以这么改。

目录
相关文章
|
7天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
31 1
|
17天前
|
监控 API 开发者
后端开发中的微服务架构实践与优化
【10月更文挑战第17天】 本文深入探讨了微服务架构在后端开发中的应用及其优化策略。通过分析微服务的核心理念、设计原则及实际案例,揭示了如何构建高效、可扩展的微服务系统。文章强调了微服务架构对于提升系统灵活性、降低耦合度的重要性,并提供了实用的优化建议,帮助开发者更好地应对复杂业务场景下的挑战。
17 7
|
19天前
|
运维 监控 Serverless
利用Serverless架构优化成本和可伸缩性
【10月更文挑战第13天】Serverless架构让开发者无需管理服务器即可构建和运行应用,实现成本优化与自动扩展。本文介绍其工作原理、核心优势及实施步骤,探讨在Web应用后端、数据处理等领域的应用,并分享实战技巧。
|
19天前
|
Cloud Native API 持续交付
利用云原生技术优化微服务架构
【10月更文挑战第13天】云原生技术通过容器化、动态编排、服务网格和声明式API,优化了微服务架构的可伸缩性、可靠性和灵活性。本文介绍了云原生技术的核心概念、优势及实施步骤,探讨了其在自动扩展、CI/CD、服务发现和弹性设计等方面的应用,并提供了实战技巧。
|
22天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
54 3
|
27天前
|
存储 运维 监控
高效运维管理:从基础架构优化到自动化实践
在当今数字化时代,高效运维管理已成为企业IT部门的重要任务。本文将探讨如何通过基础架构优化和自动化实践来提升运维效率,确保系统的稳定性和可靠性。我们将从服务器选型、存储优化、网络配置等方面入手,逐步引导读者了解运维管理的核心内容。同时,我们还将介绍自动化工具的使用,帮助运维人员提高工作效率,降低人为错误的发生。通过本文的学习,您将掌握高效运维管理的关键技巧,为企业的发展提供有力支持。
|
1月前
|
安全 调度 虚拟化
探索现代操作系统的架构与优化
本文将深入探讨现代操作系统的核心架构和优化技术。从操作系统的基本定义入手,逐步解析其内核结构、进程管理、内存管理和I/O系统。同时,还将讨论现代操作系统在多核处理器支持、虚拟化技术和安全性方面的创新与优化措施。通过这些内容,读者可以全面了解操作系统的工作原理及其在实际应用中的表现与改进。
|
1月前
|
开发者 Docker 微服务
利用Docker Compose优化微服务架构
在微服务架构中,Docker Compose提供了一种简便有效的方法来定义和运行多容器Docker应用程序,通过YAML文件配置服务、网络和卷,实现一键创建和启动。这不仅确保了开发、测试和生产环境的一致性,还简化了团队协作和维护工作,大幅提升了开发效率。本文将详细介绍Doker Compose的核心优势、基本使用方法及高级功能,帮助你更好地管理和优化微服务架构。
|
15天前
|
存储 Kubernetes 监控
深度解析Kubernetes在微服务架构中的应用与优化
【10月更文挑战第18天】深度解析Kubernetes在微服务架构中的应用与优化
68 0
|
1月前
|
缓存 Linux 虚拟化
探索现代操作系统的架构与优化路径
本文旨在深入探讨现代操作系统的核心架构及其性能优化方法。通过对操作系统架构组件、关键技术及当前主流操作系统的分析,揭示其高效运作的背后机理,并从多个角度提出优化策略,为未来操作系统的发展提供参考。