XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
GameUpdate [DGUI 1.00a]
Расспишите мне пожалуйста параметры этой функции, тоесть что где делается, что где настраевается и т.д. Я хочу знать как сделать такую камеру:
Поворот - 51
Угол атаки - 306
Расстояние до цели - 1024
Крен - 0
что тут нужно править:
function GameUpdate takes nothing returns nothing
    local real ang = GetUnitFacing(GameUnit)*bj_DEGTORAD
    local real tx = GetUnitX(GameUnit)
    local real ty = GetUnitY(GameUnit)
    local real tz = GetTerrainZ(tx, ty)+GetUnitDefaultFlyHeight(GameUnit)+150
    local real dex = (tx-550*Cos(ang))-GameCamera.Eye.x
    local real dey = (ty-550*Sin(ang))-GameCamera.Eye.y
    local real dez = (tz+100)-GameCamera.Eye.z
    local real X = GameCamera.Eye.x+dex*0.07
    local real Y = GameCamera.Eye.y+dey*0.07
    local real Z = GameCamera.Eye.z+dez*0.07
    set ang = GetTerrainZ(X, Y)+170
    if Z < ang then
        set Z = ang
    endif
    if not(Approximately(X, GameCamera.Eye.x, 1) and Approximately(Y, GameCamera.Eye.y, 1) and Approximately(Z, GameCamera.Eye.z, 1) and Approximately(tx, GameCamera.At.x, 1) and Approximately(ty, GameCamera.At.y, 1) and Approximately(tz, GameCamera.At.z, 1)) then
        call GameCamera.SetEyeAndAt(X, Y, Z, tx, ty, tz)
    endif
endfunction
Старый 12.02.2011, 14:27
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
local real ang = GetUnitFacing(GameUnit)*bj_DEGTORAD
Взгляд камеры, то-есть куда камера смотрит постоянно. При GetUnitFacing(GameUnit)*bj_DEGTORAD - она будет постоянно совпадать со взглядом юнита
 local real tx = GetUnitX(GameUnit)
Насколько я понял, отвечает за перемещение камеры вместе с юнитом по его координате Х
local real ty = GetUnitY(GameUnit)
Тоже самое, то по координате Y
local real tz = GetTerrainZ(tx, ty)+GetUnitDefaultFlyHeight(GameUnit)+150
Отвечает за изменение высоты камеры, которое вычисляется через высоту рельефа + высота полета юнита + константа. Лучше не убирать, иначе камера будет работать не корректно
local real dex = (tx-550*Cos(ang))-GameCamera.Eye.x
local real dey = (ty-550*Sin(ang))-GameCamera.Eye.y
local real dez = (tz+100)-GameCamera.Eye.z
Не совсем понял зачем они. Скорее всего нужны для соблюдения постоянного расстояния по всем трем координатам относительно юнита. Применение константы вызывает постоянное отдаление от объекта
 local real X = GameCamera.Eye.x+dex*0.07
 local real Y = GameCamera.Eye.y+dey*0.07
 local real Z = GameCamera.Eye.z+dez*0.07
Отвечаение за правильное перемещение камеры
 set ang = GetTerrainZ(X, Y)+170
Высота камеры, может принимать как константы, так и настраиваться относительно рельефа, чтобы в случае чего не проваливаться под него
Остальной код отвечает за изменение вида камеры, при изменение вышеуказанного
СПАСИБО КОМЬЮНИТИ ЗА ПОМОЩЬ!!!
Старый 13.02.2011, 11:31
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
StMechanus, весь этот код плавно двигает камеру игроку за спину и не дает камере провалиться. Я тебе много раз говорил, чтобы ты посмотрел триг Readme CAMERA там все подробно описано, как перемещать и крутить камеру.
Старый 13.02.2011, 11:52
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Я смотрел =). Просто я хотел понять, что происходит в этой функции))), тоесть за что каждая строчка отвечает
Старый 13.02.2011, 11:58
Hanabishi
COOL STATUS
offline
Опыт: отключен
StMechanus, если хочешь узнать что делает строчка, закоменти её и посмотри что получится
Старый 13.02.2011, 13:04
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Hanabishi, твой метод для нубов. Лучше посмотреть код. Иначе ты будешь делать все не понимая зачем это нужно.
Старый 13.02.2011, 13:47
Hanabishi
COOL STATUS
offline
Опыт: отключен
King_Ksel, а автор именно о таком методе и просит, т.к. не понимает код
Старый 13.02.2011, 13:49
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
StMechanus, я тебе написал
Старый 13.02.2011, 13:53
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
King_Ksel:
твой метод для нубов
слишком толсто, почти все сложные системы так и исследуются
Старый 13.02.2011, 14:16
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:29.