【问题标题】:Unity: How to get the pivot of a game object's sprite?Unity:如何获得游戏对象精灵的轴心?
【发布时间】:2017-03-04 20:43:16
【问题描述】:

在统一中,我试图获取我的游戏对象正在使用的精灵的轴心点。

我更改了精灵的轴心点,以便在我将游戏对象(我们称之为 A)放置在游戏中时更方便。现在,当我尝试在 A 的变换处生成另一个对象时,新的游戏对象,我知道它应该是热的,它会在 A 的左上角生成。我需要以某种方式计算精灵 A 在世界坐标中使用的中心。

我试过了:

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

但这会产生 (-80,0,400) 的结果,而枢轴点是 (-0.25, 1.25)。

如何计算中心?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    您正在寻找的是 ScreenToWorldPoint 方法

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

    这是文档,以备不时之需 https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

    【讨论】:

    • 这是对的。 Sprite.pivot 以像素为单位返回,需要ScreenToWorldPoint 将其转换为正常的世界位置。根据 OP 正在做什么,OP 可能还必须使用 InverseTransformPoint 将世界 pos 转换为 Sprite 的本地位置。
    • @Halil,请记住,如果这解决了您的问题,请不要忘记通过接受它来勾选它已解决。
    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    相关资源
    最近更新 更多