Unity3D】【unity基础】Text控件在哪?

2020-11-27 15:51发布

13条回答

这里来讲解一下unity3D自带的UI功能,自带的UI也叫UGUI功能非常的强大,比起NGUI,更加的灵活,让用户能够更加容易的去使用。 首先创建一个文本Text 然后是文本相对应的属性 这里的属性比较的简单,一些基本的颜色,格式,字体加粗,字体大小,都有。如果需要字体文件,还可以从计算机的控制面开始。

Sophia
3楼 · 2020-11-27 16:03

开发工具 —— 插入——下面有两组控件,上面一组是表单控件,里面有textbox,下面一组是daoactivex控件,里面也有textbox。如果需要在窗体上使用控件,一般使用下面的AcitveX控件。

如果找不到开发工具选项卡,则需要到选项-自定义里面将其显示出来。


IT学习
4楼 · 2020-11-27 16:05

Text作为UGUI最基础的控件以及最常用的控件,它在项目中的应用绝对可以算是最多的,任何一个UI界面可以说都离不开它,它的基本属性如下:

一、rect transform组件:


rect transform(矩形变换):理解为专门用于UI的transform组件,是UGUI所有控件的标准位置变换组件,继承至transform,顾名思义,它所描述的是一个平面矩形区域的位置,就是2D的UI。


中间的九宫格分别代表该组件的锚点位置,选择中心的话,则该组件会根据屏幕分辨率的变化以屏幕中心位置自适应,其他位置同理。

第四行以及第四列(左起第一列及上起第一行非实际选项,主要起索引的作用,所以上图中的选项实际只有四行四列)的带蓝色箭头的选项为该组件的拉伸设置,第四行第一个表示的是组件跟随屏幕的高度拉伸,同时以屏幕左边作为锚点,其他同理。

最右下角一个表示的是组件跟随整个屏幕拉伸变化,适用于背景图片之类的,无论屏幕怎么变化,它都可以随之拉伸。

但有一个重点,其实组件上面也有描述:


在设置锚点以及拉伸类型的时候,如果同时按住shift键的话,可以同时设置组件的中心点,同时按住alt键的话,可以同时设置组件的位置,比如,我按住alt选择锚点为中心,那么组件的位置就会移动到屏幕中心位置,我按住alt选择最右下角的全屏拉伸,那么组件就会拉伸得跟屏幕一样大。这些设置都是自适应的,根据屏幕而动态变化。


Kindery
5楼 · 2020-11-27 16:09

在层级面板右击,找到文本控件

在场景面板中看到新建的文本控件

也可以在游戏面板中看到文本。

设置Text的重要属性

在文本中可以设置内容

设置后即可在下面设置文本的样式等等

我是大脸猫
6楼 · 2020-11-27 21:50

Text文本组件用于显示和处理多行文本。在Tkinter的所有组件中,Text组件显得异常强大和灵活,它适用于处理多任务,虽然该组件的主要目的是显示多行文本,但它常常被用于作为简单的文本编辑器和网页浏览器使用。

当创建一个Text组件的时候里面是没有内容的。为了给其插入内容,可以使用insert()以及INSERT或END索引号。

1.普通的Text组件

from tkinter import *
root = Tk()

text1 = Text(root,width=30,height=4)#INSERT索引表示在光标处插入text1.insert(INSERT,'I Love')#END索引号表示在最后插入text1.insert(END,' you')
text1.pack()
mainloop()

 

2.插入Button之后的Text组件

from tkinter import *

root = Tk()

text1 = Text(root,width=30,height=2)
text1.pack()
text1.insert(INSERT,'I love you')def show():
     print('吆喝,我被点了一下')#text还可以插入按钮  图片等b1 = Button(text1,text='点我点我',command=show)#在text创建组件的命令text1.window_create(INSERT,window=b1)

mainloop()

 

3.插入图片之后的Text组件

