﻿# 02. 增量生成

我们再看下目录：

![Image.png](https://file.liangxiegame.com/47398560-791c-4e41-8586-6b76347f2758.png)

这里有两个文件 Player 和 Player.Designer。

其中 Player 是用来给大家写逻辑用的，所以 Player 只会生成一次。

而 Player.Designer 每次点击生成代码都会重新生成。

我们看下 Player.Designer 的代码，如下:

```cs
// Generate Id:471bf5e6-b60b-42b8-b5c8-b070a963ab4a  
using UnityEngine;  
  
// 1.请在菜单 编辑器扩展/Namespace Settings 里设置命名空间  
// 2.命名空间更改后，生成代码之后，需要把逻辑代码文件（非 Designer）的命名空间手动更改  
namespace QFramework.Example  
{  
 public partial class Player 
 {  
   public Transform Weapon;  
 }
}
```

代码中只有一个 Weapon 。

接着，我们再给 Player 的另一个子 GameObject 挂上 Bind 脚本，如下:

![Image.png](https://file.liangxiegame.com/acde8a1e-2e6f-4bee-8aa9-02cec82f2808.png)

然后点击生成代码，操作如下:

![Image.png](https://file.liangxiegame.com/991db32f-8212-4d7a-8176-0065cebad93f.png)

生成之后，结果如下:

Player 多了一个 Ground Check

![Image.png](https://file.liangxiegame.com/d769f7e4-1e70-4dfc-9962-27d6b99998a4.png)

再看下  Player.Designer 的代码，如下:

```cs
// Generate Id:f512c2ed-6243-4a89-897e-bdaaabe50d63  
using UnityEngine;  
  
// 1.请在菜单 编辑器扩展/Namespace Settings 里设置命名空间  
// 2.命名空间更改后，生成代码之后，需要把逻辑代码文件（非 Designer）的命名空间手动更改  
namespace QFramework.Example  
{  
  public partial class Player 
  {  
    public Transform Weapon;  
    public Transform GroundCheck;  
  }
}
```

这次多了一个 GroundCheck。

而 Player 代码则未发生任何变化。

所以每次生成代码，Player.cs 只会生成一次，Player.Designer.cs 每次都重新生成，所以大家放心在 Player.cs 里写代码。