zoukankan      html  css  js  c++  java
  • uGUI动态加载控件位置错误(转自:https://www.cnblogs.com/mezero/p/4542939.html)

    最近在使用uGUI时遇到了一个问题,在此记录一下。
    在Canvas的Render Mode设置为Screen Space-Overlay模式时,动态加载控件是不会发生问题的。但是在Screen Space-Camera模式下,动态加载的控件位置及缩放会有很大的偏差。

    复制代码
    private Canvas canvas;
    // Use this for initialization
    void Start () 
    {
       canvas = GameObject.FindObjectOfType<Canvas>();
       GameObject button = GameObject.Instantiate(Resources.Load("UI/Button")) as GameObject;
       button.transform.parent = canvas.transform;
    } 
    复制代码

    运行结果:

    看不清就对了,因为放大了66倍...

    本来心想查看源码,查找问题的原因,尼玛在 bitbucket上的官方库里找半天没找到Canvas的源码,后来仔细一看原来Canvas是UnityEngine.dll下的。一定是逗我...说好的,开源呢...

    无耐求助于万能的Google,终于找到了这个uGui alignment is wrong when adding prefabs to canvas

    复制代码
    private Canvas canvas;
    // Use this for initialization
    void Start () 
    {
        canvas = GameObject.FindObjectOfType<Canvas>();
        GameObject button = GameObject.Instantiate(Resources.Load("UI/Button")) as GameObject;
        //button.transform.parent = canvas.transform;
        button.transform.SetParent(canvas.transform,false);//不受父节点的影响,保持原局部坐标和缩放
    }
    复制代码

    就是这样。

    物有所不足,智有所不明。
  • 相关阅读:
    第72天: PySpider框架的使用
    第71天: Python Scrapy 项目实战
    Web前端资源汇总
    1201即将到来
    C#自定义事件模拟风吹草摇摆
    HTML5 Canvas爱心时钟代码
    CSS3圆环动态弹出菜单
    CSS3实现Loading动画特效
    HTML5优势
    CSS3扁平化Loading动画特效
  • 原文地址:https://www.cnblogs.com/hackerl/p/8586147.html
Copyright © 2011-2022 走看看