【问题标题】:Unity, how to change only "top" of GameObject rect transformUnity,如何仅更改 GameObject 矩形变换的“顶部”
【发布时间】:2020-03-13 20:08:17
【问题描述】:

我想更改其中的实例化对象的 GameObject(ui pannel) 的 rect transform top value。 我发现GameObject.transform.localPosition 对此没有用。 localScale 对缩放后的 GameObject 内部的元素进行分层。

如何才能正确完成??

public void OnMouseEnter()
{        
    {            
        ResoursesTipsNewPannel = Instantiate(ResoursesTipsPanel);
        ResoursesTipsNewPannel.transform.SetParent(ResoursesPanelTransform, false);

        for (i = 0; i < n; i++)
        {
            //RIGHT HERE I GUESS MUST BE SOME CODE THAT CHANGE TOP VALUE OF MY PANNEL
            ResoursesNewTipText = Instantiate(ResoursesTipText);
            ResoursesNewTipText.transform.SetParent(ResoursesTipsNewPannel.transform, false);
            ResoursesNewTipText.text = "Exemple text, " + i;
        }
        i = 0;            
    }
}

也许某些附加到“ResoursesTipsNewPannel”(来自示例代码)的现有组件会自动更改面板的比例?

【问题讨论】:

  • RectTransform.offsetMax 和 RectTransform.offsetMin 是你需要修改的值,Max 是右上角,Min 是左下角。类型是 Vector2。

标签: c# user-interface unity3d scripting


【解决方案1】:

为了解决这个问题,我将其添加到示例中的代码中:

RectTransform ChangeRectTransform;
ChangeRectTransform = ResoursesTipsNewPannel.GetComponent<RectTransform>();
ChangeRectTransform.offsetMax = new Vector2(ChangeRectTransform.offsetMax.x, ChangeRectTransform.offsetMax.y+20);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    相关资源
    最近更新 更多