﻿# 03. 类型选择

之前我们用 Bind 绑定的 GameObject 都是 Transform 类型的，这次我们尝试绑定一下其他类型。

我们给 Weapon GameObject 挂上一个 Sprite Renderer 如下所示:

![Image.png](https://file.liangxiegame.com/913a4dcb-7e35-433c-a50a-454614ddf89d.png)

然后，我们点击 Bind 的类型，显示如下：

![Image.png](https://file.liangxiegame.com/9ff5d52d-61bb-43b7-b4f0-5e9c118329e1.png)

也就是说 Bind 可以选择挂在此 GameObject 上的组件。

我们选择 Sprite Render 类型，如下:

![Image.png](https://file.liangxiegame.com/720ec620-1ca4-42b7-afa8-ec94ee846d06.png)

然后点击生成代码，结果如下:

![Image.png](https://file.liangxiegame.com/dd6a1012-6721-4c71-9291-de008a5b8614.png)

Player 引用的  Weapon 变成了 Sprite Renderer 类型。

Player.Designer.cs 的代码变成了如下:

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

Weapon 从原来的 Transform 类型变成了 SpriteRenderer 类型。

这样我们在 Player.cs 就可以拿到 SpriteRenderer 类型的 Weapon 了，如下图所示：

![Image.png](https://file.liangxiegame.com/534d8275-5d63-4307-89a8-378722f0bffc.png)