0

このメソッドを使用しようとしていますが、次の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);
}

何か案が?

4

2 に答える 2

4

Physics.Raycast(ray、hit)で「ヒット」する前にoutキーワードが必要だと思います。

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);
}
于 2009-11-01T00:01:34.403 に答える
-1

C#では、関数にデータを割り当てるために、変数がヒットする前にプリカーサー出力パラメーターを使用する必要があります。

于 2012-12-06T05:59:24.800 に答える