gpt4 book ai didi

c# - Unity获取GameObject的角落

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:58 29 4
gpt4 key购买 nike

我正在使用 .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));
}

Image

最佳答案

您向 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);
}

关于c# - Unity获取GameObject的角落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57467868/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com