【发布时间】:2020-02-21 02:32:36
【问题描述】:
我们正在使用 ECS(实体-组件-系统)开发一款游戏。
因为存储在组件中的所有数据都是公开的,所以每个人都可以轻松访问它们。有时有人错误地修改了数据,这导致了一个很难找到的错误。
我想制作一个工具来限制访问,然后系统只能访问某些固定组件。我该怎么做?
【问题讨论】:
标签: unity3d data-oriented-design
我们正在使用 ECS(实体-组件-系统)开发一款游戏。
因为存储在组件中的所有数据都是公开的,所以每个人都可以轻松访问它们。有时有人错误地修改了数据,这导致了一个很难找到的错误。
我想制作一个工具来限制访问,然后系统只能访问某些固定组件。我该怎么做?
【问题讨论】:
标签: unity3d data-oriented-design
我认为对于 Unity 开发活动,大多数值通常是开放的并且可以轻松更改。如果您有一些需要在 C# 中公开但在 Unity 编辑器中不可见的内容,请将其定义为
公共变量 {get;set;}
如果您需要在 Unity 中进一步限制,请将您的变量定义为
公共变量 {get;私有集;}
如果您确实需要进一步保护,请将值分解为访问器和支持变量,即:
var _x;
public var X
{
get {return _x;}
set {
if( valueAllowedToBeWritten)
_x = value;
}
祝你好运!
【讨论】: