NGUI---代码控制Archor

来源:互联网 发布:带数字的域名 编辑:程序博客网 时间:2024/05/16 03:20

在开发时,我发现预制体不会保存anchor的值,于是这就要我们手动加载啦,好运气,直接找到一篇文章介绍的

作者是chengjin1609

传送门:http://jingyan.baidu.com/article/5552ef47d82a90518ffbc914.html


下面是我的一些个人学习:如果手动设置anchor,需要做以下三个步骤

1.先将你需要设置anchor的东西禁用掉,不禁用会在开始时出现一个黑影,影响美观

this.transform.Find("Bg/Setting").gameObject.GetComponent<UISprite>().enabled = false;

2.//然后获取UIWidget,不是获取anchor组件啊,通过setanchor进行设置,

this.transform.Find("Bg/Setting").gameObject.GetComponent<UIWidget>().SetAnchor(GameObject.Find("UI Root"), 1f, -45, 1f, -15, 1f, -15, 1f, -45);

3.//最后在启用你禁用的东西

this.transform.Find("Bg/Setting").gameObject.GetComponent<UISprite>().enabled = true;


//这是一个最复杂的anchor重载

//GameObject go 表示要和谁做anchor

public void SetAnchor (GameObject go,
float left, int leftOffset,//left 的值是relative  ,leftOffest就是偏移
float bottom, int bottomOffset,
float right, int rightOffset,
float top, int topOffset)

他有一些属性,我再这里给大家解释一下

m_uiwidget.leftAnchor.relative = 1f;//单独设置和什么对齐,比如说居左对齐

relative:就是相对于目标对象的哪边设置锚点,如果是leftAnchor和rightAnchor,0表示Target's Left,0.5表示Target's Center,1表示Target's Right;如果是bottomAnchor和topAnchor,0表示Target's Bottom,0.5表示Target's Center,1表示Target's Top。可以发现这个0,0.5,1所对应的内容,与Unity中Anchor菜单显示的内容有关,如下图红色区域。
        m_uiwidget.leftAnchor.absolute = -45;//设置偏移

原创粉丝点击