简易虚拟培训系统-UI控件的应用3

这篇具有很好参考价值的文章主要介绍了简易虚拟培训系统-UI控件的应用3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Button组件的组成

Button组件方法1-在Button组件中设置OnClick()回调

Button组件方法2-在脚本中添加Button类的监听


  上一篇使用了文件流读取硬盘数据并显示在Text组件中,本篇增加使用按钮来控制显示哪一篇文字信息。

Button组件的组成

  1. 新建Button:如果使用的按键较多,可以在Canvas下建立一个空节点(Buttons)放置所有的Button,在Buttons上点右键->UI->Button

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  2. Button的结构:包括一个Button和一个子节点Text。

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity  简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  3. Button控件:这里介绍比较常用的参数

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  (1)SourceImage:可以通过它选择按钮的背景图片,比如

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  (2)Button组件中的Transition,当选择为ColorTint选项时,可以设置鼠标(或其他射线)悬停或按下按钮时Button的颜色变化;当选择为SpriteSwap时,可以相应地选择悬停或按下等操作时显示的图片

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity  简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  (3)Button组件中的OnClick():按钮按下时的回调函数设置。这是最重要的部分,在后文中详细解释使用方法

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  (4)Button的子节点Text组件:可以编辑在按钮上显示的文字

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity 简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  下面介绍如何设置按下Button时执行相应的操作,一般使用以下2种方式:

Button组件方法1-在Button组件中设置OnClick()回调

  1. 写一个测试脚本,就使用之前使用文件流显示文本的脚本,再加上下面的函数。按下“系统说明”的按钮后,将介绍的文本显示出来。

    public void OnSysIntro()
    {//系统介绍按钮
        introText.text = ReadTxt("introTxt", "01_systemIntro");
    }

  完整代码如下:

public class textShow : MonoBehaviour
{
    public TMP_Text introText;  //载入显示文本的Text控件
    
    // 读取txt文本内容的方法
    public static string ReadTxt(string fileName,string txtFile)
    {
        string path= "Assets/Resources/" + fileName + "/" + txtFile + ".txt";
        string content="未读到文件内容";
        FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
        StreamReader sr = new StreamReader(fs, Encoding.UTF8);
        if (null == sr)
            Debug.Log("读取失败");
        else
            content = sr.ReadToEnd();
        sr.Close();
        return content;
    }

    public void OnSysIntro()
    {//系统介绍按钮
        introText.text = ReadTxt("introTxt", "01_systemIntro");
    }
}

  2. 前文中这个脚本挂在了空节点Empty上,并拖入Text的节点(详见前文);

  3. 在“系统介绍”按钮的OnClick()中点击“+”号

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  添加一项响应事件:

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  4. 将挂载上面这个textShow.cs脚本的Empty节点拖到Object变量中

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  5. 选择textShow.cs脚本中的OnSysIntro()函数,这样就让“系统说明”按钮和OnSysIntro()函数发生了关联:

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

6. 运行结果

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

Button组件方法2-在脚本中添加Button类的监听

  这也是常用的按钮回调方法,在机械臂场景中使用过。方法如下:

  1. 上面的脚本添加一个类型为Button的公共变量,以便于将按钮载入:

public Button introSysBtn;  //载入系统介绍按钮

  2. 在Start()方法中添加一个按钮按下的监听事件,回调函数就是脚本中定义的OnSysIntro()函数:

introSysBtn.onClick.AddListener(OnSysIntro);  //添加系统介绍按钮的监听

  3. 脚本依旧挂在Empty节点不变,不过需要将响应的按钮拖到变量中:

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  4. 运行效果与上面的方法一样。全部脚本如下:

using UnityEngine;
using TMPro;
using UnityEngine.UI;
using System.IO;
using System.Text;

public class TestUI : MonoBehaviour
{
    public TMP_Text introText;  //载入显示文本的Text控件
    public Button introSysBtn;  //载入系统介绍按钮

    void Start()
    {
        introSysBtn.onClick.AddListener(OnSysIntro);  //添加系统介绍按钮的监听
    }


    // 读取txt文本内容的函数
    public static string ReadTxt(string fileName,string txtFile)
    {
        string path= "Assets/Resources/" + fileName + "/" + txtFile + ".txt";
        string content="未读到文件内容";
        FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
        StreamReader sr = new StreamReader(fs, Encoding.UTF8);
        if (null == sr)
            Debug.Log("读取失败");
        else
            content = sr.ReadToEnd();
        sr.Close();
        return content;
    }

    public void OnSysIntro()
    {//系统介绍按钮
        introText.text = ReadTxt("introTxt", "01_systemIntro");
    }
}

小示例-使用Button实现基本界面

  1. 使用上面的脚本和步骤,可以实现除“测试答题”、“开始操作”之外的按钮。

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity 简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity

  2. “开始操作”按钮的实现:这个按钮的作用是隐藏上面的主面板,显示操作面板

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity  

  增加如下脚本,在Start()之前载入需要控制的两个面板,并增加按钮的回调函数,控制面板的激活和失活:

