最近在使用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);//不受父节点的影响,保持原局部坐标和缩放
}

就是这样。

物有所不足,智有所不明。

uGUI动态加载控件位置错误(转自:https://www.cnblogs.com/mezero/p/4542939.html)的更多相关文章

  1. uGUI动态加载控件位置错误

    最近在使用uGUI时遇到了一个问题,在此记录一下.在Canvas的Render Mode设置为Screen Space-Overlay模式时,动态加载控件是不会发生问题的.但是在Screen Spac ...

  2. 解决tableView中cell动态加载控件的重用问题

    解决tableView中cell动态加载控件的重用问题 tableView的cell,有时候需要在运行时取得对应的数据后才能够动态的创建该cell中的控件并加载到该cell中,此时,你一定会遇到重用问 ...

  3. Silverlight日记:动态生成DataGrid、行列装换、动态加载控件

    本文主要针对使用DataGrid动态绑定数据对象,并实现行列转换效果. 一,前台绑定 <sdk:DataGrid x:Name="dataGrid2" Style=" ...

  4. js动态加载控件jsp页面

    例子1:(具体参照drp中的flow_card_add.jsp)<script>    var rowIndex = 0;     function addOneLineOnClick() ...

  5. WinForm的延时加载控件概述

    这篇文章主要介绍了WinForm的延时加载控件,很实用的技巧,在C#程序设计中有着比较广泛的应用,需要的朋友可以参考下   本文主要针对WinForm的延迟加载在常用控件的实现做简单的描述.在进行C# ...

  6. 发布我的图片预加载控件YPreLoadImg v1.0

    介绍 大家好!很高兴向大家介绍我的图片预加载控件YPreLoadImg.它可以帮助您预加载图片,并且能显示加载的进度,在预加载完成后调用指定的方法. YPreLoadImg控件由一个名为PreLoad ...

  7. ie6,7下js动态加载图片不显示错误

    ie6,7下js动态加载图片不显示错误 先描述一下出现这种匪夷所思bug的背景: 我在页面加载的时候加载一堆小缩略图,<a href="javascript:void(0);" ...

  8. Adroid动态加载Apk-插件化技术框架(动态代理方案)

    技术:Android + java +动态加载+插件化   概述 为什么要使用插件化?在开发中,一个项目只会越做越大.初始版本可能是单一功能,后续可能加上各种风马牛不相及的功能.所以我认为插件化可以使 ...

  9. [iOS微博项目 - 1.8] - 各种尺寸图片加载 & 控件不显示研究

    A. 图片的加载:  [UIImage imageNamed:@"home"];  加载png图片    一.非retina屏幕  1.3.5 inch(320 x 480)  * ...

随机推荐

  1. poj 2379 Sum of Consecutive Prime Numbers

                                                                                                        ...

  2. net6:用户添加到角色和移出角色,角色的创建与删除等Roles与Membership的使用

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  3. float 常见用法与问题--摘抄

    float 属性绝对是众多切图仔用的最多的 CSS 属性之一,它的用法很简单,常用值就 left.right.none 三个,但是它的特性你真的弄懂了吗? 我会在这里介绍我对 float 的认识与使用 ...

  4. 转 C语言编译过程简介

    C语言编译过程简介 C语言编译过程简介 刚开始接触编程的时候,只知道照书敲敲代码,一直都不知道为什么在windows平台下代码经过鼠标那样点击几下,程序的结果就会在那个黑色的屏幕上.现在找了个机会将C ...

  5. sql server 2008导入和导出sql文件

    导出表数据和表结构sql文件 在日常的开发过程中,经常需要导出某个数据库中,某些表数据:或者,需要对某个表的结构,数据进行修改的时候,就需要在数据库中导出表的sql结构,包括该表的建表语句和数据存储语 ...

  6. 彻底删除node_modules文件

    npm install rimraf -g rimraf node_modules

  7. 监听EditText输入完成

    最近有个需求,要在用户输入完快递单号之后,请求快递100接口,拿到快递公司信息.总不能用户输入一个数字就请求一次吧,给服务器造成不必要的压力(虽然不是自家服务器).但是又无法知晓用户何时输入完毕,每家 ...

  8. GitHub 上受欢迎的 Android UI Library 整理(一)

    抽屉菜单 https://github.com/mikepenz/MaterialDrawer ★7337 - 安卓抽屉效果实现方案https://github.com/Yalantis/Side-M ...

  9. spring-mvc 的一些使用技巧(转)

    APP 服务端的 Token 验证 通过拦截器对使用了@Authorization注解的方法进行请求拦截,从 http header 中取出 token 信息,验证其是否合法.非法直接返回 401 错 ...

  10. JS中原型链中的prototype与_proto_的个人理解与详细总结(**************************************************************)

    一直认为原型链太过复杂,尤其看过某图后被绕晕了一整子,今天清理硬盘空间(渣电脑),偶然又看到这图,勾起了点回忆,于是索性复习一下原型链相关的内容,表达能力欠缺逻辑混乱别见怪(为了防止新人__(此处指我 ...