u3d怎么调整ugui里的相对位置,使之和其他物体的相对位置不变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了u3d怎么调整ugui里的相对位置,使之和其他物体的相对位置不变相关的知识,希望对你有一定的参考价值。

就是我做了一个表盘,是个普通模型,表盘上的数字是要可以由用户来编辑的,所以就用ugui里的inputfield来实现的,可是导出来以后,不同的分辨率下,inputfield的位置不一样,有的都跑到表盘外边去了,让这个问题恶心一天了,有知道的大神教教小妹吧,不胜感激。。。。

你好   我给你说一个方法  很简单  不用写代码:

    把你画布里面Canvas Scaler属性的UI Scale Mode 设置为:Scale with Screen Size

    在多出来的的两个输入框里输入你的屏幕分辨率

    Screen Match Mode设置为:Match Width Or Height;下面的Match 设置为1(意思就是按高去匹配分辨率)

    再把你UI的锚点设置到最中间就可以了;

    亲测有效,你可以试一下。我不知道现在说还有没有用,也不知道你问题解决了没有,反正知道了以后再碰见就知道怎么办了,共勉吧。

参考技术A //C#
public RectTransform target; //指定物件的RectTransform(锚点)
public Vector2 offset; //与锚点之间的距离

void Update()
GetComponent<RectTransform>().anchoredPosition = target.anchoredPosition + offset;
本回答被提问者和网友采纳

unity UGUI为啥在父物体绑定拖拽脚本,子物体也能拖拽?

我只想让实现点击父物体可以拖拽,这个时候子物体是把父物体遮住的,子物体也没有设置RaycastTarget=flase,按理说应该是不能透过子物体点击到父物体的,但是他却响应了父物体的拖拽事件,而且点在按钮上拖拽也是一样。请问这个问题该怎么解决呢?

如果你认真研究过UGUI的实现就会发现UGUI的事件过程:

    射线检测所有穿透的物体-》2.取出第一个被检测到的物体-》3. 如果该物体有处理事件的方法则直接处理 如果没有则将事件传递给其父节点然后重复该步骤

解决方案:把你的父物体和子物体切断父子关系,使共一个空物体做父级就可以了,注意两个物体的前后关系

参考技术A 问题描述的不是很明确;
你的父子物体分别是什么UI组件?

以上是关于u3d怎么调整ugui里的相对位置,使之和其他物体的相对位置不变的主要内容,如果未能解决你的问题,请参考以下文章

UGUI代码分析

unity3d摄像机角度怎么调整啊?u3d如何调整摄像机的位置?求解

u3d使摄像机跟随物体

u3d 鼠标点击位置,物体移动过去。 U3d mouse clicks position, objects move past.

UGUI源码解析——ContentSizeFitter

UGUI源码解析——ContentSizeFitter