news 2026/5/14 10:18:10

Unity-登录界面UI制作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unity-登录界面UI制作

文章目录

  • 1. 图片
    • 1.1 添加图片对象
      • 1.1.1 Canvas_Login
      • 1.1.2 Image_Bg
    • 1.2 背景图
      • 1.2.1 拖入图片
      • 1.2.2 修改图片材质
      • 1.2.3 挂载背景图
  • 2. 文字
    • 2.1 添加中文字体
      • 2.1.1 导入字体文件
      • 2.1.2 创建字体资源
    • 2.2 添加界面标题
      • 2.2.1 TextMesh Pro文本对象
      • 2.2.2 添加标题
    • 2.3 添加登录信息
      • 2.3.1 UI文本对象
      • 2.3.2 添加登录信息
    • 2.4 输入信息
      • 2.4.1 添加输入对象
      • 2.4.2 密码加密
    • 2.5 登录按钮
  • 3. 代码
    • 3.1 Login脚本
    • 3.2 挂载脚本
      • 3.2.1 空对象
      • 3.2.2 挂载脚本
      • 3.2.3 脚本输入信息关联
      • 3.2.3 添加触发事件
    • 3.3 场景
  • 4. 常见错误
    • 4.1 交互失败
    • 4.2 InputField拖拽赋值失败
    • 4.3 字体不显示

1. 图片

1.1 添加图片对象

1.1.1 Canvas_Login

1)在Hierarchy面板空白处右键,选择UICanvas,本文将其命名为Canvas_Login

2)选中刚刚创建的画布Canvas_Login,在Inspector面板,在Render Mode选择合适的渲染模式,本文是默认的,没有选择

Render Mode特点
Screen Space - OverlayUI 会直接绘制在屏幕最顶层,不受相机影响
Screen Space - CameraUI 元素会附加到指定的相机上。这能更好地控制 UI 的缩放和位置。当屏幕分辨率变化或 UI 元素被其他元素遮挡时,可能会出现视觉上的错位
World SpaceUI 元素会作为场景中的 3D 对象存在

1.1.2 Image_Bg

右键点击刚刚创建的画布Canvas_Login,选择UIImage,这个作为登录界面的背景,本文将其,命名为Image_Bg

选中刚刚创建的背景Image_Bg,在Inspector面板,点击center图标,按住Alt键(关键!自动适配父物体)后,再点击右下角图标,这样背景将会铺满整个屏幕

1.2 背景图

1.2.1 拖入图片

将准备好的图片拖入项目文件夹里

1.2.2 修改图片材质

选中拖入的图片,在Inspector面板,在Texture Type选项里选择Sprite (2D and Ul),之后点击Apply

成功后如下所示

1.2.3 挂载背景图

选中Image_Bg,将修改后的图片拖拽至Source lmage

2. 文字

2.1 添加中文字体

不需要额外增加字体,也可以跳过此小节内容

2.1.1 导入字体文件

在网上下载中文字体(.ttf /.otf)文件
将此字体文件保存至Unity项目的Assets文件夹下的任意一个文件夹里

2.1.2 创建字体资源

不使用TextMesh Pro可以跳过此步骤
右键点击导入的字体文件,选择CreateTextMeshProFont Asset

创建成功后如下

2.2 添加界面标题

2.2.1 TextMesh Pro文本对象

创建一个TextMesh Pro文本对象,在Hierarchy面板空白处右键,选择UIText - TextMeshPro
本文将创建完的文本对象命名为Text (TMP)_title

Inspector面板中,将刚刚创建的字体资源拖到** Font Asset** 属性中。

2.2.2 添加标题

选中Text (TMP)_title,在Inspector面板里对字体进行编辑

若文字字体设置过大,文字内容可能显示不完全,这时扩大文字矩形框或减小字体即可

拖动白色矩形框可以改变文字短形框的大小
拖动坐标系箭头可以移动文字短形框的位置

2.3 添加登录信息

2.3.1 UI文本对象

因为此处的文字不需要很强的文本效果,所以使用的是Unity的标准UI文本的方式再添加两个文本对象,分别命名为Text_userText_password

Hierarchy面板空白处右键,选择UI→ **Text **

Inspector面板中,将字体文件拖到** Font **属性中。

2.3.2 添加登录信息

选中文本对象,在Inspector面板里对字体进行编辑,也可以对文字矩形框进行编辑

2.4 输入信息

2.4.1 添加输入对象

Hierarchy面板空白处右键,选择UIInputField
创建2个这个的对象
本文分别命名为InputField__userInputField__password

Placeholder是输入框里的提示信息,同样这里也可以对文字样式进行设置、文字矩形框大小及位置调整

2.4.2 密码加密

选中InputField__password,在Content Type选项里选择Password,那么在输入密码时会加密,看不见输入的密码

2.5 登录按钮

Hierarchy面板空白处右键,选择UIButton
本文将其设置为Button_Login
这里同样有个文本对象,自行设置即可

3. 代码

3.1 Login脚本

Assets文件夹下的任意文件夹里,在Project面板空白处右键,选择CreateC# Script创建脚本,命名为Login
脚本首字母大写,创建的时候就命名,不然容易出错

