C# 方法“Normalize”没有“重载”接受1个参数错误代码:CS1501
我目前正在制作一个2D台球的克隆;一般来说,我对编码是相当陌生的,但是我已经使用过规范化方法好几次了,从来没有遇到过这个问题。我已经删除了System.Numerics,因为它导致“Vector2”出现问题 可变射程是一个未指定值的浮点C# 方法“Normalize”没有“重载”接受1个参数错误代码:CS1501,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我目前正在制作一个2D台球的克隆;一般来说,我对编码是相当陌生的,但是我已经使用过规范化方法好几次了,从来没有遇到过这个问题。我已经删除了System.Numerics,因为它导致“Vector2”出现问题 可变射程是一个未指定值的浮点 Vector2 dimxy = mousePointA.transform.position - transform.position; float difference = dimxy.magnitude; mousePointB.tra
Vector2 dimxy = mousePointA.transform.position - transform.position;
float difference = dimxy.magnitude;
mousePointB.transform.position = (Vector2)transform.position + ((dimxy / difference) * currDistance * -1);
mousePointB.transform.position = new UnityEngine.Vector2(mousePointB.transform.position.x, mousePointB.transform.position.y);
shootDirection = Vector2.Normalize(mousePointA.transform.position - transform.position);
Normalize接受Vector3或Vector2,但返回一个Vector3,因此您将返回值强制转换为Vector2,您必须写入:positionB和positionA是Vector3或Vector2
shootDirection = (Vector2)Vector3.Normalize(positionB - positionA);
z=0时,将矢量2转换为矢量3是隐式的
但是Vector3到Vector2不是隐式的,所以这是您必须指定强制转换的原因,在这种情况下,您会丢失z值