public GameObject mainCanvas, operateCanvas;  //载入主面板、操作面板
    public void OnOpeBtn()
    {//显示操作面板
        mainCanvas.SetActive(false);   //隐藏主面板
        operateCanvas.SetActive(true); //显示操作面板
    }

  最后,别忘记给这两个面板的GameObject变量赋值:

简易虚拟培训系统-UI控件的应用3,UnityVR-UI交互,ui,unity文章来源地址https://www.toymoban.com/news/detail-683419.html

到了这里,关于简易虚拟培训系统-UI控件的应用3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VR虚拟仿真技术应用到外事警察岗位技能培训的场景及优势

    VR治安民警常态化工作实战教学演练是一种利用VR虚拟现实制作和web3d开发技术进行治安民警培训和实战演练的新型教学模式。相较于传统的培训方式,VR治安民警常态化工作实战教学演练具有以下优点: VR实战是一种完全虚拟的实战训练方式,他可以根据需求完整的虚构出一

    2024年02月04日
    浏览(85)
  • UnityVR--UIManager--UI管理1

    目录 前言 UI节点的结构 需要用到的组件   1. CanvasGroup   2. Button等控件的OnClick()监听   3. EventTrigger 建立UI工具集   1. 管理UI节点   2.  UIBase包含了以下的工具 建立分面板的管理工具——以主面板MainUi为例   UI在项目中的重要性不言而喻,并且UI控件的种类繁多(UGUI简单介绍

    2024年02月11日
    浏览(28)
  • UnityVR--UIManager--UI管理2

    目录 前言  UIManger的实现   1.  需要用到的变量和数据   2. 在构造中的工作   3. 初始化面板   4. 显示面板 5. 隐藏面板和隐藏所有面板   6. 其他小工具  在场景中实现   1.  不同面板的类型设置   2.  场景中的设置   接前篇,上一篇已经有了UITools.cs其中定义了UI面板需要使

    2024年02月13日
    浏览(33)
  • VR智能家居虚拟连接仿真培训系统重塑传统家居行业

    家居行业基于对场景的打造及设计,拥有广阔前景,是众多行业里面成为最有可能进行元宇宙落地的应用场景之一。 家居行业十分注重场景的打造及设计,而元宇宙恰恰能通过将人工智能、虚拟现实、大数据、物联网等技术融合提升,带来身临其境的感官体验。简单来讲,就

    2024年02月07日
    浏览(50)
  • 基于 HTML5 WebGL 与 WebVR 3D 虚拟现实的可视化培训系统

    2019 年 VR , AR , XR , 5G , 工业互联网 等名词频繁出现在我们的视野中,信息的分享与虚实的结合已经成为大势所趋, 5G 是新一代信息通信技术升级的重要方向,工业互联网是制造业转型升级的发展趋势。本文所讲的 VR 是机械制造业与设备的又一次交流,当技术新星遇上制造潮

    2024年02月22日
    浏览(45)
  • 界面控件DevExpress WinForm中文教程 - 如何应用Windows 11 UI?

    DevExpress WinForm拥有180+组件和UI库,能为 Windows Forms 平台创建具有影响力的业务解决方案。 DevExpress WinForm 能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! DevExpress WinForm组件允许开发人员轻松地引入受

    2024年02月08日
    浏览(54)
  • 界面控件Telerik UI for WPF——Windows 11主题精简模式提升应用体验

    Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。Telerik UI for WPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成Visual Studio工具箱中。 随着最近R2 2023的发布,Telerik

    2024年02月10日
    浏览(56)
  • UnityVR--机械臂场景8-三自由度逆向解算3-应用在ABB机械臂

    目录 1. ABB机械臂形态 2. ABB机械臂数学模型分析 3. 初步程序实现 4. 误差分析 5. 最终实现   前文已经在Unity中,将3自由度机械臂的数学模型实现出来了,现在我们将它实际应用于机械臂中。选用的机械臂3D模型是ABB IRB 4600工业机器人,来自AssetStore。    (图片来自ABB官网)

    2024年02月10日
    浏览(46)
  • UnityVR两种配置方法-----PC上运行VR设备/跨平台打包VR应用到Oculus或者Pico

    ①Source Files: ProjectSetting → XR Plugin Management → OpenXR → Interaction Profiles → Choice Divices And Profile ②Interaction toolkit: PackageManager → OpenXR Plugin  +  XR Plugin Management  + XR Interaction Toolkit(导入Samples) ③Samples Folder(配置文件):添加到预设Preset Defult Continuous Move/turn Defult Left/right controller

    2024年02月05日
    浏览(48)
  • Fabric V2.5 通用溯源系统——应用前端部分设计及简易二次开发

    本节对Fabric V2.5 通用溯源系统的前端部分做一个简单的介绍。包括目录结构、文件作用简述、用户注册登录实现、农产品信息上链溯源实现的介绍。同时提供了简易二次开发的教程(面向需要在短时间内二次开发),将本项目修改为商品溯源项目,仅修改前端部分。 本节内容

    2024年04月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包