【Unity】Unity中MVC框架的应用

文章介绍了MVC设计模式在Unity3D中的应用,包括View层的组合模式、Model层和View层的观察者模式以及View层和Controller层的策略模式。提供了点击按钮切换图片的示例,展示了Model、View和Controller各层的职责。文章还讨论了两种不同的MVC框架结构及其在项目维护中的考量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


参考

【Unity3D日常开发】Unity3d中使用MVC框架

策略模式

一、MVC介绍

在这里插入图片描述

MVC各层之间关系所对应的设计模式:
View层,单独实现了组合模式
Model层和View层,实现了观察者模式
View层和Controller层,实现了策咯模式

在这里插入图片描述
两种MVC框架结构:
1.先按照业务功能划分,再按照MVC划分。这种使得模块更聚焦(高内聚)
1
2.先按照MVC划分,然后再分出来业务功能
2
第二种方式用多了发现随着项目的运营模块增多,没有第一种那么好维护。

二、示例

做一个点击按钮切换图片的示例:
示例
Model层
Model_Main.cs :

public class Model_Main : Singleton<Model_Main> //单例
{
    public Sprite[] Images = new Sprite[5];
	
	//可添加数据模型变更事件,广播给View层
}

View层
View_Main.cs:

public class View_Main : MonoBehaviour
{
    Controller_Main m_ControllerMain; //controller层引用

    [HideInInspector]
    public Image m_Image;
    [HideInInspector]
    public Button changeButton;

    private void Start()
    {
    	//UI
        m_ControllerMain = GameObject.Find("Controller_Main").GetComponent<Controller_Main>();
        m_Image = GameObject.Find("MainBg").GetComponent<Image>();
        changeButton = GameObject.Find("ChangeButton").GetComponent<Button>();
		
		//调用事件
        changeButton.onClick.AddListener(ReplaceImage);
    }

    private void ReplaceImage()
    {
        m_ControllerMain.ReplaceImage();
    }
}

Controller层
Controller_Main.cs:

public class Controller_Main : MonoBehaviour
{
	//view层引用
    View_Main m_ViewMain;
    private void Awake()
    {
    	//加载资源
        for(int i = 0; i < Model_Main.Instance.Images.Length; i ++)
        {
            Model_Main.Instance.Images[i] = Resources.Load(string.Format("Texture/{0}", i), typeof(Sprite)) as Sprite;
        }
        m_ViewMain = GameObject.Find("View_Main").GetComponent<View_Main>();
    }

	//业务功能实现
    int i = 0;
    public void ReplaceImage()
    {
        i = ++i % 5;
        m_ViewMain.m_Image.overrideSprite = Model_Main.Instance.Images[i];
    }
}

Texture

res

总结

Model(数据层):存放静态字段、数据存储、模型资源存储
View(视图层):就是用户可以看到的层,指的是可以看到的UI,模型,加载和调用事件
Controller(管理层):实现业务逻辑功能、加载模型资源、功能实现等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葫芦娃子救我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值