Xlua 热更新 实现显示帧率

2024-01-30 04:12
文章标签 实现 显示 更新 xlua

本文主要是介绍Xlua 热更新 实现显示帧率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一步:导入Xlua插件

链接: 项目目录预览 - xLua - GitCode

进入链接,下载zip,进入Asset文件,将其中所有目录导入Unity的Asset中。

第二步:创建脚本 XLuaFPSDisplay.cs 

复制粘贴以下代码,然后将脚本挂载到任意对象。

using XLua;
using UnityEngine;public class XLuaFPSDisplay : MonoBehaviour
{LuaEnv luaEnv;void Start(){luaEnv = new LuaEnv();luaEnv.DoString("require('FPSDisplay').Start()");}void Update(){luaEnv.DoString("require('FPSDisplay').Update()");}void OnDestroy(){luaEnv.Dispose();}
}

第三步:在sublime Text或者vs中创建lua脚本  FPSDisplay.lua

复制粘贴以下代码:

local UnityEngine = CS.UnityEngine
print(UnityEngine);
local FPSDisplay = {}print("成功加载了FPSDisplay")-- 在Start函数中初始化计时器和帧数变量
function FPSDisplay.Start()FPSDisplay.deltaTime = 0.0FPSDisplay.updateRate = 4 -- 更新频率,每4帧更新一次FPSDisplay.frameCount = 0FPSDisplay.timePassed = 0.0-- 创建一个UI文本对象用来显示帧率local canvas = UnityEngine.GameObject.Find("Canvas");FPSDisplay.fpsTextObj = UnityEngine.GameObject("FPSText")FPSDisplay.fpsTextObj.transform:SetParent(canvas.transform)local rectTransform = FPSDisplay.fpsTextObj:AddComponent(typeof(UnityEngine.RectTransform))rectTransform.anchorMin = UnityEngine.Vector2.zerorectTransform.anchorMax = UnityEngine.Vector2.onerectTransform.sizeDelta = UnityEngine.Vector2.zerorectTransform.anchoredPosition3D = UnityEngine.Vector3.zerolocal textComponent = FPSDisplay.fpsTextObj:AddComponent(typeof(UnityEngine.UI.Text))
textComponent.fontSize = 78FPSDisplay.fpsTextObj:GetComponent(typeof(UnityEngine.UI.Text)).font = UnityEngine.Resources.GetBuiltinResource(typeof(UnityEngine.Font), "Arial.ttf")
end-- 在Update函数中更新帧率计数和显示
function FPSDisplay.Update()FPSDisplay.frameCount = FPSDisplay.frameCount + 1FPSDisplay.deltaTime = FPSDisplay.deltaTime + UnityEngine.Time.unscaledDeltaTimeif FPSDisplay.frameCount % FPSDisplay.updateRate == 0 thenlocal fps = FPSDisplay.updateRate / FPSDisplay.deltaTimelocal textComponent = FPSDisplay.fpsTextObj:GetComponent(typeof(UnityEngine.UI.Text))textComponent.text = string.format("FPS: %.2f", fps)FPSDisplay.deltaTime = 0.0end
end
print("代码结束")
return FPSDisplay

第四步:运行即可 

这篇关于Xlua 热更新 实现显示帧率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/659068

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

hdu1689(线段树成段更新)

两种操作:1、set区间[a,b]上数字为v;2、查询[ 1 , n ]上的sum 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdl

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问