我基本上想找到一种设置transform.position = recttransform.position;
我需要一个将recttransform位置转换为变换位置的函数。
让我们说
RectTransform objectA;
Transform objectB;
Canvas canvas;
Start()
{
//All i want to do is this..
objectB.transform.position = CanvasToWorld(canvas, objectA);
}
Vector2 CanvasToWorld(Canvas canvas, RectTransform rect)
{
//Do some function and return world position of the recttransform
}
答案 0 :(得分:0)
好的,我找到了一个简单的解决方案。我希望这对某人有用。 :)
RectTransform objectA;
Transform objectB;
Vector3 pos = Camera.main.ViewportToWorldPoint(objectA.position);
objectB.position = Camera.main.WorldToViewportPoint(pos);
答案 1 :(得分:0)
transform.position
和rectTransform.position
在同一个空间(世界空间)中,因为RectTransform
继承自Transform
,position
是相同的属性。
rectTransform.anchoredPosition
是可在Canvas空间上工作的人
问题可能出在您的画布配置上,如果它是Overlay
,则位置会相去甚远,但是在Camera
或World
上,它应该非常精确,您甚至可以更改RectTransform
进行旋转以更改游戏对象的中心。