ПрограммированиеФорумОбщее

Размер сцены в Unity3D

Страницы: 1 2 Следующая »
#0
0:01, 20 окт 2014

Привет!
Интересует данная тема. Погуглил почитал. Стало интересно. Мир ограничивается размером float. Под плавное перемещение в 3Д пространстве необходимо иметь хотя бы 3 числа после запятой. Получается, что мир при этом можно создать 10х10 км ?
Ну т.е. получается:
1. 123456.7 = 1000х1000 км (аццкая плавность движения - тобишь рывки)
2. 12345.67 = 100х100 км ( плавность лучше, но могут наблюдаться рыки)
3. 1234.567 = 10х10 км(хорошая плавность, но маленькое пространство)

Внимание вопросы:
1. Всё ли я правильно понял ?
2. Если я всё правильно понял, как решаются и решаются ли подобные проблемы ? (допустим мне нужна сцена 50х50 км)

Спасибо.

#1
0:15, 20 окт 2014

Gladiator
> как решаются и решаются ли подобные проблемы ?
Решаются частями.

#2
0:22, 20 окт 2014

Misanthrope
> как решаются и решаются ли подобные проблемы ?

Естественным образом: тормоза не дадут сделать слишком большой мир :D

#3
7:45, 20 окт 2014

Gladiator

Такие проблемы решаются так называемой асинхронной догрузкой мира, в рамкой юнити это LoadLevelAdditiveAsync.
А вообще, чтобы все не померло, проще делать через AssetBundle, поскольку их можно выгружать из памяти.

#4
11:15, 20 окт 2014

Fate Li
А вот, допустим, у меня что-то видно за пределами 10 км диапазона... Я должен заранее подгрузить соседние области ?

#5
11:42, 20 окт 2014

Gladiator
> Внимание вопросы:
> 1. Всё ли я правильно понял ?

Да. Ну может быть и не 10х10, но порядок чисел правильный.

> 2. Если я всё правильно понял, как решаются и решаются ли подобные проблемы ?

Разделением мира на большие квадраты. При переходе игрока из одного квадрата в другой, все объекты автоматически сдвигаются так, чтобы центр мировой системы координат находился в новом квадрате.

Ещё во всяких космических программах при перемещении между планетами и прочими телами обычно вместо того чтобы двигать камеру, двигают сами тела вокруг камеры, так чтобы она всегда находилась в центре мировой системы координат.

#6
12:22, 20 окт 2014

Gladiator
> А вот, допустим, у меня что-то видно за пределами 10 км диапазона... Я должен
> заранее подгрузить соседние области ?
Именно. Загрузку можно спокойно осуществлять в фоне. В Unity для этого есть класс WWW.

В целом 10 на 10 км, это огромнейший мир, просто представьте что вы пешком идете 10км и сколько на пути вы можете повстречать объектов).

#7
12:31, 20 окт 2014

Fate Li
> В целом 10 на 10 км, это огромнейший мир
Думаю топикастер пишет космический симулятор, а там мегапарсеки блин:)

#8
12:56, 20 окт 2014

Misanthrope
> Думаю топикастер пишет космический симулятор, а там мегапарсеки блин:)
Для космосима вряд ли кто додумался бы генерить кубы со стороной 10км, ибо пустых там будет триллионы). Оно там по другому делается).

#9
13:09, 20 окт 2014

Для космосима точность в миллиметрах не нужна ;)

#10
13:32, 20 окт 2014

а правда интересно, что за игра предполагается, если 50 км с разрешением 1 мм.

#11
13:55, 20 окт 2014

demax
> а правда интересно, что за игра предполагается, если 50 км с разрешением 1 мм.

Не принципиально. Представь, ты переехал в игре в другое поселение за 50км, а у тамошних жителей глаза в орбитах дёргаются во время анимации. На больших расстояниях от центра координат первым делом страдают анимация и физика.

#12
14:29, 20 окт 2014

alexzzzz
> Представь, ты переехал в игре в другое поселение за 50км
да я час тока ехать буду)) нужно ли это? почему не сцену новую загрузить?

#13
14:41, 20 окт 2014

Можно не 50км, а 10км, и не переехать, а перелететь на вертолёте или метле.

> почему не сцену новую загрузить?
Потому что раздражает.

#14
16:18, 20 окт 2014

Скажем так, тема космическая это да.. Пока точно сказать размер мира сложно, но он будет замкнутым и в нём будут происходить бои по определенным правилам.. Но т.к. у нас космические корабли, то двигаться они будут быстро, размер некоторых из них, тоже может быть не маленький.. Мне кажется для космического корабля пролететь 10 км, это разогреть двигатель просто )

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.