开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

蛮牛译馆

关注:579

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 1286|回复: 17

[Unity教程] 添加和管理输入字段

[复制链接]  [移动端链接]
排名
7947
昨日变化
5

260

主题

298

帖子

1511

积分

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
159865
好友
9
蛮牛币
3908
威望
0
注册时间
2016-8-1
在线时间
623 小时
最后登录
2017-10-15

蛮牛译员

发表于 2017-8-26 17:31:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
添加和管理输入字段

今天我们来看看输入字段。这些字段在您的游戏中可以非常有用,适用于各种应用,包括:保存用户名,或询问用户问题并记录答案。本教程将非常简短,只需要7-10分钟的时间。准备好了,一起来设置···

必要条件


要开始本教程,您将需要以下内容:

  • 熟悉Unity的界面
  • 知道如何创建脚本
  • 知道如何在C#中编写基本代码
  • 添加输入字段






请创建一个新场景(文件>新场景)
  • 如果您希望使用位于左上角的2D按钮,现在可以切换到2D模式。
  • 创建一个新的输入域(GameObject | UI | Input Field
download.png



  • 这应该创建一个新的Canvas对象作为一个名为Input Field的新对象;在此对象中,您还将看到两个名为PlaceholderText的对象,如下图所示。
  • 播放你的场景:你应该可以看到这个字段,如下图所示。
download (1).png






在这个阶段我们可以在这个字段中输入文字;然而,当用户按下“Enter”键或我们选择的另一个按钮时,我们需要找到一种存储此信息的方法
download (3).png


检测用户何时按Enter键并存储字段值

因此,为了能够检查用户是否已经验证了其输入(例如,通过按“Enter”键),我们将创建一个脚本来检测何时发生;此脚本将存储在字段中输入的值。


  • 请创建一个新的C#脚本
  • 将此脚本命名为DetectText(或您选择的任何其他名称)
  • 将此脚本添加到对象InputField
  • 打开此脚本进行编辑
  • 在启动功能中,请添加以下代码


[C#] 纯文本查看 复制代码
gameObject.GetComponent <InputField>()onEndEdit.AddListener(displayText)。


在以前的代码中,我们执行以下操作:

  • 我们访问与此脚本链接的对象(即InputField)的InputFieldComponent
  • 然后我们使用onEndEdit事件,这意味着我们将在用户完成他/她的文本编辑后进行跟踪。
  • 当这种情况发生时,我们将调用一个名为displayText的函数(我们还必须创建)
  • 所以总结一下,我们为onEndEdit的事件创建一个事件监听器,它将被链接到函数displayText。所以这个功能会“处理”事件。


最后,我们只需要创建这个功能:


请在DetectText类中添加以下代码
[C#] 纯文本查看 复制代码
private void displayText(string textInField)
{
print(textInField);
}


请保存您的代码。

您现在可以通过执行以下操作来进行文字处理:

  • 播放场景
  • 在文本字段中输入文本
  • Enter”键
  • 查看检查器,看看文本是否显示在那里


使用按钮验证条目

在这个阶段,我们可以保存现场输入的文字;然而,我们可以添加一个按钮,玩家需要按下以保存文本,并继续进行休息,如果游戏。所以我们可以这样做:

请创建一个新的Button(GameObject | UI | Button);这应该创建一个名为Button的新对象以及一个名为text的对象,如下图所示。
download (4).png

您可能会注意到,此按钮包含一个名为Button的脚本;该组件包含一个名为onClik()的部分,用于指定用户单击此按钮时应发生的情况;
download (5).png
暂时的,这个字段是空的;我们需要创建并添加一个对象到这个部分,其中包括按钮被按下的所有逻辑(代码)。


所以,我们来创建这个对象。

  • 请创建一个新的空对象(Game Object | Create Empty
  • 重命名此对象manageClick(或您选择的任何其他名称)
  • 创建一个新的C#脚本
  • 称为SaveName


将以下方法添加到此类中,如下所示

[C#] 纯文本查看 复制代码
public void submitName ()
{
string name = GameObject.Find ("InputField").GetComponent<InputField>().text;
print ("Saving "+name);
}


在前面的代码中:

  • 我们创建一个名为submitName的新方法
  • 我们创建一个名为name的字符串
  • 然后,我们访问在输入字段中键入的文本,并将其保存在变量名称中


所以在这个阶段,我们创建了一个包含一个函数(submitName)的对象,该按钮被按下时可以被调用;我们只需要将该功能链接到按钮

请执行以下操作:
  • 选择名为Button的对象
  • 在检查器中,单击位于称为Button的组件中的+按钮
download (6).png
  • 这应该创建一个新的空字段(无对象),如下图所述。
download (7).png





  • 拖放对象
  • 将对象manageClick拖放到此空白字段
download (8).png





一旦完成,我们只需要指定连接到我们刚刚拖放的对象的什么功能,应该用于单击按钮的情况。

  • 单击下拉列表,标签为无功能,然后选择保存名称| SubmitName
download (9).png






通过这样做,我们说如果按下按钮,应该调用函数submitName(可从文件/类SaveName获得)。

  • 您可以将按钮移动到您选择的位置
  • 您还可以通过访问位于对象Button内的对象文本来重命名其标签,然后修改其文本组件
download (10).png

download (11).png





完成之后,您可以播放场景,并在文本字段中键入文本并按按钮后,会在控制台窗口中显示一条消息,其中显示文本字段中输入的文本。


相关文章:


回复

使用道具 举报

2初来乍到
107/150
排名
16231
昨日变化
4

3

主题

51

帖子

107

积分

Rank: 2Rank: 2

UID
213367
好友
0
蛮牛币
215
威望
0
注册时间
2017-3-21
在线时间
25 小时
最后登录
2017-9-4
发表于 2017-8-26 23:42:28 | 显示全部楼层
先Mark,有时间再看

回复 支持 反对

使用道具 举报

5熟悉之中
579/1000
排名
4856
昨日变化
29

0

主题

217

帖子

579

积分

Rank: 5Rank: 5

UID
122160
好友
0
蛮牛币
1143
威望
0
注册时间
2015-9-10
在线时间
140 小时
最后登录
2017-10-23
发表于 2017-8-28 09:04:36 | 显示全部楼层
感谢分享

回复

使用道具 举报

8常驻蛮牛
5708/10000
排名
245
昨日变化

0

主题

2835

帖子

5708

积分

Rank: 8Rank: 8

UID
3215
好友
0
蛮牛币
308
威望
0
注册时间
2013-9-4
在线时间
1287 小时
最后登录
2017-10-23
发表于 2017-8-28 15:48:04 | 显示全部楼层
的的顶顶顶顶顶的顶顶顶顶顶

回复 支持 反对

使用道具 举报

5熟悉之中
624/1000
排名
5364
昨日变化
41

1

主题

264

帖子

624

积分

Rank: 5Rank: 5

UID
216583
好友
1
蛮牛币
899
威望
0
注册时间
2017-4-7
在线时间
161 小时
最后登录
2017-10-23
发表于 2017-8-31 15:27:46 | 显示全部楼层
挺不错的分享,谢谢

回复 支持 反对

使用道具 举报

5熟悉之中
749/1000
排名
6511
昨日变化
54

6

主题

385

帖子

749

积分

Rank: 5Rank: 5

UID
183904
好友
3
蛮牛币
1629
威望
0
注册时间
2016-11-15
在线时间
206 小时
最后登录
2017-10-23
QQ
发表于 2017-9-4 11:23:01 | 显示全部楼层
[发帖际遇]: zzzzzzZ 发帖时在路边捡到 1 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

排名
28225
昨日变化
22

0

主题

16

帖子

28

积分

Rank: 1

UID
192209
好友
0
蛮牛币
38
威望
0
注册时间
2017-9-9
在线时间
4 小时
最后登录
2017-9-14
发表于 2017-9-9 17:34:54 | 显示全部楼层
感谢分享6666666666

回复 支持 反对

使用道具 举报

排名
15734
昨日变化
7

0

主题

42

帖子

85

积分

Rank: 2Rank: 2

UID
237109
好友
0
蛮牛币
235
威望
0
注册时间
2017-8-11
在线时间
13 小时
最后登录
2017-9-27
发表于 2017-9-14 07:23:32 | 显示全部楼层
6666666666666666666666666
[发帖际遇]: xiangzi_27 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

5熟悉之中
571/1000
排名
5320
昨日变化
38

0

主题

222

帖子

571

积分

Rank: 5Rank: 5

UID
220310
好友
0
蛮牛币
906
威望
0
注册时间
2017-5-2
在线时间
151 小时
最后登录
2017-10-23
发表于 2017-9-20 10:20:40 | 显示全部楼层

回复

使用道具 举报

5熟悉之中
629/1000
排名
4480
昨日变化
26

1

主题

223

帖子

629

积分

Rank: 5Rank: 5

UID
206337
好友
2
蛮牛币
2036
威望
0
注册时间
2017-6-5
在线时间
157 小时
最后登录
2017-10-23
发表于 2017-9-21 16:03:08 | 显示全部楼层
这年头我能看懂的帖子不多了,我是有多菜。。。

回复 支持 反对

使用道具 举报

排名
51807
昨日变化
16

0

主题

3

帖子

5

积分

Rank: 1

UID
245299
好友
0
蛮牛币
3
威望
0
注册时间
2017-9-21
在线时间
1 小时
最后登录
2017-9-27
发表于 2017-9-21 20:04:23 | 显示全部楼层
谢谢楼主分享

回复

使用道具 举报

3偶尔光临
160/300
排名
11558
昨日变化
9

0

主题

64

帖子

160

积分

Rank: 3Rank: 3Rank: 3

UID
176116
好友
0
蛮牛币
203
威望
0
注册时间
2016-10-17
在线时间
40 小时
最后登录
2017-10-16
发表于 2017-9-24 20:58:30 | 显示全部楼层
居然看不懂

回复

使用道具 举报

3偶尔光临
160/300
排名
11558
昨日变化
9

0

主题

64

帖子

160

积分

Rank: 3Rank: 3Rank: 3

UID
176116
好友
0
蛮牛币
203
威望
0
注册时间
2016-10-17
在线时间
40 小时
最后登录
2017-10-16
发表于 2017-9-25 09:11:15 | 显示全部楼层
还是看不懂

回复

使用道具 举报

2初来乍到
139/150
排名
14891
昨日变化
2

0

主题

77

帖子

139

积分

Rank: 2Rank: 2

UID
243160
好友
0
蛮牛币
241
威望
0
注册时间
2017-9-13
在线时间
26 小时
最后登录
2017-10-22
发表于 2017-9-30 11:44:19 | 显示全部楼层
Mark一下

回复

使用道具 举报

5熟悉之中
637/1000
排名
3931
昨日变化
5

0

主题

161

帖子

637

积分

Rank: 5Rank: 5

UID
144229
好友
0
蛮牛币
968
威望
0
注册时间
2016-4-1
在线时间
188 小时
最后登录
2017-10-19
发表于 2017-10-10 10:05:57 | 显示全部楼层
感谢楼主分享

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表