我正在使用 .GetWorldCorners
找到棕榈 TreeMap 像的右上角和左下角。但是,我返回的值与实际角不同。此外,当我移动 Image
时,角落会改变位置远离 Image
而不是与其一起移动。我已经尝试过具有相同问题的 transform.postion
。
private void OnDrawGizmos()
{
Vector3[] corners = new Vector3[4];
GetComponent<RectTransform>().GetWorldCorners(corners);
var bottomLeft = corners[0];
var topRight = corners[2];
Gizmos.color = new Color(0, 1, 0, 0.5f);
Gizmos.DrawCube(topRight, bottomLeft);
//Gizmos.DrawCube(new Vector2(this.transform.position.x - 0.5f, this.transform.position.y + 0.5f), new Vector2(this.transform.position.x + 0.5f, this.transform.position.y - 0.5f));
}
您向 Gizmos.DrawCube 提供了错误的输入,它期望中心作为第一个参数,大小作为第二个参数。所以正确的代码是:
private void OnDrawGizmos()
{
Vector3[] corners = new Vector3[4];
GetComponent<RectTransform>().GetWorldCorners(corners);
var center = (corners[0] + corners[2]) / 2;
var size = corners[2]- corners[0];
Gizmos.color = new Color(0, 1, 0, 0.5f);
Gizmos.DrawCube(center, size);
}
我是一名优秀的程序员,十分优秀!