for (int i = 0; i <= shotsNumberInBarrage; i++)
{
shellSpawnPosition = new Vector3(targetPosition.x + Random.Range(-dX, dX), targetPosition.y+5f,
targetPosition.z + Random.Range(-dY, dY));
GameObject shell1 = Instantiate(shell, shellSpawnPosition,Quaternion.identity);
yield return new WaitForSeconds(timeBetweenShells);
}
Вот при такой реализации координаты получаются не рандомные. Random.Range как будто бы не пересчитывается каждый цикл. почему ?
А ты попробуй выводить позицию через debug.log и будешь точно знать какая позиция и меняется ли она
выводил. первый рандомно - остальные в одну точку. почему ? вывел Random.Range(-dX, dX) выдает одно и то же значение в цикле (не ноль)
Dx, dy значение стоят какие ?
не ноль. оно первый раз отрабатывает корректно, потом одинаково. рандом как-то хитро устроен чтоли ?
Впиши для интереса -10 и 10 , и выведи значение … по идей должно норм работать
Random.Range(-10f, 10f) выходит одно и то же значение... занятный глюк. а как это иначе записать вообще говоря чтоб обойти проблему ?
https://forum.unity.com/threads/random-range-not-working.1013389/
Random.seed = System.DateTime.Now.Millisecond; добавить в цикл помогло... мда...
Обсуждают сегодня