unity中的UI先容

[复制链接]
发表于 2025-12-10 10:09:07 | 显示全部楼层 |阅读模式

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

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

×
在unity中,UI组件是创建用户界面的关键元素,内置的UI基于unityEngine.UI定名空间,提供了多种预界说的UI组件和工具用于创建用户界面
  1. Canvas(画布)

功能:Canvas是全部UI元素的根对象,其决定了UI元素怎样渲染以及怎样相应屏幕分辨率的变革
范例:


  • Screen Space - Overlay:UI元素直接绘制在屏幕上,不受摄像机影响
  • Screen Space - Camera:UI元素相对于某个摄像机绘制
  • World Space:UI元素作为3D天下的对象,可以受摄像机视角影响
利用方法:

  • 在Hierarchy视图中右键选择UI->Canvas创建一个新的Canvas
  • 选择Canvas,然后在Inspector视图中设置其Render Mode和干系属性
2. Image(图像)

功能:用于表现图像和颜色
属性:


  • Source Image:设置图像的Sprite
  • Color:设置图像的颜色和透明度
  • Type:可以选择Simple(平常)、Sliced(切片)、Tiled(平铺)等范例
利用方法:

  • 在 Hierarchy 视图中右键选择 UI -> Image 创建一个新的 Image
  • 选中Image,然后在Inspector视图中设置Source Image和其他属性
3. Button(按钮)

功能:用于创建可点击的按钮
属性:


  • Text:按钮上的文本
  • Image:按钮的配景图像
  • Transition:按钮的过渡效果(Color Tint、Sprite Swap、Animation)
  • On Click():按钮点击时触发的事故
利用方法:

  • 在 Hierarchy 视图中右键选择 UI -> Button 创建一个新的按钮
  • 选中按钮,然后在Inspector视图中设置Text、Image和其他属性
  • 在On Click()事故中添加须要实行的函数
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class ButtonHandler : MonoBehaviour
  4. {
  5.     public void OnButtonClicked()
  6.     {
  7.         Debug.Log("Button Clicked!");
  8.     }
  9. }
复制代码
4. Text(文本)

功能:用于表现文本
属性:


  • Text:表现的文本内容
  • Font:利用的字体
  • Color:文本的颜色
  • Alignment:文本的对齐方式

利用方法:

  • 在Hierarchy视图中右键选择UI->Text创建一个新的文本
  • 选中文本,然后在Inspector视图中设置Text、Font和其他属性
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class TextManager : MonoBehaviour
  4. {
  5.     public Text myText;
  6.    
  7.     void Start()
  8.     {
  9.         myText.text = "Hello, Unity!";
  10.     }
  11. }
复制代码
如安在代码中利用Text:
  1. using UnityEngine;
  2. using TMPro;
  3. public class PlayerMovement : MonoBehaviour
  4. {
  5.     public int score = 0;
  6.     public TextMeshProUGUI textComponment;
  7.     public float moveSpeed = 5f;
  8.     void Update()
  9.     {
  10.         //获取水平和垂直输入
  11.         float horizontalInput = Input.GetAxis("Horizontal");
  12.         float verticalInput = Input.GetAxis("Vertical");
  13.         //计算移动方向
  14.         Vector3 moveDirection = new Vector3(horizontalInput, 0, verticalInput).normalized;
  15.         //应用移动
  16.         transform.Translate(moveDirection * moveSpeed * Time.deltaTime);
  17.     }
  18.     // 碰撞器
  19.     //private void OnCollisionEnter(Collision collision)
  20.     //{
  21.     //  if (collision.gameObject.tag == "food")
  22.     //    {
  23.     //        Destroy(collision.gameObject);
  24.     //    }
  25.     //}
  26.     private void OnTriggerEnter(Collider other)
  27.     {
  28.         if (other.tag == "food")
  29.         {
  30.             score++;
  31.             textComponment.text = score.ToString();
  32.             Destroy(other.gameObject);
  33.         }
  34.     }
  35. }
复制代码
若须要利用text,则须要引入TMPro,在界说了textComponment组件后,之后会在unity中出现此组件,然后将Text(TMP)拖到组件框中即可在代码中利用

5. Input Field(输入框)

功能:用于吸取用户输入的文本
属性:


  • Text: 当前输入的文本
  • Placeholder:输入框为空时表现的占位文本
  • Character Limit:输入的最大字符数
  • Line Type: 输入框的行范例(单行、多行、隐蔽输入)
  • On End Edit:输入框失去焦点时触发的事故
