【Unity】励志成为最强UI仔—BeaverJoe项目之UI界面制作【上】代码优化-动态加载UI对象

跟BeaverJoe老师学习UI界面制作中,在原先的项目中,角色的solt是静态的五个角色。所以我想把他改成一个动态通过PlayerGM来控制的一个动态加载UI在这里插入图片描述

效果展示

请添加图片描述

/// <summary>
    /// 动态生成slot:但是要注意的是instantiate的重载中,
    /// Instantiate<GameObject>(GameObject original, Vector3 position, Quaternion rotation, Transform parent)
    /// 是没有instantiateInWorldSpace这个Bool的:分配父对象时,传递 true 可直接在世界空间中定位新对象。
    /// 传递 false 可相对于其新父项来设置对象的位置。 但是依然可以定位在parent下面的子对象,暂时没有看出有什么影响
    /// </summary>
    private void CreateSolt()
    {

        GameObject NewSlot = Instantiate(prefabSolt, FirstSoltPostion.GetComponent<RectTransform>().anchoredPosition, Quaternion.identity, leftPanel.transform);
        NewSlot.GetComponent<RectTransform>().anchoredPosition = new Vector2(-10, FristSolt_offset_y);  //修改pos_y
        FristSolt_offset_y -= perUnitSoltOffset;
        slots.Add(NewSlot);
    }


1.改变RectTransform的top GetComponent().offsetMax = new Vector2(GetComponent().offsetMax.x, top);

2.改变RectTransform的bottom GetComponent().offsetMin = new Vector2(GetComponent().offsetMin.x, bottom);

3.改变RectTransform的width,height GetComponent().sizeDelta = new Vector2(width, height);

4.改变RectTransform的pos GetComponent().anchoredPosition3D = new Vector3(posx,posy,posz); GetComponent().anchoredPosition = new
Vector2(posx,posy);

但是值得注意的是在anchoredPosition 中的X以及Y是在AnchorPresets设置为center的时候的值,若为其他设置可能它的值会有所不同,现在也不知道它的涵义到底是什么,总之以后需要注意
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值