【Unity学习】完全基于Ultimate Replay 2.0的UI回放系统

这篇具有很好参考价值的文章主要介绍了【Unity学习】完全基于Ultimate Replay 2.0的UI回放系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前面两节已经介绍了本人在项目中使用的结合JSON和Ultimate Replay 2.0的UI回放系统,那是在项目结构特殊,代码不好更改的情况下,本人所做的些许调整。但在这几天的开发过程中,我发现通常情况下只使用Ultimate Replay 2.0即可实现大部分情况下的UI回放。

针对固定UI实时更新的情况

这在基于JSON的UI回放系统(倍速)(二)一节中已经进行了介绍。

针对代码生成的UI实时更新的情况

此种情况例如ScrollRect实时显示滚动的消息,需要用到代码实时生成UI元素,这里就需要用到Ultimate Replay 2.0中的ReplayBehaviour,及需要在回放过程中任然保持运行的脚本,需要继承ReplayBehaviour基类,需要回放的方法应使用[ReplayMethod]特性修饰,并在录制过程中使用RecordMethodCall方法去调用需要回放的方法,才能记录此方法的调用时间以备回放,如下:

using System.Collections;
using System.Collections.Generic;
using UltimateReplay;
using UnityEngine;
using UnityEngine.UI;

public class ReplayUIByUR2 : ReplayBehaviour
{
    [ReplayVar]public string textA;
    [ReplayVar] public int textB;
    public Text textPrefab;
    public RectTransform contentRoot;
    public MScrollRect scrollRect;
    private float interval = 1.5f;
    private float time = 0;
    private string testText;

    private void Update()
    {
        if (IsRecording)
        {
            time += Time.deltaTime;
            if (time >= interval)
            {
                textA = "测试:" + Random.Range(0, 10).ToString();
                textB = Random.Range(0, 10);
                testText = Time.timeSinceLevelLoad.ToString();
                RecordMethodCall(AddText,testText);
                time = 0;
            }
        }
    }

    [ReplayMethod]
    public void AddText(string str)
    {
        UIHelper.AddScrollText(textPrefab, contentRoot, str, scrollRect);
    }
}

但是此种方法回放的代码生成的UI不能自动销毁,需要手动在每一次录制前和回放前销毁已产生的动态UI元素,如下所示,在Record和Replay前都调用此方法:

    private void ClearUIData()
    {
        for (int i = 0; i < uiContentRoot.childCount;i++)
        {
            GameObject obj = uiContentRoot.GetChild(i).gameObject;
            Destroy(obj);
        }
    }

效果如下:
unity 模拟dota2录像回放功能,unity,ui,unity,学习注意:

  • 有时候使用ReplayMethod回放方法操作,会重复回放某一操作,就比如滚动UI只更新了85.252这个数据,但是回放的时候则回放了85.252这个数四五次,这种情况尚未解决,但好在是少数情况下才会出现这种情况。
  • 用来回放的.replay文件不能放在StreamingAssets文件夹下,要不然录制的时候会报出警告说我们重复写入空数据到某一文件。

Demo下载

Demo文章来源地址https://www.toymoban.com/news/detail-659093.html

到了这里,关于【Unity学习】完全基于Ultimate Replay 2.0的UI回放系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 细节有惊喜!详解Web自动化框架UI自动截图与画面回放实现!

    目录  前言: Web自动化测试框架基本结构及原理 UI自动截图实现方法 基于Selenium截图实现UI自动截图的过程如下: 基于Selenium截图的代码实现如下: 基于爬虫截图实现UI自动截图的流程如下: 基于爬虫截图的代码实现如下:

    2024年02月09日
    浏览(62)
  • Unity学习记录——UI设计

    ​ 本文是中山大学软件工程学院2020级3d游戏编程与设计的作业8 1.相关资源 ​ 本次项目之中的人物模型来自Starter Assets - Third Person Character Controller | 必备工具 | Unity Asset Store ​ 此处使用了以下路径的 PlayerArmature 预制,这个预制人物模型可以进行行走奔跑跳跃等动作,很适合

    2024年02月04日
    浏览(43)
  • Unity学习笔记之UI

    三种UI系统:                    OnGUI:最早的UI系统,纯代码实现,写法类似Update                             优点:出现很早,纯代码可控制                             缺点:只能程序开发                    NGUI:Unity著名插件

    2024年02月05日
    浏览(41)
  • Unity进阶-ui框架学习笔记

    笔记来源课程:https://study.163.com/course/courseMain.htm?courseId=1212756805_trace_c_p_k2_=8c8d7393c43b400d89ae94ab037586fc 最上面的管理层(canvas) 调整下运行顺序,让他快于controller panel的控制层 panel下面的组件层 使用

    2024年02月16日
    浏览(50)
  • Unity学习笔记——UI九宫格的原理

    本篇文章仅代表我自己对UI九宫格的理解,如有错误,希望大家指出 九宫格就是指UI切片时的9个格子,9个格子的拉伸原理:1,3,7,9不拉伸;2,8水平拉伸;4,6垂直拉伸;所谓的拉伸其实就是是否发生形变,水平拉伸的意思是只有水平拉伸才产生形变,垂直拉伸不产生形变

    2024年02月16日
    浏览(34)
  • 基于unity+c#的随机点名系统(简单UI界面+列表+数组)

    目录 一、功能界面显示 二、UI 1、视频的使用 (1)渲染纹理 (2) 视频铺全屏 (3)视频的调用 2、 下拉文本框的使用(旧版) 3、输入文本框的使用(旧版) 4、更新Test文本和下拉文本框的内容 三、保存之前的记录 1、PlayerPrefs (1)保存数据: (2)读取数据: (3)删除

    2024年04月27日
    浏览(43)
  • 一键安装 Stable Diffusion UI 2.0——在本地运行

    随着生成式 AI 的普及,许多人都想在不花一分钱的情况下获得其中一种图像生成器模型。您现在可以通过Stability AI公开发布的Stable Diffusion来做到这一点。 因为它是开源的并且模型是公开的,所以您可以在本地 PC 上运行该工具。它是免费的,而且非常方便,您可以在自己的时

    2023年04月10日
    浏览(40)
  • Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code

    在这个快速发展的数字化时代,界面回放技术(UI Playback Technology)在软件开发中扮演了至关重要的角色。这项技术不仅提高了软件测试的效率,还为用户交互设计提供了深刻的洞察。通过回放用户与界面的交互过程,开发者能够更好地理解用户行为,优化用户体验。正如计算

    2024年01月20日
    浏览(59)
  • vue 2.0+element ui 使用el-upload图片上传

    ** ** 使用el-upload将图片加载成Base64格式,通过form统一上传给后端 1、创建通用component ImgComponent.vue 2、在父组件中使用 3、最后通过form统一submit到后端,图片参数传base64即可。 ps:起初在数据库中,将存图片的字段类型设置为BLOB,以二进制的形势存储,后面发现会将“:”转

    2024年02月12日
    浏览(57)
  • 【Web - 框架 - Vue】随笔 - 通过`CDN`的方式使用`VUE 2.0`和`Element UI`

    通过 CDN 的方式使用 VUE 2.0 和 Element UI 代码 结果 代码 结果

    2024年02月22日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包