
OnGUI 是 旧版UI系统用的,uGUI和OnGUI函数没关系。
Unity4xxx的ui用的是GUI系统,4x的最后一个版本加入了uGUI,据说uGUI设计师里有NGUI的开发者(本人不太了解详情),所以理念很相似。总之比旧的GUI系统好太多了。
使用 RectTransformUtilityScreenPointToLocalPointInRectangle 方法。
public Vector2 CurrMousePosition(Transform thisTrans)
{
Vector2 vecMouse;
RectTransform parentRectTrans = thisTransparentGetComponent<RectTransform>();
RectTransformUtilityScreenPointToLocalPointInRectangle(parentRectTrans, InputmousePosition, UICamera, out vecMouse);
return vecMouse;
}
Unity 是实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。 Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
相信很多刚接触UGUI的开发者,对于这套系统中RectTransform里的position,anchor,pivot都或多或少有些不熟悉,不知道这些是干嘛用的,为此,本篇文章就给大家介绍下这几个概念,不过主要还是会以Anchor和Pivot为主,position会带过介绍。
1、Pivot轴心
旋转、大小和缩放修改发生在主轴Pivot点周围,因此Pivot的位置会影响旋转、调整大小或缩放的结果。当工具栏Pivot/Center按钮设置为Pivot模式时,可以在场景视图中移动矩形变换的Pivot小圆圈。
如图:旋转 *** 作为绕着这个点旋转。
注:
Pivot是相对于自身的,(0,0)为自己左下角,(1,1)为自己右上角。(可以把这个UI看成这个点)
2、Anchors锚点
如果一个RectTransform的父物体也是RectTransform,那么子RectTransform可以以各种方式锚定到父RectTransform。
例如,子节点可以锚定在父节点的中心或其中一个角上。
锚定也允许孩子与父母的宽度或高度一起伸展。矩形的每个角都有一个固定的锚点偏移量,即矩形的左上角有一个固定的锚点偏移量,等等。这样,矩形的不同角就可以固定在父矩形的不同点上。
如:
3、Anchor presets锚点预设
在Inspector中,可以在Rect Transform组件的左上角找到锚预置按钮。单击该按钮将d出锚预置下拉菜单。从这里您可以快速地从一些最常见的锚定选项中进行选择。您可以将UI元素锚定到父元素的侧面或中间,或者与父元素大小一起拉伸。水平和垂直锚定是独立的。
锚预置按钮显示当前选择的预置选项(如果有的话)。如果将水平轴或垂直轴上的锚设置为与任何预设位置不同的位置,则会显示自定义选项。
Anchor Min对应场景视图中左下方的Anchor handle, Anchor Max对应右上方的handle。
矩形的position字段根据锚顶点是否在一起(产生固定的宽度和高度)或是否分开(导致矩形与父矩形一起拉伸)而不同。
方式1:当所有的锚柄在一起时,显示的字段是Pos X、Pos Y、宽度和高度。Pos X和Pos Y的值表示pivot相对于锚点的位置。
方式2:当锚被分开时,字段可以部分或完全改变为左、右、上、下。这些字段定义锚定义的矩形内的填充。如果锚水平分开,则使用左字段和右字段,如果锚垂直分开,则使用顶部和底部字段。
注意,在anchor或pivot字段中更改值通常会反向调整position值,以使矩形保持原位。在不需要这样做的情况下,通过单击检查器中的R按钮启用原始编辑模式。这使得anchor和pivot值能够在不改变任何其他值的情况下被改变。这可能会导致矩形在视觉上移动或调整大小,因为它的位置和大小取决于anchor和pivot值。
看下图预设布局,可以注意到:布局分为左侧、上侧和右下。
左和上只是方位标记,用啥要选择右下角部分;
右下部分的左上9个是一个点,所有锚柄在一起,大小不会受父物体影响,父物体大小变化子物体pivot到锚点位置保持不变; 如上面方式1
其他为2个点,最右下角的为四个点,大小会受父物体影响;如上面方式2
注意区分:
Pivot是相对于自身的,(0,0)为自己左下角,(1,1)为自己右上角。(可以把这个UI看成这个点)
Anchor为相对于父物体的,(0,0)为父物体左下角,(1,1)为父物体右上角。
4、Blue Print Mode(蓝图模式) 、 Raw Edit Mode(原始编辑模式)
参考链接: >
如何使用playmaker获取组件参数并修改
我用unity46的新UI系统做了一整套游戏的UI,所有约束比例都做好了,在用PlayMaker的时候遇到了问题,就是把UGUI的button建立FSM后无法连接到下一个动作,开始一直报错,后来给button加入了BOX组件才成功,但还是连接不到state2。
网上的教程都是用NGUI的朋友,核心原因比如去除NGUI的刚体组件,但46原生UI根本没有这东西,网上解决办法是再安装一个NGUI针对playmaker的脚本。
以上就是关于关于unity的OnGUI函数和UGUI组件的问题小白一个,问个弱智的问题: 调用OnG全部的内容,包括:关于unity的OnGUI函数和UGUI组件的问题小白一个,问个弱智的问题: 调用OnG、Unity UGUI怎么样获得UI在屏幕上的位置坐标、UGUI中Anchor和Pivot详解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)