代码之家  ›  专栏  ›  技术社区  ›  sharvey

使用光线投射时出错

  •  1
  • sharvey  · 技术社区  · 16 年前

    我正在尝试使用 Physics.Raycast 方法,但我得到的错误是:

    “UnityEngine.Physics.Raycast(UnityEngine.Vector3,UnityEngine.Vector3,Float,int)”的最佳重载方法匹配具有一些无效参数。

    这很奇怪,因为ITellisense和文档都告诉我这是允许的:

    RaycastHit hit = new RaycastHit();
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, hit)) {
        print(hit.point.ToString());
        selection.transform.Translate(hit.point - selection.transform.position);
    }
    

    知道吗?

    2 回复  |  直到 8 年前
        1
  •  4
  •   R Hyde    16 年前

    我想你需要在物理中“hit”之前输入out关键字。raycast(ray,hit)。

    RaycastHit hit = new RaycastHit();
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, out hit)) {
        print(hit.point.ToString());
        selection.transform.Translate(hit.point - selection.transform.position);
    }
    
        2
  •  -1
  •   Ali    13 年前

    在c中,我们必须在变量进入之前使用一个前体out参数 命令获取函数以向其分配数据。