gpt4 book ai didi

c# - unity UI 中矩形变换的位置

转载 作者:行者123 更新时间:2023-12-04 09:43:01 24 4
gpt4 key购买 nike

在使用 Unity 的 UI rectTransform 进行编程时,我发现了一个非常令人困惑的问题:

在检查器中,我们可以发现 RectTransform 的位置设置为 (0,0,0) enter image description here

但在 Start() 的代码中,当我打印位置时:

parentObject = transform.parent.gameObject;
Debug.Log("parentObject rectTransform :" + parentObject.GetComponent<RectTransform>().localPosition);

这将给我一个职位:
parentObject rectTransform :Panel: (0.0, -562.5, 0.0)
UnityEngine.Debug:Log(Object)
NewWorkerController:Start() (at Assets/Scripts/NewWorkerController.cs:60)

当我们尝试获取 position 时,事情会更加困惑。而不是 localPosition :
parentObject rectTransform :Panel: (621.0, 1365.5, 0.0)
UnityEngine.Debug:Log(Object)
NewWorkerController:Start() (at Assets/Scripts/NewWorkerController.cs:60)

我还在 playMode 期间检查了这个 rectTransform 的 posX 和 posY ,表明它没有被改变(一直显示 (0,0,0) )

那有什么问题?

最佳答案

一种减少混淆并更好地理解更改 RectTransform 如何影响脚本中看到的值的方法。 (例如,场景/检查器设置的变化如何反射(reflect)在脚本成员变量中)

  • 创建单独的检查器属性窗口:单击 RectTransform 中的 3 个点并选择“属性...”
  • 打开 Debug模式:在应该弹出的新窗口中...单击整个窗口的最高级别3点,然后选择“调试”
    您现在可以使用具有 RectTransform 的对象并查看调试窗口中的成员变量(与脚本中可访问的相同变量)如何显示您的更改。
  • 关于c# - unity UI 中矩形变换的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736079/

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