Для умников
native PanCameraTo takes real x, real y returns nothing
native SetCameraPosition takes real x, real y returns nothing
Сверил координаты CamEye и CamTarget после применения обоих функций. Данные идентичны.
sample
call SetCameraPosition(0,0)
call TriggerSleepAction(0.1)
call DisplayTextToPlayer(Player(0),0,0,R2S(GetCameraEyePositionX())+", "+R2S(GetCameraEyePositionY())+", "+R2S(GetCameraEyePositionZ()))

call TriggerSleepAction(4)

call PanCameraTo(0,0)
call TriggerSleepAction(0.1)
call DisplayTextToPlayer(Player(0),0,0,R2S(GetCameraEyePositionX())+", "+R2S(GetCameraEyePositionY())+", "+R2S(GetCameraEyePositionZ()))
Вопрос: близзы насоздавали лишнего или я чего-то не понимаю? Чего?

Принятый ответ

Эти функции совершенно ничем не отличаются. Мировые координаты, установленные обеими функциями полностью совпадают. К тому же под управлением любой из этих функций камера не может покидать границ игровой камеры.
Так же пока камера не залочена на юните специальной командой, ей нельзя изменять z-смещение быстрее чем за 0.1 секунды (иначе камера будет сильно дергаться). Так же нельзя процедурно вносить CameraMap-поправку при свободной камере(почему-то вносится только половина значения поправки, если поправку удвоить - 2/3, утроить - 3/4 и т.д.).
0
20
6 лет назад
0
обе нативки с координатами работают?
0
21
6 лет назад
0
А еще есть:
native CameraQuickPosition takes real x, real y returns nothing
Работает так же как и предыдущие.
0
20
6 лет назад
0
чисто мои догадки и немного логики
native PanCameraTo - обычная работа с координатами
native SetCameraPosition - с указанием позиции (юнита\дестракшена)?
native CameraQuickPosition - нативка, которая быстрее двух выше перечисленных?
но это первое, что приходит на ум. мимолетно
а потом видишь продолжение
takes real x, real y returns nothing
и да, задаешься вопросом, зачем три велосипеда
2
21
6 лет назад
2
Для умников
native PanCameraTo takes real x, real y returns nothing
native SetCameraPosition takes real x, real y returns nothing

0
20
6 лет назад
0
выдирать из контекста каждый болван может
за сим откланяюсь
0
21
6 лет назад
Отредактирован Raised
0
Эти функции совершенно ничем не отличаются. Мировые координаты, установленные обеими функциями полностью совпадают. К тому же под управлением любой из этих функций камера не может покидать границ игровой камеры.
Так же пока камера не залочена на юните специальной командой, ей нельзя изменять z-смещение быстрее чем за 0.1 секунды (иначе камера будет сильно дергаться). Так же нельзя процедурно вносить CameraMap-поправку при свободной камере(почему-то вносится только половина значения поправки, если поправку удвоить - 2/3, утроить - 3/4 и т.д.).
Принятый ответ
0
21
6 лет назад
0

Ап! Сообразил в чем дело.
    function PanCameraXYZ takes real x, real y, real z, real time, boolean inverted returns nothing
        if time < 0.001 then
            set time = 0.001
        endif
        
        set pCzOffsetFix = GetLocZ(GetCameraTargetPositionX(),GetCameraTargetPositionY())
        
        if inverted == true then
            set x = x+(GetCameraTargetPositionX()-GetCameraEyePositionX())
            set y = y+(GetCameraTargetPositionY()-GetCameraEyePositionY())
            set z = z+(GetCameraTargetPositionZ()-GetCameraEyePositionZ())
            
            call PanCameraToTimed(x,y,time)
            call SetCameraField(CAMERA_FIELD_ZOFFSET,z+GetCameraField(CAMERA_FIELD_ZOFFSET)+GetLocZ(GetCameraTargetPositionX(),GetCameraTargetPositionY())-GetCameraTargetPositionZ()-pCzOffsetFix,time)
        else
            call PanCameraToTimed(x,y,time)
            call SetCameraField(CAMERA_FIELD_ZOFFSET,z+GetCameraField(CAMERA_FIELD_ZOFFSET)+GetLocZ(GetCameraTargetPositionX(),GetCameraTargetPositionY())-GetCameraTargetPositionZ()-pCzOffsetFix,time)
        endif
    endfunction 
Чтобы оставить комментарий, пожалуйста, войдите на сайт.