我将此代码用于我的 Entity 类:
void Entity::Face(FXMVECTOR target)
{
XMVECTOR up = XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f);
up = XMVector3Transform(up, Rotation);
Rotation = XMMatrixLookAtLH(Translation, target, up); //Rotation is a XMMATRIX, Translation is a XMVECTOR
}
并试图让它面对另一个实体。基本上我正在这样做:
Entity a = //....
Entity b = //.......
a.Face(b.Translation);
发生的事情是以下三件事之一: 1.函数崩溃,因为一个断言 2.Entity 'a' 被放错了一个奇怪的位置 3.Entity 'a'消失了
这个该死的函数 XMMatrixLookAtLH 一直是我项目中问题的根源,无论我在哪里使用它,我都必须花费数小时才能让它正常工作。
如果我使用 XMMatrixRotationRollPitchYawFromVector 创建旋转矩阵,它可以完美地工作,但是我需要让它直接面对给出的点,我不知道如何让它工作。请有人给我一个建议。