代码错误 "Argument 1: cannot convert from 'UnityEngine.Transform' to 'UnityEngine.Quaternion'"

Error in code saying "Argument 1: cannot convert from 'UnityEngine.Transform' to 'UnityEngine.Quaternion'"

我正在学习 Unity 中类似“黑暗之魂”游戏的教程,但遇到错误:

Assets\PlayerLocomotion.cs(76,58): error CS1503: Argument 1: cannot convert from 'UnityEngine.Transform' to 'UnityEngine.Quaternion'.

这是我的代码:

private void HandleRotation(float delta)
{
    Vector3 targetDir = Vector3.zero;
    float moveOverride = inputHandler.moveAmount;

    targetDir = cameraObject.forward * inputHandler.vertical;
    targetDir += cameraObject.right * inputHandler.horizontal;

    targetDir.Normalize();
    targetDir.y = 0;

    if (targetDir == Vector3.zero)
        targetDir = myTransform.forward;

    float rs = rotationSpeed;

    Quaternion tr = Quaternion.LookRotation(targetDir);
    Quaternion targetRotation = Quaternion.Slerp(myTransform, tr, rs * delta);

    myTransform.rotation = targetRotation;
}

那是因为 Quaternion.Slerp takes in a Quaternion 作为重载(在第一个参数中),但您正在传递一个转换。我猜您想使用 myTransform.rotation 而不是 myTransform 本身。