然后打开脚本进行编辑,双击脚本即可
本文用的是Visual Studio 2019软件打开,此软件和unity软件有必要进行关联,关联的操作详情见博文里的4. Unity和Visual Studio关联
脚本打开后如下所示

脚本内容如下

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class Login : MonoBehaviour { public InputField InputField__user; public InputField InputField__password; public void OnLoginButtonClick() { string username = InputField__user.text; string password = InputField__password.text; if (username == "1" && password == "2"); { //加载下一个场景,2025data2是场景名 SceneManager.LoadScene("2025data2"); } } }

3.2 挂载脚本

3.2.1 空对象

Hierarchy面板空白处右键,选择Create Empty,创建空对象,本文将其命名为Login

3.2.2 挂载脚本

将脚本拖拽至空对象上,成功后会在Hierarchy面板上显示

3.2.3 脚本输入信息关联

选中脚本挂载的空对象Login,将InputField__userInputField__password拖拽至对应的位置

3.2.3 添加触发事件

选中登录按钮Button_Login,在Hierarchy面板On Click ()处点击+

然后将脚本挂载的空对象Login拖拽至对应的位置

选择触发事件OnLoginButtonclick ()

3.3 场景

1)
Hierarchy面板场景处右键,选择Add New Scene
保存这个场景,这个场景的命名与脚本里跳转至下一个场景的名称一致
本文将登录界面场景另存命名为Login,跳转的场景命名为2025data2

2)
运行前此项目必须包含新建的场景

FileBuild Settings…
这里必须包含下一个要跳转的场景,可以点击Add Open Scenes进行添加,或者直接将场景拖拽至此处的空白处

至此整个项目完成,点击运行即可

4. 常见错误

4.1 交互失败

若是无法交互,右键点击,在UI里创建一个EventSystem对象(事件系统)
若是场景已配置MRTK(已自带事件系统),则无需再添加事件系统,

4.2 InputField拖拽赋值失败

如果创建的是Input Field - TextMeshPro,那么在脚本里就需要把数据类型从InputField改成TMP_InputField,并且需要引用TMPro命名空间,才能正常使用

using TMPro; public TMP_InputField InputField__user; public TMP_InputField InputField__password;

4.3 字体不显示

情况描述:
InputField输入对象字体不显示,在Inspector面板里双击文字对象,在Scene面板里能看见文字框以及背景色,但是没有文字内容

解决方法:

  1. 先检查文字颜色是否与背景色相同,改变文字颜色
  2. 检查文字字体大小
  3. 确保文字在显示范围
    1)选中InputField 的Text子对象(若创建的是Input Field - TextMeshPro,则选中Text Area即可)
    2)在Inspector面板里,查看Rect Transform组件
    按住Alt键(关键!自动适配父物体),选择 “拉伸上下左右”(四个方向全拉伸,对应锚点四个角都贴紧 InputField 边缘)

此操作与前面1.1.2 Image_Bg使图片铺满整个背景一致

3)确认Rect TransformLeft、Right、Top、Bottom值均为 0,Width和Height与 InputField 一致,确保文字显示区域完全贴合 InputField 范围

参考视频
Unity登录界面相关UI制作,新手小白可学。
新手可学,Unity登录界面—脚本程序编写。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 10:16:03

健身器材识别检测数据集VOC+YOLO格式2775张23类别有增强

注意数据集中超过一半都是增强图片,主要是旋转增强噪声增强图片数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):2775标注数量(xml…

作者头像 李华
网站建设 2026/5/14 10:14:01

RTX3050移动版Ubuntu驱动安装:从黑屏到成功的降级实战

1. 为什么RTX3050移动版在Ubuntu上装驱动这么难? 最近帮朋友折腾一台搭载RTX3050移动版显卡的游戏本,装Ubuntu系统时遇到了经典的黑屏问题。这让我想起自己三年前第一次在笔记本上装Linux时,也是被Nvidia驱动折磨得死去活来。为什么移动版显卡…

作者头像 李华
网站建设 2026/5/14 10:12:14

3分钟掌握AI换脸神器:roop-unleashed从入门到精通

3分钟掌握AI换脸神器:roop-unleashed从入门到精通 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 想要在视频中轻松替换人脸却担心技术门槛太高…

作者头像 李华
网站建设 2026/5/14 10:09:16

别再只画图了!用Python pywt库实战信号降噪:DWT分解与重建保姆级教程

Python信号降噪实战:基于pywt库的DWT分解与重建全流程指南 传感器数据中的噪声总是让人头疼——那些不规则的波动像幽灵一样干扰着真实信号的提取。传统滤波方法往往在消除噪声的同时也抹去了关键细节,而小波变换就像一把智能手术刀,能够精准…

作者头像 李华
网站建设 2026/5/14 10:06:10

FakeLocation深度解析:基于Xposed框架的Android应用级位置模拟技术

FakeLocation深度解析:基于Xposed框架的Android应用级位置模拟技术 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation FakeLocation是一款基于Xposed框架的Android位置模…

作者头像 李华
网站建设 2026/5/14 10:05:09

G-Helper终极指南:3步快速释放华硕笔记本隐藏性能

G-Helper终极指南:3步快速释放华硕笔记本隐藏性能 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expert…

作者头像 李华