当前位置: 首页 > news >正文

Unity应用架构设计(3)——构建View和ViewModel的生命周期


{
    IsRevealInProgress = true;
    //在开始显示的时候进行初始化操作
    if (!_isInitialized)
    {
        OnInitialize();
        _isInitialized = true;
    }
}

public virtual void OnFinishReveal()
{
    IsRevealInProgress = false;
    IsRevealed = true;
}

public virtual void OnStartHide()
{
    IsHideInProgress = true;

}

public virtual void OnFinishHide()
{
    IsHideInProgress = false;
    IsRevealed = false;
}

public virtual void OnDestory()
{
    
}

值得注意的事,以上不管是View还是ViewModel与生命周期相关的方法,都是虚方法(virtual),这就意味这子类可以Override掉。比如某些场景下需要将View从左边或者右边移入,可以在初始化时指定偏移距离。又或者不想用默认的DoTween特效,你也可以完全Override并使用Animation等。

回到顶部

小结

本文介绍了怎样为View/ViewModel构建自定义的生命周期,MonoBehaviour 虽然有自己的生命周期,但不够细腻,我们完全可以扩展自己的生命周期,实现对需求的定制。
源代码托管在Github上,点击此了解

88x31.png
本博客为 木宛城主原创,基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 木宛城主(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
分类: Unity 3D, Unity应用架构设计

本文转自木宛城主博客园博客,原文链接:http://www.cnblogs.com/OceanEyes/p/view_viewmodel_lifecycle.html,如需转载请自行联系原作者

相关文章:

  • 动态链接库相关
  • java集合类
  • Autodesk Vault: 获取授权失败
  • 017,idea集成svn
  • 一个mysql的备份脚本(可以结合多实例进行调整)
  • Oracle Redo Log
  • 基于Maven引入Hadoop包报Missing artifact jdk.tools:jdk.tools:jar:1.6
  • List运用
  • EXP-00003: 未找到段xxx的存储定义
  • js-JavaScript高级程序设计学习笔记14
  • mysql数据库性能调优总结积累
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • awk 对列数据求和
  • 【哈佛幸福课·健康之道】锻炼的真相
  • 阿里云windows 2012服务器部署java web程序教程
  • 【node学习】协程
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Android 架构优化~MVP 架构改造
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Angular6错误 Service: No provider for Renderer2
  • Apache的80端口被占用以及访问时报错403
  • C# 免费离线人脸识别 2.0 Demo
  • classpath对获取配置文件的影响
  • Debian下无root权限使用Python访问Oracle
  • E-HPC支持多队列管理和自动伸缩
  • EventListener原理
  • HashMap ConcurrentHashMap
  • iOS | NSProxy
  • iOS编译提示和导航提示
  • Kibana配置logstash,报表一体化
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Tornado学习笔记(1)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 编写符合Python风格的对象
  • 产品三维模型在线预览
  • 从PHP迁移至Golang - 基础篇
  • 对JS继承的一点思考
  • 简单数学运算程序(不定期更新)
  • 聚类分析——Kmeans
  • 设计模式 开闭原则
  • 责任链模式的两种实现
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #git 撤消对文件的更改
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (AngularJS)Angular 控制器之间通信初探
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (ZT)薛涌:谈贫说富
  • (十一)图像的罗伯特梯度锐化
  • (四)图像的%2线性拉伸
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)c++ std::pair 与 std::make