c# - 团结 : How to get the pivot of a game object's sprite?

标签 c# unity-game-engine

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

我更改了 Sprite 的枢轴点,以便在将游戏对象(我们称之为 A)放置在游戏中时变得容易。现在,当我尝试在 A 的变换处生成另一个对象时,新的游戏对象(我知道它很热)会在 A 的左上角生成。我需要以某种方式计算在世界坐标中使用的 Sprite 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);

这是文档,以备您需要时使用 https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

关于c# - 团结 : How to get the pivot of a game object's sprite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42601187/

相关文章:

c# - 在使用 MSBuild 发布之前执行 web.config 转换

c# - 保存和加载音频

c# - 在 Unity 中检测 applicationDidBecomeActive 何时?

java - 如何为 Android 设备统一实现 FCM 推送通知,即使游戏被终止也能正常工作

c# - 长 API 调用 - 异步调用答案?

c# - 确保数据反序列化/序列化

c# - 如何在 mvvm 模式中定义用户控件?

c# - SelectMany 无法从用法中推断出来

ios - Unity iOS 构建错误 : duplicate symbols when using Firebase Unity SDK + Google VR SDK for Unity

macos - VS Code 找不到 OmniSharp 的 Mono