关于ECS(Entity-Component-System)游戏编程中数据访问控制的问题

Posted

技术标签:

【中文标题】关于ECS(Entity-Component-System)游戏编程中数据访问控制的问题【英文标题】:Question about data access control in game programming with ECS (Entity-Component-System) 【发布时间】:2020-02-21 02:32:36 【问题描述】:

我们正在使用 ECS(实体-组件-系统)开发一款游戏。

因为存储在组件中的所有数据都是公开的,所以每个人都可以轻松访问它们。有时有人错误地修改了数据,这导致了一个很难找到的错误。

我想制作一个工具来限制访问,然后系统只能访问某些固定组件。我该怎么做?

【问题讨论】:

【参考方案1】:

我认为对于 Unity 开发活动,大多数值通常是开放的并且可以轻松更改。如果您有一些需要在 C# 中公开但在 Unity 编辑器中不可见的内容,请将其定义为

公共变量 get;set;

如果您需要在 Unity 中进一步限制,请将您的变量定义为

公共变量 get;私有集;

如果您确实需要进一步保护,请将值分解为访问器和支持变量,即:

var _x;
public var X

  get return _x;
  set 
      if( valueAllowedToBeWritten)
        _x = value;
      

祝你好运!

【讨论】:

以上是关于关于ECS(Entity-Component-System)游戏编程中数据访问控制的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于阿里云ecs服务器无法用FTP进行连接问题

征文投稿丨使用云服务器ECS快速搭建halo博客

关于Unity C# 的Value Type (值类型) vs. Reference Type (引用类型),优缺点?GC ? ECS?

Terraform 列出 ECS 集群容器实例

阿里云ECS镜像

阿里云服务器ECS选型购买参照