unity3d - 关于ECS(Entity-Component-System)游戏编程中数据访问控制的问题
问题描述
我们正在使用 ECS(实体-组件-系统)开发游戏。
因为存储在组件中的所有数据都是公开的,所以每个人都可以轻松访问它们。有时有人错误地修改了数据,这会导致很难找到它的错误。
我想制作一个工具来限制访问,然后系统只能访问一些固定组件。我怎样才能做到这一点?
解决方案
我认为对于 Unity 开发活动,大多数值通常是开放的并且易于更改。如果您有一些需要在 C# 中公开但在 Unity 编辑器中不可见的内容,请将其定义为
公共变量 {get;set;}
如果您需要在 Unity 中进一步限制,请将您的变量定义为
公共变量{得到;私人集;}
如果您确实需要进一步保护,请将值分解为访问器和支持变量,即:
var _x;
public var X
{
get {return _x;}
set {
if( valueAllowedToBeWritten)
_x = value;
}
祝你好运!
推荐阅读
- c - (4*4) 数组在以下程序中被打印两次。为什么?
- terraform - Terraform 和 OpenStack - 零停机时间变化
- c# - SSIS C#脚本修改以在循环/列表中获取文件创建时间
- c# - 对 COM 互操作的浅薄理解会导致 TYPE_E_CANTLOADLIBRARY 异常 - 错误在哪里?
- html - 使用 ngClass 'Missing expected }' 收到错误
- ssh - scp 不允许文件传输,除了主目录
- javascript - 对多个 URL 的 GET API 请求
- javascript - 如何从夜间 javascript 自动化中的日期选择器日历中选择日期?
- mariadb - MariaDB 10.1 在 Debian 9.12 上使用过多 RAM
- python - 创建一个python字典,其中值是字符串列表