Как изменить цвет для других игроков, которые присоединились? - PullRequest
1 голос
/ 04 апреля 2019

У меня есть модель танка.Я раскрасил эту модель в Unity материалами.Итак, как изменить цвет материалов, если это, например, модель второго игрока?

1 Ответ

2 голосов
/ 04 апреля 2019

Существует несколько способов сделать это в зависимости от вашей ситуации.

1. Если вы разрешаете играть максимум 2 или 4 игрокам, вы можете создать разные танковые префабы (с разными цветными материалами) для каждого игрока, а затем создать соответствующий танк.для каждого игрока, когда они присоединяются к игре.Это самое простое решение, и оно будет хорошим способом решения этой проблемы.

2. Если вы хотите изменить цвет резервуаров, не создавая больше материалов или сборных конструкций, тогда выможет использовать блоки свойств материала, чтобы изменить цвет каждого материала на новых танках игроков во время выполнения.Проверьте этот вопрос и эту статью для получения дополнительной информации.Использование решения Material Property Block из этой статьи требует создания копии встроенного шейдера и ее редактирования, но вам нужно добавить только одну строку кода.Если вы раньше не работали с шейдерами, они могут выглядеть пугающими, но это не так уж и плохо.

Поскольку вы предоставляете цвета во время выполнения, вы можете использовать глобальные поля Color в вашем скрипте для каждого танка игрокаматериалы, или вы можете сгенерировать цветовой тон, используя индекс игрока (рекомендуется - пример ниже).Использование индекса игрока (playerIndex = 1, 2 ... maxPlayers) позволит вам иметь любое количество различных типов танков, и вы можете использовать следующий код, чтобы получить цвет (который вы затем предоставитеСвойство материала Свойство цвета блока).

var c = Color.HSVToRGB(startHue + (playerIndex / (float)maxPlayers), 1, 1);

Для получения дополнительной информации о создании таких цветов, см. Документацию здесь .Вы можете выбрать startHue (это будет цвет для игрока 1), используя значение оттенка из палитры цветов HSL здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...