📜  Unity 2D 如何制作自上而下的外观控制器 - C# (1)

📅  最后修改于: 2023-12-03 15:05:44.344000             🧑  作者: Mango

Unity 2D 如何制作自上而下的外观控制器 - C#

在制作2D游戏时,外观控制器可以帮助玩家控制角色的外观,例如改变角色的衣服、头发、皮肤和眼睛等。Unity 2D提供了各种方法来制作外观控制器,本文将介绍一种使用C#脚本制作外观控制器的方法。

步骤1 - 准备工作

在Unity中创建一个空对象并重命名为“Player”。在Player对象下面创建一个Sprite Renderer组件。将Sprite Renderer的Sprite属性设置为你角色的精灵。确保玩家的精灵是可以改变颜色的(例如,如果使用的是PNG文件,则需要在Import Settings下选中Read/Write Enabled)。

步骤2 - 创建脚本

在Assets窗口中右键单击并选择Create> C# Script。将新脚本命名为“AppearanceController”。

双击脚本以在Visual Studio或MonoDevelop中打开它。在脚本的顶部添加以下代码行:

using UnityEngine;

这将允许我们使用Unity中的所有常用类(例如Color和SpriteRenderer)。接下来,在脚本中创建公共枚举类型,它将用于表示外观的不同部分。在脚本中添加以下代码行:

public enum AppearanceType
{
    Hair,
    Skin,
    Shirt,
    Pants
}

在这里,我们创建了四个枚举类型,代表玩家外观的不同部分:头发、皮肤、上衣、裤子。

接下来,我们需要在我们的AppearanceController中添加公共变量,它将存储目前玩家的外貌。添加以下代码行:

public AppearanceType currentAppearance;

在这里,我们创建了一个名为currentAppearance的公共变量,它是我们定义的AppearanceType枚举类型的一个实例。

接下来,我们将添加一个公共方法,它将接受一个Color类对象和一个AppearanceType枚举类型作为输入,并使用该颜色更改玩家精灵的“外观”。在脚本中添加以下代码行:

public void SetAppearanceColor(Color color, AppearanceType appearanceType)
{
    switch(appearanceType)
    {
        case AppearanceType.Hair:
            playerSpriteRenderer.material.SetColor("_HairColor", color);
            break;
        case AppearanceType.Skin:
            playerSpriteRenderer.material.SetColor("_SkinColor", color);
            break;
        case AppearanceType.Shirt:
            playerSpriteRenderer.material.SetColor("_ShirtColor", color);
            break;
        case AppearanceType.Pants:
            playerSpriteRenderer.material.SetColor("_PantsColor", color);
            break;
    }
}

在这里,我们使用switch语句检查传递给我们的外观类型,并根据类型更改外观的颜色。注意,我们使用的是.material.SetColor而不是.spriteRenderer.color。这是因为我们使用的精灵有一个自定义材质,使我们可以操作它的颜色。确保你的精灵也有自定义材质。

最后,在Start方法中添加以下代码行:

void Start()
{
    playerSpriteRenderer = GetComponent<SpriteRenderer>();
}

这将获取我们的SpriteRenderer组件并将其存储在名为playerSpriteRenderer的私有变量中,以便我们可以在SetAppearanceColor方法中使用它。

步骤3 - 使用外观控制器

现在,我们已经创建了一个外观控制器,我们可以使用它来更改玩家的外貌。创建一个新的空对象并重命名为“AppearanceController”。将AppearanceController移动到玩家对象的位置,使其成为玩家的子对象。将AppearanceController上添加我们刚才创建的AppearanceController脚本。

我们可以在脚本的Inspector窗口中看到一个名为currentAppearance的变量。在这里,我们可以选择要更改的外观部位。选择一个部位(例如“Hair”)并在Inspector窗口中单击拾色器选择一个颜色。完成后,按Play按钮并查看您的Game视图,将看到玩家的外观已更改。

结论

在本文中,我们了解了如何使用C#脚本制作2D游戏中的自上而下的外观控制器。这是一种灵活且强大的方法,可以使玩家可以轻松更改角色的外观。