from tkinter import *

root = Tk()

text1 = Text(root,width=100,height=30)

text1.pack()

photo = PhotoImage(file='text.gif')def show():
     #添加图片用image_create
     text1.image_create(END,image=photo)

b1 = Button(text1,text='点我点我',command=show)     #添加插件用window_createtext1.window_create(INSERT,window=b1)

mainloop()

4.Text中的Indexes

Indexes(索引)是用来指向Text组件中文本的位置,跟python的序列索引一样,Text的组件索引也是对应实际字符之间的位置。值得注意的是: 行号以1开始 列号以0开始

from tkinter import *
root = Tk()
text1=Text(root,width=30,height=3)
text1.insert(INSERT,'index的练习')#1.2到1.5的范围之间print(text1.get(1.2,1.5))

 

5.Text中的Marks

Marks(标记)通常是嵌入到Text组件文本中的不可见的对象。事实上,Marks是指定字符间的位置,并跟随相应的字符一起移动。Marks有INSERT,CURRENT,和user-defined marks(用户自定义的Marks), 
其中,INSERT和CURRENT是Tkinter预定义的特殊Marks,它们是不可能被删除的 
INSERT(或insert)用于指定当前插入光标的位置,Tkinter会在该位置绘制一个闪烁的光标(因此并不是所有的Marks都不可见) 
CURRENT用于指定与鼠标坐标坐标最近最接近的位置,不过,如果你按紧鼠标任何一个按钮,它会直到你松开它才响应 
使用mark_set()方法创建和移动Marks 
使用mark_unset()方法删除Marks 
Mark事实上就是索引,用于表示位置

from tkinter import *

root = Tk()

text1 =Text(root,width=30,height=4)

text1.insert(INSERT,'I Love FishC.com')
text1.mark_set('here',1.2)#插入是指在前面插入text1.insert('here','插')
text1.pack()

mainloop()

 

6.Text中的Tags

Tags通常用于改变Text组件中内容的样式和功能,你可以修改文本的字体,尺寸和颜色,另外Tags还允许你将文本、嵌入的组件和图片与键盘相关联,除了user-defined tags(用户自定义的Tags),还有 
一个预定义的特殊Tag:SEL

from tkinter import *root = Tk()text1 = Text(root,width=30,height=5)text1.pack()text1.insert(INSERT,'I Love FishC.com!')#第一个参数为自定义标签的名字#第二个参数为设置的起始位置,第三个参数为结束位置#第四个参数为另一个位置text1.tag_add('tag1','1.7','1.12','1.14')#用tag_config函数来设置标签的属性text1.tag_config('tag1',background='yellow',foreground='red')#新的tag会覆盖旧的tagmainloop()

 

7.Tags的事件绑定 
Tags还支持事件的绑定,绑定事件使用的是tag_bind()方法,下面代码实现了将文本与鼠标事件进行绑定,当鼠标进入该文本时,鼠标样式切换为‘arrow’形态,离开文本时切换回‘xterm’形态,当触发鼠标‘左键单击操作’事件的时候,使用默认浏览器打开百度

from tkinter import *import webbrowser

root = Tk()

text = Text(root,width=30,height=5)
text.pack()

text.insert(INSERT,"I Love FishC.com!")

text.tag_add('link','1.7','1.16')
text.tag_config('link',foreground='blue',underline=True)def show_arrow_cursor(event):
     text.config(cursor='arrow')def show_xterm_cursor(event):
     text.config(cursor='xterm')def click(event):
     webbrowser.open('http://baidu.com')

text.tag_bind('link','',show_arrow_cursor)
text.tag_bind('link','',show_xterm_cursor)
text.tag_bind('link','',click)

mainloop()

 

8.使用Text组件中文本的MD5摘要来判断内容是否发生改变

from tkinter import *import hashlib

root = Tk()

text1 = Text(root,width=30,height=5)
text1.pack()

