所以我正在尝试编写代码来更改角色/游戏对象(一个简单的立方体)的颜色
我这样做是通过单击一个按钮并单击它来设置一个名为PlayerColor的变量 基本上,无论我在检查员中写什么,白,红,布。 I write whatever i want there and it puts it into the variable PlayerColor
在这里,我在代码中尝试根据变量具有的颜色来更改游戏对象的颜色,但显然它不允许我这样做,所以这就是我在这里的原因:D。 Here is my try
在Google中进行搜索并没有真正的帮助,因为我无法真正找到任何答案,因为在Google搜索中对这种描述进行描述非常困难,并且结果显示不相关的内容(例如当我搜索“如何在(。)中使用变量时”。 c#中的语句”)
答案 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");
}
}