NGUI的anchor

NGUI的SetAnchor方法()3.9.2版本

//UIRect.cs的SetAnchor方法
    public void SetAnchor (GameObject go, int left, int bottom, int right, int top)
    {
        Transform t = (go != null) ? go.transform : null;

        leftAnchor.target = t;
        rightAnchor.target = t;
        topAnchor.target = t;
        bottomAnchor.target = t;

        leftAnchor.relative = 0f;
        rightAnchor.relative = 1f;
        bottomAnchor.relative = 0f;
        topAnchor.relative = 1f;

        leftAnchor.absolute = left;
        rightAnchor.absolute = right;
        bottomAnchor.absolute = bottom;
        topAnchor.absolute = top;

        ResetAnchors();
        UpdateAnchors();
    }

SetAnchor()不能写上方向.relative就是anchor的方向,右上都为1,左下都为0,中间为0.5f
这里写图片描述
但明SetAnchor明显不够用了,也可能一个个去设置了

      sprite.bottomAnchor.Set(panel.transform, 0.5f, 41);
      sprite.topAnchor.Set(panel.transform, 1, -51);

可以去copy UIRect的方法,写成这样

   public void SetAnchorInspector(GameObject go, int left, int right, int bottom, int top, float leftOri=0f, float rightOri=1f,float bottomOri=0f, float topOri=1f)
    {
        Transform t = (go != null) ? go.transform : null;

        leftAnchor.target = t;
        rightAnchor.target = t;
        topAnchor.target = t;
        bottomAnchor.target = t;

        leftAnchor.relative = leftOri;
        rightAnchor.relative = rightOri;
        bottomAnchor.relative = bottomOri;
        topAnchor.relative = topOri;

        leftAnchor.absolute = left;
        rightAnchor.absolute = right;
        bottomAnchor.absolute = bottom;
        topAnchor.absolute = top;

        ResetAnchors();
        UpdateAnchors();
    }

写成了Inspector视图的顺序.对照起来比较方便

      sprite4.SetAnchorInspector(panel, 351, -255, -134,  -85,0,1,1,1);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值