text1.insert(INSERT,'I Love FishC.com!')
contents = text1.get('1.0',END)def getSig(contents):
     m=hashlib.md5(contents.encode())     return m.digest()

sig=getSig(contents)def check():
     contents = text1.get('1.0',END)     if sig !=getSig(contents):
          print('警报,内容发生改变')     else:
          print('风平浪静')

Button(root,text="检查",command=check).pack()

mainloop()

 

关于Text的组件的相关内容就先介绍到这里,之后会再进行补充。


我想吃肉
7楼 · 2020-11-28 08:55

在Unity3D 5以后的版本中,没有了GUI Text这个游戏物体,而新增了UI组件Text,并且这一组件被限定在Canvas(画布)中,所以在存取Text组件的内容时就有了一些变化,相对以前的HUIText来说,要简单一些了

不吃鱼的猫
8楼 · 2020-11-29 11:31

开发工具 —— 插入——下面有两组控件,上面一组是表单控件,里面有textbox,下面一组是daoactivex控件

嘿呦嘿呦拔萝卜
9楼 · 2020-11-30 16:45

开发工具 —— 插入——下面有两组控件,上面一组是表单控件,里面有textbox,下面一组是daoactivex控件,里面也有textbox。如果需要在窗体上使用控件,一般使用下面的AcitveX控件。

相关问题推荐

  • 回答 17

    还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学  学学js flash as等等  有个梯度就好多了如果要用好unity  不会编程那是不行的  学习的过程中都有个头疼的过程  记住  头越痛  代表你要接受的东西越多  坚持 你的大脑在和知识兼容中:D...

  • unity如何自学Unity3D 2022-01-06 15:24
    回答 18

    可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 2

    Shader Unlit/Test{Properties{_MainTex(MainTex,2D)=white{}_MainColor(MainColor,COLOR)=(1,1,1,1)_AddTex(AddTex,2D)=white{}_Maxset(Max,Range(0.1,1.0))=0.1}SubShader{Tags{RenderType=Transparent Queue=Tran...

  • 回答 4

    文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...

  • 回答 7

    策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样!    游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...

  • 回答 7
    已采纳

    可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。

  • 回答 3
    已采纳

    游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...

  • 回答 10

    1. 在布局文件中给Button按钮添加onClick属性,属性值为任意字符串(此字符串用于设置按钮被点击时运行的方法的方法名)。2.获取控件对象+通过控件对象调用setOnClickListener方法设置点击事件...

  • 回答 9

    FlatStyle按钮的样式可以用这个属性改变。如果把样式设置为PopUp,则该按钮就显示为平面,直到用户再把鼠标指针移动到它上面为止。此时,按钮会弹出,显示为3D外观 Enabled这个属性派生于Control,但这里仍讨论它,因为这是一个非常重要的属性。把Enabled 设...

  • 回答 9

  • 回答 8

    最近在unity3d项目中,需要使用toggle实现多项单选的功能,要实现这样的效果需要给其添加togglegroup,然后设置默认选择项就可以了。打开unity3d在菜单中GameObject--UI--Toggle创建一个选择框。设置其位置大小,以及显示Label为One。同样的方式我们创建三个T...

  • 回答 7

    Unity 3D Toggle 控件用于在屏幕上绘制一个开关,通过控制开关的开启与闭合来执行一些具体的操作。当用户切换开关状态时,Toggle 控件的绘制函数就会根据不同的切换动作来返回相应的布尔值。...

  • 回答 8

    android:layout_width  控件高度android:layout_height  控件宽度  ps : fill_parent(高/宽度充满整个屏幕),warp_content(宽/高度为内容实际宽/高度大小))android:text   定义组件的显示文字android:maxLength   最大允许长度android:textCol...

  • 回答 12

    * 姓名:* 密码:* 性别:男女* 邮箱:* 地址: 修改

没有解决我的问题,去提问