跳转至

使用 C# 风格指南编写干净且可扩展的代码⚓︎

官方资源链接: C#-Style-Guide Unity 推荐的一种代码风格: Unity-C#-Style-Example

编码思维⚓︎

  • Keep It Simple, Stupid (KISS),保持代码有效且简单即可,除非是“防御性编程”。
  • YAGNI (You Ain't Gonna Need It),不要提前考虑过多功能,以最简单的方式编写现在最需要的功能,并确保它能实现目标。
  • DRY (Don't Repeat Yourself)),超过三次的重复代码,请考虑进行封装。
  • 不要逃避代码问题,如果可以,去弄清楚问题的关键。
  • 保持统一的代码风格。
  • 逐步改进代码,保持功能正常,不要过于追求完美,当你的代码达到生产标准时,就应该提交并继续前进。
  • 一定要有计划,但是也要适应改变。

六大编码原则⚓︎

  • SRP - Single Responsibility Principle - 单一职责原则
  • OCP - Open Closed Principle - 开闭原则
  • LSP - Liskov Substitution Principle -里氏替换原则
  • DIP - Deppendency Inversion Principle - 依赖倒置原则
  • ISP - Interface Segregation Principle - 接口隔离原则
  • LKP - Least Knowledge Principle - 最少知识原则

梳理代码规范⚓︎

位于 OdinToolkits 的 Editor 文件夹中的 OdinToolkitsCodeStyleExample.cs ,内容很长,并且可能根据实际情况不断优化修改。

Unity 中的脚本模板⚓︎

可以在 Unity 软件安装目录找到内置的脚本模板,此处的脚本模板是跨项目的,依赖于 Unity 的版本。

Windows: C:\Program Files\Unity\Hub\Editor\[unity version]\Editor\Data\Resources\ScriptTemplates

MacOS: /Applications/Unity/Hub/Editor/[unity version]/Unity.app/Contents/Resources/ScriptTemplates

可以看到内置脚本模板:1-Scripting__MonoBehaviour Script-NewMonoBehaviourScript.cs.txt

自定义脚本模板⚓︎

  • 使用 .txt 文件
  • 使用特殊命名格式: 序号-菜单路径-脚本名.cs.txt
  • 菜单路径层级使用 __ 分隔

脚本文件内容如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// #SCRIPTNAME# 表示脚本名
public class #SCRIPTNAME# : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // #NOTRIM# 表示空一行
        #NOTRIM#
    }
    // Update is called once per frame
    void Update()
    {
        #NOTRIM#
    }
}

注意

如果想要将脚本模板设置到某一个项目中,在 Assets/ 中创建文件夹 "Assets/ScriptTemplates",然后根据命名规则创建脚本模板文件,设置好脚本模板文件内容后,重启编辑器。

Editor Config⚓︎

.editorconfig 文件,在 Rider 中就等于代码样式检查设置,内部就是一个这样的文件。

可以在项目根目录下创建一个 .editorconfig 文件,并添加内容,具体内容可以让图形化配置好的 IDE 导出,然后分发给项目成员使用。

有关内容在书籍第37页。

Unity 的单元测试⚓︎

书籍第62页,链接比较多,可以参考。

Unity 单元测试文档 Unity 单元测试案例资源 通过 Roslyn 分析器确认代码质量文章 使用测试确保 Unity 项目质量 Speed up debugging with Microsoft Visual Studio Code How to debug code with Microsoft Visual Studio 2022 | Unity

Rosyln

通常在 Rider 中的那么建议,警告,错误的提示,就是来自 Rosyln 分析的结果。

UI Toolkit 命名约定⚓︎

暂时不需要,书籍第51页。

评论