首页 > 其他分享 >Unity3D:扩展设备模拟器

Unity3D:扩展设备模拟器

时间:2023-06-26 11:25:59浏览次数:40  
标签:TouchCount Unity3D 插件 扩展 private TouchCountLabel UI 模拟器

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

扩展设备模拟器

设备模拟器支持插件来扩展其功能并在模拟器视图中更改控制面板的 UI。

创建插件

若要创建设备模拟器插件,请扩展设备模拟器插件类。

若要将 UI 插入设备模拟器视图,插件必须:

  • 重写该属性以返回非空字符串。title
  • 重写该方法以返回包含 UI 的可视元素。OnCreateUI

如果插件不满足这些条件,设备模拟器将实例化插件,但不会在模拟器视图中显示其 UI。

下面的示例演示如何创建一个插件,该插件重写 title 属性并将 UI 添加到模拟器视图。

public class TouchInfoPlugin : DeviceSimulatorPlugin
{
    public override string title => "Touch Info";
    private Label m_TouchCountLabel;
    private Label m_LastTouchEvent;
    private Button m_ResetCountButton;

    [SerializeField]
    private int m_TouchCount = 0;

    public override void OnCreate()
    {
        deviceSimulator.touchScreenInput += touchEvent =>
        {
            m_TouchCount += 1;
            UpdateTouchCounterText();
            m_LastTouchEvent.text = $"Last touch event: {touchEvent.phase.ToString()}";
        };
    }

    public override VisualElement OnCreateUI()
    {
        VisualElement root = new VisualElement();
        
        m_LastTouchEvent = new Label("Last touch event: None");
        
        m_TouchCountLabel = new Label();
        UpdateTouchCounterText();

        m_ResetCountButton = new Button {text = "Reset Count" };
        m_ResetCountButton.clicked += () =>
        {
            m_TouchCount = 0;
            UpdateTouchCounterText();
        };

        root.Add(m_LastTouchEvent);
        root.Add(m_TouchCountLabel);
        root.Add(m_ResetCountButton);
            
        return root;
    }

    private void UpdateTouchCounterText()
    {
        if (m_TouchCount > 0)
            m_TouchCountLabel.text = $"Touches recorded: {m_TouchCount}";
        else
            m_TouchCountLabel.text = "No taps recorded";
    }
}

此文由3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D:添加设备 (mvrlink.com)

下一篇:Unity3D:扩展设备模拟器 (mvrlink.com)

标签:TouchCount,Unity3D,插件,扩展,private,TouchCountLabel,UI,模拟器
From: https://www.cnblogs.com/mvrlink/p/17505150.html

相关文章

  • adb连接夜神模拟器
    adb连接安卓模拟器一.检查夜神nox_adb.exe的版本与本地的adb版本是否一致如果本地adb和夜神adb版本不一致,会相互查杀1.检查本地adb的版本在cmd命令行中输入:adbversion,为1.0.41版本2.检查夜神中nox_adb.exe版本进入到夜神的安装包的bin目录下,按住shif,点击右键,打开Powershell在命令......
  • VS Code扩展Browser Preview调试Web
    在扩展库里添加后,选择好html网页后执行(Openin BrowserPreview)右键点击: 打开例子为:yeoman创建officeexcel ......
  • 如何扩展及优化CI/CD流水线?
    如今应用程序的开发通常由多个开发人员组成的团队完成。每个人或团队在项目中发挥自己的作用,然后我们发现在项目的末尾总是有几段代码需要编译,根据每个人的工作方法,管理这种集成可能会浪费很多时间。持续集成和持续交付/部署(CI/CD)便用来解决该问题,确保发布更新顺利进行,避免不必要......
  • Tapdata 重磅更新已就绪!全托管云服务上线,应用场景再扩展
    继5月举办的「连接1次孤岛,服务N个场景」主题产品发布会后,TapdataLiveDataPlatform现已实现功能特性的全面升级,并基于自身产品能力积极探索在应用场景层面的落地实践及无限可能。在去年6月的Tapdata2.0发布会上,自带ETL的实时数据平台TapdataLDP带着最新......
  • 工厂工业自动化PLC扩展IO模块模拟量接口
    MxxxT工业远程以太网I/O数据采集模块是一种高性能、高可靠性的工业级设备,其具有多种输入输出接口,可以广泛应用于物联网产业链中的M2M行业以及自动化控制场合。本文将从该模块的特点、应用领域和优势等方面进行详细介绍。一、特点1.工业级电路设计:MxxxT采用工业级电路设计,具......
  • UEFI(统一的可扩展固件接口)规范是为计算机系统的启动过程和运行时环境提供标准化接口的
    UEFI(统一的可扩展固件接口)规范是为计算机系统的启动过程和运行时环境提供标准化接口的规范。以下是目前已发布的主要UEFI规范版本:UEFI2.0:这是第一个发布的UEFI规范版本,于2006年推出,提供了基本的UEFI功能和接口。UEFI2.1:在2007年发布,增加了对IPv6网络协议和相关功能的支持。UE......
  • Linux扩展篇-shell编程(八)-shell字符串截取
    shell字符串截取,一般包含从指定位置和从指定字符截取。一、从指定位置截取从字符串左边开始计数格式:${string:start:length}从string字符串的左边第start个字符开始,向右截取length个字符。${string:start}从string字符串的左边第start个字符开始截取,直到最......
  • UEFI(统一的可扩展固件接口)是一种新一代的计算机固件接口标准,它取代了传统的基本输入/
    UEFI(统一的可扩展固件接口)是一种新一代的计算机固件接口标准,它取代了传统的基本输入/输出系统(BIOS)。UEFI提供了更强大、更灵活的功能,包括更好的系统启动支持、更高级的安全性、更强大的硬件兼容性和扩展性等方面的改进。下面是UEFI各个版本的功能更新:UEFI2.0:UEFI2.0是UEFI初始......
  • 关于lvm磁盘管理-lv的大小调整-lv的扩展与缩减
    关于lvm磁盘管理中,lv的扩展可以使用lvextend命令,lv的缩减可以使用lvreduce命令另外还有一个lvresize命令,为调整lv的大小,既可以扩容/扩展,也可以缩减,用户与lvextend和lvreduce差第一部分,关于lv的扩展-扩容以如下一个叫lvData的lv为例,大小为1G[root@qq-5201351~]#lvs|greplv......
  • Unity3D:扩展设备模拟器
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生扩展设备模拟器设备模拟器支持插件来扩展其功能并在模拟器视图中更改控制面板的UI。创建插件若要创建设备模拟器插件,请扩展设备模拟器插件类。若要将UI插入设备模拟器视图,插件必须:重写该属性以返回非空字......