用户体验

简介: ECS,全称是Entity Component System,即实体、组件和系统。据wiki,这三种概念的定义如下:实体,一般用途的对象,可以用唯一ID来标识。组件,是一组数据,可以是实体的一部分,也可以是实体和世界交互的中间数据(注意:没有功能)。实体由若干组件组成的,否则它就是一个空盒子。系统,基于实体中的特定组件来实现特定功能,但是系统是集中批量处理所有的实体的。这样描述还是很容易混淆,比如UE4里面也有Actor和Component,和ECS有什么区别呢?在UE4中,Actor也是由Component组成的,不过Component提供的是数据和功能的集合,所以在UE4中经常看

ECS,全称是Entity Component System,即实体、组件和系统。据wiki,这三种概念的定义如下:

实体,一般用途的对象,可以用唯一ID来标识。
组件,是一组数据,可以是实体的一部分,也可以是实体和世界交互的中间数据(注意:没有功能)。实体由若干组件组成的,否则它就是一个空盒子。
系统,基于实体中的特定组件来实现特定功能,但是系统是集中批量处理所有的实体的。
这样描述还是很容易混淆,比如UE4里面也有Actor和Component,和ECS有什么区别呢?在UE4中,Actor也是由Component组成的,不过Component提供的是数据和功能的集合,所以在UE4中经常看到各种Component的继承。

ue4中的Actor与Component

而ECS架构中,组件除了没有功能之外,相同类型的组件还是集中存储的(同一个chunk内)。System每次运行时遍历所有具有指定组件的实体,集中处理这些组件。

unity ECS内存布局

ECS的这种数据组织方式类似列数据库,System类似无状态服务。

ECS的优势和劣势
相比OOP方式实现的Component,ECS中相同组件的数据是连续的,System又集中处理这些组件,可以方便的利用CPU Cache,提升效率。

由于System处理的可能是几个组件,ECS将组件尽量的最小化(否则会有很多数据冗余),这样就实现了数据的扁平化。同时,System间禁止相互调用,最大程度的实现了解耦。而OOP最被诟病的调用层次深,结构复杂等问题都被解决了。

ECS也有它的不足,众多的component和system会带来认知负担,而且system之间可能存在优先次序,排定这些次序需要技巧。

System之间禁止调用,对象间的交互需要用到延迟处理的技巧。比如A攻击了B,你只能先把A攻击和相关数据记录下来,等专门处理受击的系统处理到B的时候再计算对B造成的伤害。那如果B对A有反弹伤害呢?还得再来一遍。

ECS的应用范围
ECS在处理扁平化数据和逻辑有很大的优势,比如移动、碰撞、渲染等,数据单纯且集中,处理起来效率高。而对于技能、AI逻辑来说,需要用到的数据较多,交互对象也多,并不能充分利用cache优化,而技能的思考流程也是反直觉的。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
搜索推荐 安全 Android开发
如何优化安卓应用的用户体验
【2月更文挑战第9天】在当今移动互联网时代,安卓应用已成为人们日常生活中不可或缺的一部分。然而,用户对应用的使用体验越来越苛刻,一个不好的应用体验很容易导致用户的流失。本文将介绍如何从多个方面优化安卓应用的用户体验。
|
5月前
|
缓存 前端开发 JavaScript
揭秘前端性能优化:从代码到用户体验的全面升级
揭秘前端性能优化:从代码到用户体验的全面升级
103 0
|
编解码 前端开发 UED
移动优化:提升用户体验的关键
在移动设备成为人们生活中不可或缺的一部分之后,移动优化已经成为现代网站和应用程序开发的重要组成部分。优化网站或应用程序以适应小屏幕和有限的网络带宽可以显著提高用户体验,增加用户满意度。本博客将深入探讨移动优化的核心概念、最佳实践以及如何确保您的项目在移动设备上表现出色。
201 0
|
5月前
|
UED
如何确保移动应用的用户体验?
移动应用的优秀用户体验设计涉及UI简洁、适应设备特性、关注用户行为变化及平衡商业目标。设计应减少界面混乱,利用移动设备功能,持续研究用户需求,并在满足业务目标的同时确保用户满意度。UX设计是个不断学习和适应的过程。
42 1
|
5月前
|
编解码 测试技术 Android开发
安卓应用开发:打造流畅的用户体验
【4月更文挑战第29天】在竞争激烈的应用市场中,一个具有流畅用户体验的安卓应用是吸引和保留用户的关键因素。本文将深入探讨如何通过优化代码、使用高效的架构模式以及利用安卓系统提供的工具来提升应用性能,从而打造出让用户满意的流畅体验。
|
5月前
|
缓存 前端开发 UED
前端用户体验优化指南
前端用户体验优化指南
81 1
|
弹性计算 物联网 数据安全/隐私保护
|
存储 SQL 程序员
关于使用阿里云的用户体验
在平时的工程需要中,我们需要将一定设计的程序功能进行存储和共享,如果按照传统的方式进行,那个会存在一个问题,那就是怎样能够在最大限度内实现最大效率?这里所说的最大效率是指时间和空间的便捷。阿里云平台的设计很好的解决了这个问题:在时间上,大家只需要登陆账号就可以登陆,这个平台相当于一个云端计算机,在时间上,能够大大缩短时间;在空间上,由于程序功能的共享会涉及到存储的问题,我觉得,以目前的程序需求来看,阿里云这个云端计算机是足够使用的。总的来说,阿里云平台的设计在时间、空间以及各方面的使用感都是不错的,我都十分推荐大家使用。
10大用户体验技巧!
本文由Mockplus(摹客)团队翻译,仅供学习交流。 UX(即用户体验)是通过提高用户与设计界面交互的可访问性,可用性以及效率来提升用户满意度的方法。
1033 0