- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
20多年来,我一直在编写代码(多种编程语言),并且始终使用设计模式和多种架构......层、职责分离、不同的类库、客户端/服务器等等...
但是,在这个周末,只是为了好玩和好奇,我安装了 Unity 3D 并尝试了一下。虽然我能够在 Visual Studio 中打开这些文件,但我不了解 unity 项目的默认文件结构。
我创建了嵌套文件夹来组织我的代码,但是当我尝试创建一个类时,出现了许多问题:
我发现了一个article有一些信息,但仅此而已......没有别的了。
我想知道是否有人可以为我指出关于这个主题的正确方向。
谢谢。
最佳答案
在 Unity 中,C# 被用作脚本语言,但受到许多限制,并且旨在以某种模式使用。每个 Unity 脚本都源自 MonoBehaviour,正如您在文档中所读到的那样,它实现了特定的 methods 。此外,您不能使用 new 构造函数,而必须使用名为 Instantiate 的工厂方法。 。尽管如此,您可以使用其他类,只要它们正确包含并由任何 MonoBehaviour 脚本类使用即可。
虽然该主题存在意见分歧,但您可以找到有关 C# 脚本在 Unity 中结构不佳的意见 [1] .
在 Unity 的早期版本中,普遍的共识是,当文件夹结构反射(reflect)类型(例如图像和类别、每个类别的脚本、预制件、纹理等)时,较大的项目会更整洁,而当文件夹按语义命名时,较小的项目会更整洁根据您的项目(例如场景或特定功能)。命名空间是完全可能的,您可以在任何地方定义它们。尽管如此,正如您所想,已经有一个文件夹结构,并且命名空间不是 100% 模式,应该在大型项目中使用以避免冲突,如 documentation 所示。提示。
最近的发展催生了一种名为 Entity Component System 的架构。 (检查文档)。
An Entity Component System (ECS) architecture separates identity(entities), data (components), and behaviour (systems). Thearchitecture focuses on the data. Systems transform the data from aninput state to an output state by reading streams of component data,which are indexed by entities.
最近的开发改进了项目架构。不仅项目的可扩展性得到了改进,而且您如何回收代码或移植它也得到了改进。即便如此,您也必须遵循 Unity 模式并坚持接口(interface)。例如,Unity.Jobs 具有实现行为所需的接口(interface) JobComponentSystem。最终,这一切都意味着坚持模式。现代项目应该坚持使用 ECS。
关于c# - 如何: Project Architecture for Unity3D or Spaghetti code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59353191/
code
正常吗?
我刚刚开始使用 YARD 来记录我的 Rails 应用程序。我没有指定任何特定的标记处理程序,但我希望 `code` 会转换为 code,但这似乎没有发生。这是正常行为吗?我是否必须添加一些额外的选项
什么是Code-Server 首先程序员朋友们肯定都用过来自微软的VS Code 这款轻量而又高级的编辑器,拥有丰富的插件库,支持各种语言编译运行。而本文介绍的Code-Server就是coder 公
我是一名高中生,今年开始学习汇编。 我目前正在制作 Pacman 克隆作为我的最终项目。 我遇到的唯一问题是我的代码很大,*.exe 文件几乎有 64KB。 所以我的问题是,如果我转向模型介质,我需要
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 挑战 按字符计数绘制 Code 39 条码的 ASCII 表示的最短代码。 维基百科关于代码 3
我正在开发 VS 代码的扩展(使用 javascript)。现在我需要安装 VS Code 的路径。 windows有一种方法: var child = require('child_process'
[Windows 10] 我在自定义目录中安装了“Microsoft VS Code(用户设置)”,每当我尝试更新它时,都会显示: 然后这个 Log Info Dec 23 11:42:40.673
我正在尝试更新我的 VS 代码,但收到一条错误消息:由于防病毒软件和/或进程失控,更新可能会失败。 附加了一个来 self 的用户的日志文件,但我不确定要检查什么。我对计算机和编程还是个新手。 最佳答
几天前我安装了 Kali Linux。我正在尝试使用 Code-OSS 而不是 VSCode,因为最新版本的 Kali 没有安装普通版本所需的库。 如果我尝试使用 code-oss . 或 code
我正在从 Atom 迁移到 VS Code,因为这似乎是当今所有酷 child 都在使用的东西。 在 atom 中,我能够如图所示突出显示当前行号(装订线中的蓝色突出显示)。 有没有办法在 VS Co
我试图找到一个明确的 G 代码语法规范,而不是单个 G 代码的含义,我无处不在的规范,我的意思是详细的语法规范,目的是编写解析器。 我编写解析器没有问题,我只是在寻找语法规范,例如。我知道您不必总是为
我想在 VS Code (Windows) 中使用 Fira Code,并且已经按照 instructions 中的说明配置了字体。 。不知何故,字体看起来很模糊。我该如何解决这个问题? "edito
这个问题已经有答案了: How can I navigate back to the last cursor position in Visual Studio Code? (16 个回答) 已关闭
如何选择当前单词,即插入符号所在的位置。 注意:我正在寻找 Visual Studio Code(VS Code)(文本编辑器)的快捷方式,而不是 Visual Studio IDE。 最佳答案 在
我需要在 VS Code 中安装 flutter 但在安装扩展中,我有这个错误 Unable to install 'Dart-Code.flutter'; there is no available
memberData
有什么区别
{@code memberData} 和有什么区别?和 memberData在 JavaDoc 中 最佳答案 有两个主要区别: {@code ...}更简洁:更易于阅读(和输入)。 {@code ..
我有这样一个字符串: Here is my code sample, its not too great: [CODE] [/CODE] I hope you enjoy. 现在我想用 highli
在 VS Code 中,我有一个少于 50 个文件的 Vue 项目,但是在运行开发服务器时 VS Code 抛出 Error: ENOSPC: System limit for number of f
Source Code Pro 如何在 VSC 中使用 ExtraLight ~? 似乎以下不起作用...... 我确定我有字体。 Source Code Pro ExtraLight 最佳答案 编辑
我对 Visual Studio Code 很陌生。我正在尝试调试一个已经存在的应用程序,我已经通过 Git 克隆了它。我的文件都没有被修改。我已经下载了微软扩展“C# for Visual Stud
Visual Code VS Visual Studio Code Insider 我还是不明白这两者有什么区别,难道其中一个是新功能的试用版吗? 最佳答案 Visual Studio Code In
我是一名优秀的程序员,十分优秀!