繁体   English   中英

Unity、C#、2D:如何将 UI 画布项目(按钮)位置设置为与另一个游戏对象相同的位置?

[英]Unity, C#, 2D : how to set a UI canvas item(button) position to the same position as another gameobject?

我试图通过代码让按钮出现在与框相同的位置,以便在调用此函数时将按钮游戏对象移动到菜单框游戏对象所在的位置

private RectTransform Bpos; 

// this var holds the box sprite
    public GameObject menu;

// this var hold the button game object
    public GameObject button;

// vector to hold position
    Vector3 pos;

void Start(){
// sets vector to box position
       pos = menu.transform.position;

       //declairs button recttransform
            Bpos = button.GetComponent<RectTransform>();

       // sets button recttransformto pos vector
       button.Bpos = pos;

}```
i am currently getting the error at line (button,Bpos = pos;)

 error CS1061: 'GameObject' does not contain a definition for 'Bpos' and no accessible extension method 'Bpos' accepting a first argument of type 'GameObject' could be found (are you missing a using directive or an assembly reference?)
for the life of me i cant get this to work 

UI 使用 anchoredPosition 而不是 transform.position。 您需要将按钮的anchoredPosition 设置为菜单的anchoredPosition。 您可以通过访问 RectTransform 来获取 anchoredPosition。 我会这样写:

void Start(){
   // get anchoredPosition of menu and save it in pos
   pos = menu.GetComponent<RectTransform>().anchoredPosition;

   // set anchoredPosition of the button to pos (anchoredPosition of menu)
   button.GetComponent<RectTransform>().anchoredPosition = pos

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM