の左上の位置検索:オブジェクトの位置を取得するにはキャンバス
Vector3 mainCanvasPosition = mainCanvas.GetComponent<RectTransform>().position;
をしかし、それは、オブジェクトの中央の位置を返します。
の左上の位置検索:オブジェクトの位置を取得するにはキャンバス
Vector3 mainCanvasPosition = mainCanvas.GetComponent<RectTransform>().position;
をしかし、それは、オブジェクトの中央の位置を返します。
main.canvas.GetComponent()。rect.xMinは、ワールド空間ではなく、キャンバス空間でキャンバスの最小位置を指定します。 xMinをキャンバスのx位置に追加すると、ワールド空間内のキャンバスの最小x位置が取得されます。そしてyについても同じです。
So;
float minX = mainCanvas.GetComponent<RectTransform>().position.x + mainCanvas.GetComponent<RectTransform>().rect.xMin;
float maxY = mainCanvas.GetComponent<RectTransform>().position.y + mainCanvas.GetComponent<RectTransform>().rect.yMax;
float z = mainCanvas.GetComponent<RectTransform>().position.z;
Vector3 topLeft = new Vector3(minX, maxY, z);
あなたのキャンバスの左上を与える
編集:あなたはユニティの参照を見ればhttps://docs.unity3d.com/ScriptReference/RectTransform-rect.html
、あなたはRectTransform.rectがないワールド空間では、ローカル空間であることを確認する必要があり
私はインターネットに問題があり、返信できませんでした。私の解決策としては、TransformPointを使用してローカル空間をワールド空間に変換するので、それは問題ではありません。実際に、私はシーンビューを通して私のことをテストしていたので、私はそれに気付かなかった。 – Programmer
画面の左上の位置、またはキャンバスだけを意味しますか? – Programmer
@Programmerちょうどキャンバス(緑のパネルを保持) – David