Как генерировать случайное byte число в Unity?

250
16 июля 2017, 09:40

Почему обычный С# Random не работает в Unity-скрипте?
Пробую такой код для смены цветового канала по нажатию кнопки:

void Update () {
    Random rnd = new Random();
    if (Input.GetKeyUp (KeyCode.Space)) {
        byte value = rnd.Next();
    }
    Color32 color32 = new Color32(4, 128, 192, value);
    obj.GetComponent <Renderer> ().material.color = color32;
}

Также не пойму как задать интервал, в котором будет происходить генерация.

Answer 1

Для System.Random:

Метод Next() возвращает int и нужно явное приведение к типу byte:

byte value = (byte)rnd.Next();

Или, на случай нежелания использовать приведение типов, вариант с методом NextBytes:

var buffer = new byte[1];
rnd.NextBytes(buffer);
byte value = buffer[0];

Интервал можно задать с помощью перегрузки метода Next, принимающей два int числа: minValue (включительно) и maxValue (не включительно).

Вариант, который должен бы сработать для UnityEngine.Random:

byte value = (byte)Random.Range(0, 256);
READ ALSO
Столкновение с твёрдым объектом

Столкновение с твёрдым объектом

Есть у меня два объекта, у которых имеется свой Rectangle Как проверить что они столкнулись я знаю:

224
В чем суть генерации классов, которые являются копией по полям тех, что используются в сервисе WCF?

В чем суть генерации классов, которые являются копией по полям тех, что используются в сервисе WCF?

Когда я создаю ServiceReference генерируются partial классы, которые являются точной копией по полям классов, которые использует сервисЯ не нашел никакой...

220
Правильно оформить try / catch

Правильно оформить try / catch

Добрый день, недавно начал очень часто сталкиваться с конструкциями try / catch, обычно оформляю их так:

363
Ошибка при попытке удалить объект через Entiy

Ошибка при попытке удалить объект через Entiy

Не получается удалить объект с использованием EntityЕсть проект ASP

237