我似乎在 Unity 中收到关于第 9 行末尾的错误

本文关键字:错误 关于第 Unity | 更新日期: 2023-09-27 18:27:22

void FixedUpdate()
{
    ///rotate character model if stick is tilted right or left, but only if character is moving in that direction.
    if (IsInLocomotion () && ((direction >= 0 && horizontal >= 0) || (direction < 0 && horizontal < 0))) 
    {
        Vector3 rotationAmount = Vector3.Lerp (Vector3.zero, new Vector3 (0f, rotationDegreePerSecond* (horizontal < 0f ? -1f : 1f), 0f), Mathf.Abs);
        Quaternion deltaRotation = Quaternion.Euler (rotationAmount * Time.deltaTime);
        this.transform.rotation = (this.transform.rotation * deltaRotation);
    }
}

代码的这一特定部分给了我一个错误。如果有人碰巧知道它到底出了什么问题,我将不胜感激。

我不断收到错误

资产/字符控制器逻辑.cs(100,58(:错误 CS1502:最佳 的重载方法匹配 'UnityEngine.Vector3.Lerp(UnityEngine.Vector3, UnityEngine.Vector3, float(' 有一些无效的参数

资产/字符控制器逻辑.cs(100,58(:错误 CS1503:参数 #3' cannot convert方法组"表达式以键入"float">

我似乎在 Unity 中收到关于第 9 行末尾的错误

您正在将Mathf.Abs(方法(传递给期望将float作为其第三个参数的方法。也许您应该向Mathf.Abs提供一个值(其结果将是 float 类型(?例如:

Vector3.Lerp (Vector3.zero, new Vector3 (0f, rotationDegreePerSecond * 
    (horizontal < 0f ? -1f : 1f), 0f), Mathf.Abs(42.0));
                                                ^^^^^^