Unity:如何获得游戏对象的精灵的枢轴?

问题描述:

在统一中我试图让我的游戏对象正在使用的精灵的支点。Unity:如何获得游戏对象的精灵的枢轴?

我在游戏中将游戏对象(我们称之为A)放置在游戏中时,我更改了精灵的支点。现在,当我尝试在A的变换中产生另一个对象时,新的游戏对象,并且我知道这很热它应该这样做,产生于A的左上角。我需要以某种方式计算出世界坐标中正在使用的精灵A的中心。

我尝试这样做:

Debug.Log(tempGameObj.GetComponent<SpriteRenderer>().sprite.pivot); 

但这产生的结果如(-80,0,400),而所述枢转点(-0.25,1.25)。

我该如何计算中心?

你要找的是什么ScreenToWorldPoint方法

Vector3 center = Camera.main.ScreenToWorldPoint(tempGameObj.GetComponent<SpriteRenderer>().sprite.pivot); 

这里的documantation的情况下,你需要它 https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

+1

这是正确的。 ['Sprite.pivot'](https://docs.unity3d.com/ScriptReference/Sprite-pivot.html)以像素形式返回,需要'ScreenToWorldPoint'将其转换为正常的世界位置。根据OP在做什么,OP可能还必须使用['InverseTransformPoint'](https://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html)将世界pos转换为Sprite的本地位置。 – Programmer

+0

@Halil,请记住,如果这解决了您的问题,请不要忘记通过接受它来解决问题。 – Programmer