есть одна из функций структуры в луа:
function vec3:pop()
return self.x, self.y, self.z
end
есть функция привязанная к движку:
some_engine_command( my_vec_0:pop(), my_vec_1:pop() )
в движок должно прийти 6 параметров, а прииходит лишь 4:
my_vec_0.x, my_vec_1.x, my_vec_1.y, my_vec_1.z
если поменять местами вектора то доходит одна компонента второго и 3 первого вектора
такие дела - че за баг не пойму.
подскажите как боролись если возникало.
...и как сами передаете вектора в двиг?
луабинд не предлагать :D
mocia
> some_engine_command
Как зарегестрировал в студию.
X512
lua_register( luaVM, "some_engine_command ", lua_some_engine_command );
Это не баг а фича. http://www.lua.org/pil/5.1.html
Попробуй так
function unpacks( ... ) local values = {} -- Collect values from all tables for i = 1, select( '#', ... ) do for _, value in ipairs( select( i, ... ) ) do values[ #values + 1] = value end end return unpack( values ) end some_engine_command( unpacks({my_vec_0:pop()}, {my_vec_1:pop()}) )
mocia
> some_engine_command( my_vec_0:pop(), my_vec_1:pop() )
странная конструкция... а почему нельзя some_engine_command( my_vec_0, my_vec_1 ) и в фукции some_engine_command использовать эти параметры как вектора?
лучше подумай над организацией кода, чем вставлять костыли, аля пост3.
Тема в архиве.