在unity5中,用c#脚本如何获取UGUI中Input field中的文本?

在unity5中,用c#脚本如何获取UGUI中Input field中的文本?,第1张

1、打开Unity,新建一个空工程。

2、在百度上搜索下载XLua,导入Unity工程中。

3、新建一个Lua脚本,内容大概为打印一个消息,设置几个变量,然后保存为“CSCallLualuatxt”。

4、在工程中,新建一个脚本,可以命名为“MyCSCallLua”,双击脚本或者右键“Open C# Project”打开脚本。

5、在打开的脚本“MyCSCallLua”编写代码,首先引入XLua命名空间,然后设置Lua环境变量。

6、运行场景,即可在控制台上看到,获取Lua脚本变量成功的打印。

注意事项:

Unity 是一个用纯C语言编写的测试工具 它简洁实用,多应用于嵌入式系统Unity工具可以裁剪用于各种规模的嵌入式项目,当然,只要是纯C语言的项目,Unity都可以使用。

参考
Unity 3D UGUI Toggle用法教程

Is On :用来表示Toggle当前开关状态,勾选为开;
Graphic :控制Toggle组件开关的显示隐藏,默认选取Checkmark,就是那个勾勾;

挂上这个脚本,会发现事件中有一个带参数的,还有一个不带参数的:

虽然ListenInFunction是带参数的,但是却要选上面那个绿色不带参数的,刚开始我是懵逼的…………

参照 UGUI中Button和Toggle 添加动态事件 得到了解释:

选下方红色的静态方法,其实UI中会多出一个checkbox,可以指定传入的参数:

当然也可以传入其它类型,比如

参考
Unity UGUI入门组件整理(三)Toggle组件与Toggle Group组件

假如初始状态是Toggle3被勾选,当我点击Toggle1勾选时,打印如下:

这样就可以根据名字和选中状态来做逻辑处理了。

是否允许不打开任何开关?如果启用此设置,则按下当前打开的开关会将其关闭,因此没有任何开关处于打开状态。如果禁用此设置,则按下当前打开的开关将不改变该开关的状态。

这个说的有点绕,并且有些博客上还有种错误的说法,就是这个开关能允许Group多选。其实测试一下就知道了,在勾选Allow Switch off时,点击当前选中的Toggle,可以将当前Toggle改成未选择状态,此时整个Group中所有的Toggle都会处于未选择状态。而如果没勾选Allow Switch off,就达不到这个效果,会强迫你必须选一个。

在官方文档中,描述ToggleGroup叫开关组:

UGUI学习笔记(五) ToggleGroup制作选择题单选框

在你所需要的地方建立一个文件夹,并新建一个材质material,你可以用中文为其命名,比如“”文字材质“”。2你需要更改材质的shader,此种shader将被用于UGUI中,不限于Text,Panel也可应用,有一定代替Sprite的效果。言归正传,更改shader,如图中所示的那样。这种设置只包含了一种贴图,请将Detail Strength的值调整成1,这样,将完全显示你所赋予的纹理。3添加一张,当你导入一张到unity中,默认是Texture形式的,Texture是指的该的shader。所以你什么都不需要做,直接添加到之前我们所建立的文字材质中去。4新建一个Canvas并添加一个子UI,也就是一个Text。5我们更改一些Text中的属性,以便我们只做与观察。并在Text的Material中将我们的文字材质添加过去。这是很重要的一个步骤,添加一个名叫 position as UV1 。在官方的解释中这个组件是用于Text的显示的,也就是说,你只能这样用,由于他没有任何参数,也没有过多的说明,所以不能解释。如果你不添加这个组件,将不能够正确显示,如果你添加了组件,之后有删除了,你的显示效果可能依然存在,这点我无法解释,总之,只要添加就好。你会看到一下文字。当你的过小的时候,请更改你的材质一栏的属性,Detail下的Tiling和offset找寻合适的值。对于一个文字材质,你无法真正找到正确的拉伸,但是你可以对此处进行手动微调,特别是你的在看起来不是那种连续的的时候。我们试着写一个繁体字,让他看起来很方,方便我们调节材质的相关系数。我们尝试谢谢其他字,并对text面板进行手动的拉动,看看有何种效果。我们会发现材质随着我们的拖动发生了变化,所以请在使用时候注意到这一点。但是请注意这一点,某种意义上并不会影响你的使用,因为你可以勾选Text组件下的红框体中的选项,使文字不受到框体的约束做出如换行等动作。如上面的“”啊喽哈“”几个字,我们可以为Text添加Outline组件,使得发生描边效果。我们再回到“”啊喽哈“”几个字,我们可以为其添加除了秒黑边外的阴影属性,我们可以将他的的Color变得白一些,你会看到变化。这时候你删除或者取消掉之前的outline属性,只保留shadow,你将会看到3D立体感的“”啊喽哈“”。之后在Text再次添加Shadow组件,也就是说Text这时候有两个shadow,我们添加不同的组件,可以达到多种效果,也就是我们如果愿意的话在之前我们创建的名为“”文字材质“”的材质球中,如果我们移除材质的贴图,我们适当更改其他部分的颜色,我们将看到红白配的字,是不是很丑,但这点很实际,只不过他们不般配而已。我们搭配合理一些可以出现还能凑合一看的效果,只是字体稍显难看。当我们下载合适的字体,譬如一些魔法文字,并赋予一些材质之后,我们之前的一些设置,就有了用武之地。但是有些时候我们期望得到一个窄窄高高的魔法字的时候,我们只需调节Text组件的RectTransform中关于缩放的数值。我们再次使用其他字体做做实验,比如“”开始游戏“”,一款感觉有战地情节的有些是什么样子呢。当然了,我们也可以更酷一点吧,字体是大头,兴许你的一次改动整个风格就全变了。

相信很多刚接触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(原始编辑模式)

参考链接: >

via @ >

使用 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、游戏主机、增强现实和虚拟现实设备。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10554845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存