Как я могу использовать переменные в (.) Заявлениях в Unity3d - PullRequest
0 голосов
/ 04 марта 2019

, поэтому я пытаюсь создать код, который меняет цвет моего персонажа / игрового объекта (простой куб)

Я делаю это с помощью кнопки, и нажатие на нее установит переменную с именем PlayerColor вБелое, Красное, Бью в основном все, что я пишу в инспекторе. Я пишу все, что хочу, и помещаю это в переменную PlayerColor

, а здесь, в коде, я пытаюсь изменить цвет моего игрового объекта в соответствии с тем, что имеет переменная, но, очевидно, это не позволяетя так вот почему я здесь: D. Вот моя попытка

Поиск в Google не очень помог, так как я не мог найти ответы, потому что описать эту позицию в поиске Google очень сложно, и в результате он показывает несвязанные вещи (каккогда я искал "Как использовать переменные в (.) операторах в c #")

1 Ответ

0 голосов
/ 04 марта 2019

Вам нужно использовать Отражение .Поместите 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");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...