Unity中的MVC思想

Unity中的MVC框架

1.MVC的概念

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中,数据-控制-显示分离的工作方式会使游戏(软件)的结构清晰化,逻辑更明了。

Model

负责数据的处理、能被Controller更新。

(1) 不保存任何View的数据或者View的状态

(2) 只能被Controller或者其他Model访问

(3) 会触发事件来通知外部系统进行处理和变更

View

在屏幕上渲染的视图,和用户交互的界面。

(1) 处理用户绘制元素的reference,包括纹理,特效等

(2) 播放动画

(3) 布局

(4) 接受用户输入

Controller

Controller是连接Model和View的桥梁。它会保存View的状态,并且根据外部事件来更新View的状态。

(1) 持有View所需要的应用状态

(2) 控制View的流程

(3) 根据状态show/hides/activates/deactivates/updates View或者View的某些部分。如controller可临时将攻击按钮Distable掉,因为此时攻击处于冷却状态,冷却状态一过,controller会re-enable这个按钮

(4) load/Instantiate需要的assets,比如显示particles, 动态改变sprites等

(5) 处理用户在View中触发的事件,比如用户按下了一个按钮;处理Model触发的事件,比如player获得了 XP并触发了升级,所以controller就更新了View中的Level Number

2.MVC的优势

多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。

由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的构件。

控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。

不过,由于实际游戏开发中不同游戏的核心逻辑可能差异较大,MVC框架并不适合游戏开发的每个过程,而多用于UI的开发。

3.MVC框架实例

//实现通过MVC框架随机产生一名幸运儿并显示至面板上的功能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public struct PlayerModel {
   
    public string name;

    public int age;

    public int id;

}


public class GameModel : MonoBehaviour
{
   
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值