[英]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.