JET_LI
offline
Опыт:
1,724Активность: |
Привязка камеры к рельефу
Я абсолютно справился с этой задачей! (считал я пока не встретился с одной проблемой)
В общем я получал Z юнита и ставил её в CAMERA_FIELD_ZOFFSET
С Angle Of Attack я тоже справился высчитал всё! в общем всё красиво работает, но есть одно но: Когда я получаю z юнита - GetLocationZ(u) и устанавливаю значение в ZOffset камеры... она ведёт себя странно, слишком высоко поднимается, но координаты неверны! Почему так??? ZOffset почему так реагирует неправильно? Это обычно происходи когда z > 400 примерно.... В чём всё-таки дело? Z юнита уверен что правильно получен и корректно! В редакторе тоже самое выдаёт.... Ошибки в скрипте нет, я уверен! |
15.01.2010, 19:50 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
мм никто неужели не знает????? -((( |
16.01.2010, 14:56 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Таурен
The Ps*c*oto*ia ORPG
offline
Опыт:
2,078Активность: |
JET_LI, мб высота юнита дает сбой? Глянь в РО. поставь минимальную и макс высоту юнита одинаковой. |
16.01.2010, 14:58 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
Говорю же в редакторе когда навожу просто на любую точку выдаёт тоже самое значение высоты...
может быть единицы измерения разные???? |
16.01.2010, 15:04 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Таурен
The Ps*c*oto*ia ORPG
offline
Опыт:
2,078Активность: |
Типы данных. Высота юнита указывается в real. А у тебя по идее в int. Мб это? |
16.01.2010, 15:07 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
Нуууу!
GetLocationZ и так real! у меня всё в real, я говорю о том, может быть камера по другому (с другого места) считает Z...
я простон незнаю чё думать уже!! |
16.01.2010, 15:08 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
может кто-то сталкивался с подобной проблемой???
вообще я делаю перемещения юнита с помощью стрелочек...
а что камера не взрезалась, приходиться её постоянно к рельефу прижимать... она не врезается, но слишком высоко получается стоит над юнитом |
16.01.2010, 19:11 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Т_Т об операции вычитание мы не слышали? |
16.01.2010, 19:16 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
дело в том, это присходит когда юнит поднимается свыше 500 и здесь начинается камера становиться выше юнита-((
там чем больше юнит поднялся тем больше разрыв идёт... так что вычитание не вкатывает-( здесь нужна какая-нибудь зависимость или что-то вроде неё |
16.01.2010, 19:41 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
там нет никакой зависимости, все элементарно.. выложы полный код системы, разберемся |
16.01.2010, 20:36 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
ок
JET_LI добавил:
JET_LI добавил:
кстати эта функция setCamera вызывается каждую 0.01 сек. JET_LI добавил:
систему перемещения юнита надо???=)) setCamera как вы поняли обновляет все св-ва камеры, чтобы она не врезалась в рельеф |
17.01.2010, 13:27 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
real GetTerrainZ(location loc){
return GetLocationZ(loc)-256 // вычитаю cliff level 2 } что это такое??? |
17.01.2010, 13:30 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
не обращай внимание=))))
в общем GetLocationZ эта функция берёт с 0 cliff level, то есть получается когда cliff level = 2 то Z будет 256, так на каждый cliff выделяется 128 тут всё правильно, 256 вычитаю чтобы была не абсолютная Z а относительно cliff level
JET_LI добавил:
угол атаки тоже работает норм, через арктангенс получаю угол, если юнит бежит в горку то 0+арктан, если вниз = 360-арктан JET_LI добавил:
? JET_LI добавил:
если тебя смущает синтактис, то я автоматизмом написал на C=) но у меня редактор с поддержкой cJass, так что всё норм=)
JET_LI добавил:
JET_LI добавил: какая разница cJass или vJass все равно компилятся все они в Jass =) |
17.01.2010, 14:40 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
надо убрать все эти SetCameraFieldForPlayer и оставть только те которые динамически меняются. + я не совсем понял причем тут клифы. |
17.01.2010, 15:14 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JET_LI
offline
Опыт:
1,724Активность: |
ну допустим я их уберу! и чё измениться????
а на счёт -256 не обращайте внимание!!! это правильно я уверен! дело в том что getlocationz получает Z с отчётом от клиф = 0
а если клиф изначально = 2 то она будет получать не относительно карты, а считатывать полностью Z от клиф = 0 до точки в параметрах этой функции...
JET_LI добавил: ну так что+) в чём всё-таки дело? |
17.01.2010, 17:25 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|