unity ugui canvas怎么canvas的位

&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!Unity进阶技巧&-&动态创建UGUI
转自:/game/24.html
项目中有功能需要在代码中动态创建UGUI对象,但是在网上搜索了很久都没有找到类似的教程,最后终于在官方文档中找到了方法,趁着记忆犹新,写下动态创建UGUI的方法,供需要的朋友参考
你将学到什么?
如何设置UI的缩放模式和尺寸
如何添加UI动画效果
如何使用Button的基本响应事件
如何动态创建UGUI对象
一、新建一个Test项目
首先我们新建一个名为Test的项目来实践我们这次的内容,项目创建成功后,我们新建一个Button对象,如下图:
新的UGUI全部都基于一个Canvas画布,如果你的场景里面没有Canvas,当你创建一个UI对象时,编辑器会自动帮你创建一个Canvas
然后我们设置一下Cavans的缩放模式和尺寸,本例中我们以iPhone6的尺寸大小为准,我们选中Canvas,然后在其Canvas
Scaler组件中,修改Ui Scale Mode为Scale With Screen Size,然后将
分辨率设置为750*1334
二、设置Button属性
然后我们将Button的位置调整至屏幕的右上方,然后将字体大小放大,文本内容修改为点我(这边大小和文本内容可以根据自己的喜好来调整)
三、动态创建UGUI对象的原理说明
在开始下面的内容之前,先在这边讲解一下动态创建UGUI对象的原理,我们看看Unity官方文档的介绍说明:(懒得看到大段文字的朋友可以直接跳过这段,看后面的简单说明)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
UGUI研究院之获取UI子节点在Canvas的2D坐标(十二)
UGUI研究院之获取UI子节点在Canvas的2D坐标(十二)
围观20762次
编辑日期: 字体:
今天一个同事问我怎么样获取UI在Canvas下的2D坐标。我查了一下API,其实很简单。如下图所示,UI比较复杂了子节点会很多,假设我想获取某个子的子节点的2D坐标。
首先我们要搞清楚 transform.postion 和 rectTransform.anchoredPosition
这两个坐标是完全不一样的。前面的是3D坐标,后面的是2D在Rect里的坐标,并且还是相对坐标,那么节点深了坐标就更不好换算了。
public Canvas canvas;& void Start(){
Vector2 pos;
if(RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, transform.position, canvas.camera, out pos)){
Debug.Log(pos);
所以上述代码就是用UI元素的世界坐标和canvas的RectTrasform再加上UI摄像机,换算出元素在Canvas的2D坐标。
最后在想需要赋值的UI 用 rectTransform.anchoredPosition = pos 就可以了。。
今天有朋友问我,怎么通过鼠标的坐标在屏幕上移动来更新UI的显示位置。代码如下
12345678910111213141516171819202122
using UnityEngine;using System.Collections;&public class NewBehaviourScript : MonoBehaviour {&&&&&Canvas canvas;&&&&RectTransform rectTransform; // Use this for initialization void Start () &&&&{ &&&&&&&&rectTransform = transform as RectTransform;&&&&&&&&canvas = GameObject.Find("Canvas").GetComponent&Canvas&(); }
// Update is called once per frame void Update () {&&&&&&&&Vector2 pos;&&&&&&&&if(RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.mousePosition, canvas.worldCamera, out pos)){&&&&&&&&&&&&rectTransform.anchoredPosition = pos;&&&&&&&&} }}
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!

我要回帖

更多关于 unity3d ugui ui 位置 的文章

 

随机推荐