位置: 编程技术 - 正文

Unity基于组件的对象模型(unity ugui组件)

编辑:rootadmin

推荐整理分享Unity基于组件的对象模型(unity ugui组件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity中的组件,unity组件开发的原理,unity物体基本组件,unity ui组件,unity组件开发的原理,unity ui组件,unity物体基本组件,unity中的组件,内容如对您有帮助,希望把文章链接给更多的朋友!

转载: Programming Gems 5》的《Component Based Object Management》中接触到的,当时感觉在设计上很实用。后来,发现Unreal Engine 3的一个重要的改进就是抛弃了以前的基于纯派生关系的对象模型,而转为使用基于组件的对象模型。对于这种设计思想,Unity比Unreal贯彻的更彻底——一切皆Component。

那么到底什么是“基于组件”的对象模型?它能够解决什么问题?

在传统的设计中,我们一般会使用“派生”来描述对象之间的关系。子类通过派生父类,来获得父类的功能。在设计游戏对象时,会根据游戏本身的需要而为游戏对象添加各种功能支持,比如渲染,碰撞,刚体,粒子系统等等。这些通用功能为了能够为各种派生类提供服务,都必须实现到基类中。这样就导致了游戏对象基类变得非常庞大臃肿,即难使用,又难维护。

Unity基于组件的对象模型(unity ugui组件)

”基于组件“的对象模型就是把所有需要提供给游戏对象的基础功能都独立成单独的”组件模块“(Component),一个具体的游戏对象可以将它需要的功能模块组合到一起使用。所有”功能“不再是父类中的接口,而变成子对象实例,为游戏对象提供服务。这样既保证了功能代码的可重用性,又增加了整个对象体系的模块化和灵活度。

在Unity中,GameObject除了作为Component的容器之外,基本上没有其他功能。所有需要的功能都要通过组合Component来实现。脚本本身也是Component,用来在GameObject上通过控制其他Component来实现自定义的功能。虽然这些Component在物理上是完全并列的关系,但是他们之间还是会有一定的层次关系的。在设计一个游戏对象的具体功能时,组件一般会被分为三个层次。

引擎的基础组件

Unity本身提供的各种内部功能组件。比如渲染组件,物理组件,声音组件等等。这些组件实现了所有引擎提供的基础功能,会被脚本使用来组合高级功能。

模块功能脚本组件

通过脚本实现的一些相对独立的通用模块功能的组件。这类组件的设计是脚本可重用的关键,需要仔细分析游戏对象中哪些功能可以被独立出来成为一个可重用的功能模块组件,并且在实现上应该尽量降低与其他组件的耦合性。比如在设计一个角色游戏对象时,需要为他设计换装功能。换装功能其实就是对显示子对象进行分组管理,切换显示状态。这个功能相对独立,与其将他实现到角色中,不如独立成一个功能模块组件。角色游戏对象和其他所有需要换装功能的游戏对象都可以通过包含这个模块组件来实现换装功能。

模块功能组件之间还可能有依赖关系,也就是一个功能模块组件可能依赖与另一个功能模块组件,从而在这个组件层次上形成更多的子层次。

高层的胶水代码脚本这些脚本用来真正将引擎基础组件和模块功能组件组合到一起实现最终游戏对象逻辑。用“胶水代码”来形容这些脚本非常的贴切,就是把所有这些子功能“粘”在一起。比如设计一个Player脚本,将所有需要的组件功能组合起来,实现一个玩家的具体游戏逻辑。因为这一层次代表的都是最高层的游戏行为控制对象,是具体的游戏逻辑的“胶水”代码,不会再为更上层提服务,所以本身的可重用性并不高。但是这些对象之间按照类型区分,往往会有一些功能上的重合,所以反而可以继续使用派生关系来实现功能的重用。比如在Character中实现所有的基础功能(这些功能又是通过组合基础组件来实现的),而Player和NPC都从Character派生,来继承所有Character的功能,并继续实现自己特殊的功能。一个功能到底应该用组件实现还是用派生实现并没有非常明确的界限,应该根据需要灵活运用。在使用Unity的过程中,如果要实现的是demo级别的小工程,并不需要考虑很多,直接用脚本实现功能就可以了。但是如果要有效地组织复杂的工程,提高代码的重用性,充分理解和合理的利用“基于组件”的对象模型设计思想还是很重要的。

unity3d发布apk在android虚拟机中运行的详细步骤 这篇文章主要介绍了unity3d发布apk在android虚拟机中运行的详细步骤,需要的朋友可以参考下unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出androidapk

unity3D鼠标滚轮来实现镜头拉近拉远及视角旋转 镜头拉近拉远的代码(无限拉远拉近)代码如下:if(Input.GetAxis(MouseScrollWheel)!=0){this.gameObject.transform.Translate(newVector3(0,0,Input.GetAxis(MouseScrollWheel)*Time.deltaTi

unity3d 使用Quaternion 类实现两个简单功能 1:键盘点击左右箭头,旋转transform固定角度2:限制transform的旋转角度与目标角度的夹角小于度usingUnityEngine;usingSystem.Collections;publicclassmovetest:MonoBehaviou

标签: unity ugui组件

本文链接地址:https://www.jiuchutong.com/biancheng/382507.html 转载请保留说明!

上一篇:Unity3D Mesh学习笔记2-创建MeshBuilder(unity mesh编程)

下一篇:unity3d发布apk在android虚拟机中运行的详细步骤(unity打包安卓apk)

  • 增值税进项发票怎么做账
  • 以固定资产投资的会计处理
  • 坏账准备需要计提成本吗
  • 汇算清缴时有哪些需要调整的项目
  • 合伙企业每年费用
  • 公司汽车购置税怎么交
  • 备用金每个月可以用几次
  • 钱已付票未收到分录怎么做
  • 计算应交消费税需要扣除代收代缴消费税吗
  • 非货币性资产交换补价大于25%的会计处理
  • 应付利息借贷
  • 车辆购置税退税流程
  • 违反劳动合同的责任
  • 印花税申报完成后如何缴款
  • 饭店试菜费用如何计算
  • 建安业一般纳税人企业所得税率是多少
  • 审计报告可以不披露上年数吗
  • 销售蔬菜免税账务处理
  • 小规模纳税人可以开专票吗
  • 企业收取的会员费当无法继续提供服务能退吗?
  • office软件图标不显示
  • 苹果14.5新功能
  • linux耳机插拔检测
  • 政府单位没有税号怎么开普票
  • 东方蝾螈怎么养吃什么
  • 民办学校的财务制度
  • steam怎么退款申请退款要多久
  • 公司股东转账进公司账户,会计分录
  • msxct.exe - msxct是什么进程 有什么用
  • linux录制视频工具
  • 捐赠支出如何做账
  • 工程项目成本预算表
  • 预算会计组成体系不包括
  • gridview功能
  • ssh -o命令
  • 员工福利费会计分录 最新
  • 售后租回租金怎么做账
  • 循环表是线性表吗
  • 增值税小规模纳税人适用3%征收率
  • centos7阿里云源
  • 织梦系统基本参数
  • 小规模企业所得税怎么征收
  • SQL Server 2005通用分页存储过程及多表联接应用
  • mysql批量新增字段
  • 季度所得税申报表营业收入怎么填
  • ibps对公提回贷记有什么影响
  • 视同销售的增值税是如何计算?
  • 经营性现金净流量公式
  • 劳务派遣如何做线上业务
  • 贷款减值准备是什么意思
  • 公司账户转账给个人要交税吗
  • 法院强制执行扣完款就完事了吗
  • 收到土地使用权计入什么科目
  • 代开专票作废退税怎么做账?
  • 青苗赔偿规定
  • 原料到产品
  • 库存商品结转成本需要附件吗
  • 项目过路费应该挂什么科目
  • 一般纳税人主表中的25是怎么来的
  • 5000元固定资产一次性计提折旧
  • asp.net 使用SqlBulkCopy极速插入数据到 SQL Server
  • win8系统的电脑
  • mac的分辨率怎么调
  • ubuntu 命令行修改用户密码
  • mac隐藏菜单栏
  • Linux开机启动文件
  • 生产运维管理
  • win10系统将IIS服务器发送到桌面快捷方式方法
  • 微信 cookies
  • Time、Set、Smartdrv命令的使用方法
  • ubuntu重新安装网卡驱动
  • vmwareUbuntu虚拟机硬盘扩容
  • 浅谈python要进行房价预测的优点和缺点
  • unity3d spine
  • rpg好玩地图
  • jquery常用插件有哪些
  • 重庆市怎么在网上打印章程
  • 新疆办房产证需要多久能拿证
  • 江西公安电子证件
  • 江苏发票认证平台app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设