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

Unity3D:扩展设备模拟器

时间:2023-06-25 09:22:59浏览次数:50  
标签: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/17502122.html

相关文章

  • unity3D:添加设备
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生添加设备若要将新设备添加到设备模拟器,请创建设备定义和设备覆盖。设备定义是Unity项目中扩展名的文本文件。它包含描述设备属性的JSON。.device设备覆盖是包含设备屏幕边框的图像,以及凹口、打孔和屏幕矩形......
  • [ARM 汇编]高级部分—性能优化与调试—3.4.3 使用模拟器进行调试与测试
    在ARM汇编程序开发过程中,使用模拟器(emulator)进行调试和测试是一种非常有效的方法。模拟器可以在不同的处理器上测试代码,帮助我们发现潜在的问题,并提供丰富的调试功能。本节将介绍如何使用QEMU(一个流行的开源模拟器)进行ARM汇编程序的调试和测试。安装QEMU首先,我们需要安装QEMU......
  • 系统复杂度之【可扩展性】
    紧接着我们来聊聊可扩展性。可扩展性是指,软件系统具备面对未来需求变化而进行扩展的能力。系统可根据新的需求做出少量或者不需要修改,无需对整个系统进行重构或重建。由于软件系统变化多端,新的需求不断提出,因此可扩展性非常重要。为解决可扩展性带来的问题,面向对象思想的提出,设......
  • Unity3D:模拟类
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生模拟类设备模拟器提供模拟类,可用于测试响应设备模拟器中特定于设备的行为的代码。以下模拟类位于UnityEngine.Device命名空间中:应用屏幕系统信息这些模拟类具有与其常规UnityEngine命名空间对应项相同......
  • 互联网面试常见100题精析-题目剖析、解题思路、代码分析、问题扩展
       关于本书  本书目前共整理了105道高频面试算法题目,全部采用漫画图解的方式。该教程目前共有11w人阅读。面向算法小白和初中阶读者。所有代码均在leetcode上测试运行。    资源整理自网络,源地址:https://github.com/geekxh/hello-algorithm         ......
  • Luogu P4720 【模板】扩展卢卡斯定理/exLucas
    【模板】扩展卢卡斯定理/exLucas题目背景这是一道模板题。题目描述求\[{\mathrm{C}}_n^m\bmod{p}\]其中\(\mathrm{C}\)为组合数。输入格式一行三个整数\(n,m,p\),含义由题所述。输出格式一行一个整数,表示答案。样例#1样例输入#1533样例输出#11样例#2......
  • VSCode安装Python扩展插件
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]安装Python扩展插件一、在VSCode的扩展列表中安装Python插件二、配置Python解释器在VSCode的左下角,点击Python,然后在弹框中选择Python的解释器:2.1、vscode使用Python虚拟环境创建......
  • VSCode安装Python扩展插件
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]安装Python扩展插件一、在VSCode的扩展列表中安装Python插件二、配置Python解释器在VSCode的左下角,点击Python,然后在弹框中选择Python的解释器:2.1、vscode使用Python虚拟环境创建......
  • Unity3D:模拟器视图
    推荐:将NSDT场景编辑器加入你的3D工具链3D工具集:NSDT简石数字孪生模拟器视图“模拟器”视图在模拟的移动设备上显示应用程序。使用它来查看应用程序与该设备的屏幕形状、分辨率和方向的显示方式。模拟器视图的屏幕截图使用模拟器视图若要打开模拟器视图,请执行下列操作之一:......
  • 基于Node.js的分布式应用程序架构设计与最佳实践:实现高效、可扩展的分布式系统
    目录基于Node.js的分布式应用程序架构设计与最佳实践:实现高效、可扩展的分布式系统随着互联网的普及和发展,分布式系统已经成为现代应用程序中不可或缺的一部分。而Node.js作为当前最流行的JavaScript框架之一,其在分布式系统中的使用和优化也越来越广泛。在本文中,我们将介绍基......