您现在的位置是:首页 > 文章详情

Unity组件

日期:2019-02-11点击:421

在学习C++的时候,对于面对对象有点了解。然后也使用过一段时间的Unity,用起来还是觉得,怎么这么好用。耦合性极低。当时不知道这是基于组件编程。所以现在来学习下基于组件的知识,并比较下基于组件和基于对象的区别。
一、面对对象
在学校,老师讲授的C++,比较核心的就是“面对对象”的思想。好比编写一个游戏,先考虑好该游戏有哪些对象,比如:玩家、敌人、道具、战斗关卡、等
敌人和玩家都具有一些相同的属性:血量、攻击力、位置等。但是玩家除此之外还拥有金钱、装备仓库、技能。根据技能的不同,可以分为近战的战士 和 远程攻击的 法师。 玩家可以用 钱来购买装备。装备包含该装备售卖的价格和装备信息。 游戏关卡类控制战斗过程中关卡的切换。

二、组件编程
在传统的结构设计中一般会使用“派生”来描述对象之间的关系。子类通过派生父类,来获得父类的功能。在设计游戏对象时,会根据游戏本身的需要而为游戏对象添加各种功能支持,比如渲染,碰撞,刚体,粒子系统等等。这些通用功能为了能够为各种派生类提供服务,都必须实现到基类中。这样就导致了游戏对象基类变得非常庞大臃肿,即难使用,又难维护。 ”基于组件“的对象模型就是把所有需要提供给游戏对象的基础功能都独立成单独的”组件模块“(Component),一个具体的游戏对象可以将它需要的功能模块组合到一起使用。所有”功能“不再是父类中的接口,而变成子对象实例,为游戏对象提供服务。这样既保证了功能代码的可重用性,又增加了整个对象体系的模块化和灵活度。
我的理解:Unity把最常使用、最基本的功能以一个个组件的形式提供给开发者。比如位置、音效、渲染、碰撞等。相当于开发者建造一个房子的话,Unity直接提供了砖头、水泥、木头、门窗这些基本的物件。开发者可以像搭积木一样构造出一个个城堡。开发者充当的角色就是“胶水”,将一个个独立模块通过一定的逻辑,粘连起来,最终达到自己的项目预期目的。

三、Unity有哪些组件
Unity3D = Gameobject + Components;Unity核心思想:一切皆组件;
Transform:物体的空间坐标、缩放、旋转信息
灯光:点光源、方向光源、
相机
地形
粒子系统
屏幕特效
网格
物理引擎:重力、碰撞、刚体、射线
音效、视频
动画
AI:寻路
更多unity2018的功能介绍请到paws3d学习中心查找。

原文链接:https://yq.aliyun.com/articles/690054
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章