-
Автор темы
- #1
Здравствуйте, работаю над игрой pixel gun 3d, дошел до написания esp(впервые работаю с игрой на юнити), я делаю экстернал и я хотел бы узнать как сделать это правильно(пример интернал чита):
я просто не совсем понимаю как написать аналог Functions::CameraWorldToScreen(я так понимаю что первый параметр это viewmatrix, второй это координаты противника, а третий это преобразованные значения)
Код:
if (player == nullptr || Hooks::our_player == nullptr) return;
Unity::CTransform* transform = (Unity::CTransform*)Hooks::get_player_transform(player);
Unity::Vector3 position;
const int height = window_size_esp.bottom - window_size_esp.top;
if (transform == nullptr)
{
// Logger::log_warn("Unity::CTransform* transform ptr was nullptr during player_list loop!");
return;
}
Functions::TransformGetPosition(transform, &position);
Unity::Vector3 top_world = {
position.x,
position.y + 2,
position.z
};
Unity::Vector3 screen_pos;
Unity::Vector3 screen_top;
if (Hooks::main_camera == nullptr)
{
return;
}
Functions::CameraWorldToScreen(Hooks::main_camera, &position, &screen_pos);
Functions::CameraWorldToScreen(Hooks::main_camera, &top_world, &screen_top);
if (screen_pos.z < 0) return;
if (!is_on_screen_esp(screen_pos)) return;
float scaled_dist = screen_pos.y - screen_top.y;
float width2 = scaled_dist / 2;
float height2 = scaled_dist * 1.5f / 2;
//координаты игрока для рисования esp
screen_pos = {screen_pos.x, (float)height - screen_pos.y, screen_pos.z};