C#遇到意外的符号问题,需要一双新鲜的眼睛

时间:2019-04-05 14:12:33

标签: c# unity3d

我在此行遇到了意外的符号问题

Math.ClosestPointsOnTwoLines(
    Vector3 close1, 
    Vector3 close2, 
    Vector3 raypair[0].origin, 
    Vector3 raypair[0].direction, 
    Vector3 raypair[1].origin, 
    Vector3 raypair[1].direction
); 

  

意外符号close1

,需要一双新鲜的眼睛才能发现哪里出了问题。我检查了错别字,冒号和方括号。似乎没什么问题。

public class objectCoordinates : MonoBehaviour
{
    Camera cam;
    private Ray[] raypair;
    private int cnt = 0;
    private Vector3 close1;
    private Vector3 close2;

    void Start()
    {
        cam = GetComponent<Camera>();
    }

    void Update()
    {
        raypair[cnt] = Camera.main.ScreenPointToRay(Input.mousePosition);
        cnt++;

        if (cnt == 3)
            Math.ClosestPointsOnTwoLines(
                Vector3 close1, 
                Vector3 close2, 
                Vector3 raypair[0].origin, 
                Vector3 raypair[0].direction, 
                Vector3 raypair[1].origin, 
                Vector3 raypair[1].direction
            );
    }
}

2 个答案:

答案 0 :(得分:1)

当您调用带有参数的方法时,您不会在那里输入类型名称

请参阅Passing Parameters (C# Programming Guide)

只需从该行中删除所有Vector3并仅使用变量名调用该方法:

Math.ClosestPointsOnTwoLines(close1, close2, raypair[0].origin, raypair[0].direction, raypair[1].origin, raypair[1].direction);

答案 1 :(得分:0)

传递参数时,您不需要类型名称。那就是我删除的(Vector3)。

Math.ClosestPointsOnTwoLines(close1, close2, raypair[0].origin, raypair[0].direction, 
raypair[1].origin, raypair[1].direction);
}