Unity组件
在学习C++的时候,对于面对对象有点了解。然后也使用过一段时间的Unity,用起来还是觉得,怎么这么好用。耦合性极低。当时不知道这是基于组件编程。所以现在来学习下基于组件的知识,并比较下基于组件和基于对象的区别。
一、面对对象
在学校,老师讲授的C++,比较核心的就是“面对对象”的思想。好比编写一个游戏,先考虑好该游戏有哪些对象,比如:玩家、敌人、道具、战斗关卡、等
敌人和玩家都具有一些相同的属性:血量、攻击力、位置等。但是玩家除此之外还拥有金钱、装备仓库、技能。根据技能的不同,可以分为近战的战士 和 远程攻击的 法师。 玩家可以用 钱来购买装备。装备包含该装备售卖的价格和装备信息。 游戏关卡类控制战斗过程中关卡的切换。
二、组件编程
在传统的结构设计中一般会使用“派生”来描述对象之间的关系。子类通过派生父类,来获得父类的功能。在设计游戏对象时,会根据游戏本身的需要而为游戏对象添加各种功能支持,比如渲染,碰撞,刚体,粒子系统等等。这些通用功能为了能够为各种派生类提供服务,都必须实现到基类中。这样就导致了游戏对象基类变得非常庞大臃肿,即难使用,又难维护。 ”基于组件“的对象模型就是把所有需要提供给游戏对象的基础功能都独立成单独的”组件模块“(Component),一个具体的游戏对象可以将它需要的功能模块组合到一起使用。所有”功能“不再是父类中的接口,而变成子对象实例,为游戏对象提供服务。这样既保证了功能代码的可重用性,又增加了整个对象体系的模块化和灵活度。
我的理解:Unity把最常使用、最基本的功能以一个个组件的形式提供给开发者。比如位置、音效、渲染、碰撞等。相当于开发者建造一个房子的话,Unity直接提供了砖头、水泥、木头、门窗这些基本的物件。开发者可以像搭积木一样构造出一个个城堡。开发者充当的角色就是“胶水”,将一个个独立模块通过一定的逻辑,粘连起来,最终达到自己的项目预期目的。
三、Unity有哪些组件
Unity3D = Gameobject + Components;Unity核心思想:一切皆组件;
Transform:物体的空间坐标、缩放、旋转信息
灯光:点光源、方向光源、
相机
地形
粒子系统
屏幕特效
网格
物理引擎:重力、碰撞、刚体、射线
音效、视频
动画
AI:寻路
更多unity2018的功能介绍请到paws3d学习中心查找。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
web页面渲染(二)
客户端渲染(CSR) 客户端渲染意味着在浏览器中使用Javascript直接渲染页面。所有的逻辑,数据获取,模板和路由都在客户端处理。 对于移动设备来说,客户端渲染很难得到或者保持一种快速的访问水平。如果它做最少的工作,保持严格的Javascript预算,并尽可能减少数据请求往返的时间,那么它可以接近纯服务器端渲染的性能。使用HTTP/2推送或者是<link rel=preload>可以使得关键脚本和数据得以更快的传递,从而使得解析器更快的为你工作。为了确保初始化和随后的导航感觉立刻就能完成,像PRPL这样的模式就比较值得去做。 客户端渲染主要的缺点就是Javascript的数量会随着应用程序的增长而变得越来越多。当有额外的新Javascript类库,polyfills和第三方代码的时候,优化工作会尤其困难。然而这些代码也会竞争系统的处理能力,因此在页面内容被渲染完成之前,必须要经常处理一些东西。 对于构建单页应用的人员来说,对于被大多数页面共享的核心用户接口,你可以尝试应用Application Shell缓存技术。并与service workers相结合,它可以明显...
- 下一篇
基于django的视频点播网站开发-step1-项目介绍
本文将会对该项目进行一个简单的介绍,包括项目名称、项目背景、项目功能、技术栈等等。 项目名称 基于django的视频点播网站开发 项目背景 学习完毕python和django之后,想找个项目练练手,本来想写个博客项目练手,无奈别人已经写过了,所以笔者就打算写一个视频点播网站,因为笔者非常喜欢观看视频,尤其是YouTube、bilibili都是笔者非常喜欢的视频网站,所以想自己实现一个简单的视频点播网站,学以致用。 项目功能 本项目分为前台和后台 前台功能 视频列表展示 视频播放详情 详情评论 个人中心 后台功能 视频管理 评论管理 用户管理 反馈管理 演示地址 https://v.mypython.me/ 后台管理地址 https://v.mypython.me/myadmin/ 测试账号 用户名:admin123 密码:admin123 适合人群 python初级学员、大学生、系统设计人员、 技术栈 python/django/nginx/mysql/semantic-css/jquery/html 源码 https://github.com/geeeeeeeek/videoproj...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主