如何在Unity3d

时间:2019-03-04 15:13:58

标签: c# unity3d

所以我正在尝试编写代码来更改角色/游戏对象(一个简单的立方体)的颜色

我这样做是通过单击一个按钮并单击它来设置一个名为PlayerColor的变量 基本上,无论我在检查员中写什么,白,红,布。 I write whatever i want there and it puts it into the variable PlayerColor

在这里,我在代码中尝试根据变量具有的颜色来更改游戏对象的颜色,但显然它不允许我这样做,所以这就是我在这里的原因:D。 Here is my try

在Google中进行搜索并没有真正的帮助,因为我无法真正找到任何答案,因为在Google搜索中对这种描述进行描述非常困难,并且结果显示不相关的内容(例如当我搜索“如何在(。)中使用变量时”。 c#中的语句”)

1 个答案:

答案 0 :(得分:0)

您需要使用 Reflection 。将using System.Reflection;放在脚本的顶部,然后:

public void ChangePlayerMaterial( string playerColor )
{
    PropertyInfo propertyInfo = typeof(Color).GetProperty( playerColor.ToLower() );
    if( propertyInfo != null )
    {
        Color color = (Color) propertyInfo.GetValue(null, null);
        PlayerMat.color = color ;
    }
    else
    {
        Debug.LogError("The color " + playerColor + " does not exist");
    }
}