利用方法:

  • 在 Hierarchy 视图中右键选择 UI -> Input Field 创建一个新的输入框
  • 选中输入框,然后在Inspector视图中设置Text、Placeholder或其他属性
  • 在On End Edit事故中添加须要实行的函数
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class InputFieldHandler : MonoBehaviour
  4. {
  5.     public InputField myInputField;
  6.     public void OnInputFieldEndEdit(string text)
  7.     {
  8.         Debug.Log("Input: " + text);
  9.     }
  10. }
复制代码
6. Toggle(切换按钮)

功能:用于创建可切换的按钮
属性:


  • Is On: 当前的状态(开或关)
  • Graphic: 切换按钮的图像
  • On Value Changed: 切换按钮状态改变时触发的事故
利用方法:

  • 在 Hierarchy 视图中右键选择 UI -> Toggle 创建一个新的切换按钮
  • 选中切换按钮,然后在 Inspector 视图中设置 Is On 和其他属性
  • 在 On Value Changed 事故中添加须要实行的函数
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class ToggleHandler : MonoBehaviour
  4. {
  5.     public Toggle myToggle;
  6.     public void OnToggleValueChanged(bool isOn)
  7.     {
  8.         Debug.Log("Toggle is: " + (isOn ? "On" : "Off"));
  9.     }
  10. }
复制代码
7. Slider(滑动条)

功能:用于创建可拖动的滑动条
属性:


  • Value: 当前的值
  • Min Value: 最小值
  • Max Value: 最大值
  • On Value Changed: 滑动条值改变时触发的事故
利用方法:

  • 在 Hierarchy 视图中右键选择 UI -> Slider 创建一个新的滑动条
  • 选中滑动条,然后在 Inspector 视图中设置 Value、Min Value、Max Value 和其他属性
  • 在 On Value Changed 事故中添加须要实行的函数
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class SliderHandler : MonoBehaviour
  4. {
  5.     public Slider mySlider;
  6.     public void OnSliderValueChanged(float value)
  7.     {
  8.         Debug.Log("Slider value: " + value);
  9.     }
  10. }
复制代码
8. Dropdown(下拉菜单)

功能: 用于创建下拉菜单
属性:


  • Options: 下拉菜单的选项列表
  • Value: 当前选中的选项索引
  • On Value Changed: 选中选项改变时触发的事故
利用方法:

  • 在 Hierarchy 视图中右键选择 UI -> Dropdown 创建一个新的下拉菜单
  • 选中下拉菜单,然后在 Inspector 视图中设置 Options、Value 和其他属性
  • 在 On Value Changed 事故中添加须要实行的函数
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class DropdownHandler : MonoBehaviour
  4. {
  5.     public Dropdown myDropdown;
  6.     public void OnDropdownValueChanged(int index)
  7.     {
  8.         Debug.Log("Selected option: " + myDropdown.options[index].text);
  9.     }
  10. }
复制代码
9. Scroll Rect(滚动地区)

功能: 用于创建可滚动的地区
属性:


  • Content: 滚动地区的内容
  • Horizontal: 是否启用水平滚动
  • Vertical: 是否启用垂直滚动
  • Scroll Sensitivity: 滚动的灵敏度
利用方法:

  • 在 Hierarchy 视图中右键选择 UI -> Scroll Rect 创建一个新的滚动地区
  • 选中滚动地区,然后在 Inspector 视图中设置 Content、Horizontal、Vertical 和其他属性
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class ScrollRectHandler : MonoBehaviour
  4. {
  5.     public ScrollRect myScrollRect;
  6.     void Update()
  7.     {
  8.         if (Input.GetKeyDown(KeyCode.UpArrow))
  9.         {
  10.             myScrollRect.verticalNormalizedPosition += 0.1f;
  11.         }
  12.         if (Input.GetKeyDown(KeyCode.DownArrow))
  13.         {
  14.             myScrollRect.verticalNormalizedPosition -= 0.1f;
  15.         }
  16.     }
  17. }
复制代码
10. Layout组件

功能: 用于主动分列 UI 元素
常见范例:


  • Horizontal Layout Group: 水平分列子元素
  • Vertical Layout Group: 垂直分列子元素
  • Grid Layout Group: 网格分列子元素
  • Content Size Fitter: 主动调解内容的巨细
  • Aspect Ratio Fitter: 保持内容的宽高比
利用方法:

  • 选择须要应用结构的 GameObject
  • 在 Inspector 视图中点击 Add Component,选择相应的 Layout 组件
  • 设置 Layout 组件的属性,如 Child Alignment、Child Force Expand 等
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表