我正在学习Game Maker中的3D视图,但遇到了一个大问题。 我一直使用2D精灵作为玩家对象,但我需要帮助尝试使精灵始终面向摄像机。

obj_3d://绘制事件
var matrix = matrix_build(x, y, 1, 0, 0, 0, 1, 1, 1);
matrix_set(matrix_world, matrix);
draw_set_alpha(0.5);
draw_set_colour(c_black);
draw_circle(0, 0, sprite_width * 0.2, false);
draw_set_colour(c_white);
draw_set_alpha(1);
matrix = matrix_build(x, y, z, 90, 0, 0, 1, 1, 1);
matrix_set(matrix_world, matrix);
draw_sprite_ext(sprite_index, image_index, 0, 0, image_xscale, image_yscale, 0, image_blend, image_alpha);
matrix_set(matrix_world, matrix_build_identity());

obj_camera://创建事件
cam = camera_create_view(0, 0, res_w, res_h);
fov = -70;
zNear = 3;
zFar = 3000;
view_enabled = true;
view_visible[0] = true;
view_set_camera(0, cam);
proj_mat = matrix_build_projection_perspective_fov(fov, res_w/res_h, zNear, zFar);
camera_set_proj_mat(cam, proj_mat);
xFrom = x;
yFrom = y;
zFrom = 100;
xTo = 0;
yTo = 0;
zTo = 0;
gpu_set_ztestenable(true);
gpu_set_alphatestenable(true);
camera_dir = point_direction(xFrom, yFrom, xTo, yTo //预绘制事件
view_mat = matrix_build_lookat(xFrom, yFrom, zFrom, xTo, yTo, zTo, 0, 0, 1);
camera_set_view_mat(cam, view_mat) //结束步骤事件
xTo = obj_player_placeholder.x;
yTo = obj_player_placeholder.y;