可拖动FPS显示框(UGUI)
简介
本来是想往上找一个可拖动FPS显示框的(我记得以前有人写过),然而搜了一个多小时都没搜到,索性自己写了一个,花费不到20分钟,看来还是自己动手丰衣足食啊 o(╯□╰)o
效果
上下的Toast不在本blog介绍范围,我点他们只是为了证明按钮事件不冲突而已~~
思路
虽然超级简单,还是说一下嘛
1.按钮点下的时候设置物体缩放(好看点而已),并重置锚点为中心(方便拖动对齐)
2.拖动过程中,让物体位置等于鼠标位置即可(由于用的UGUI,有Canvas,不用考虑Z轴)
3.鼠标抬起时还原各项参数即可
(锚点可以不还原,因为你一旦拖动了物体,原来的对齐其实已经偏了,当然有后续操作的可以考虑还原)
项目配置
1.一步完成,直接看图吧
代码
using UnityEngine;
using UnityEngine.UI;
public class LTFPSPanel : MonoBehaviour
{
public Text fpsText;
private float mUpdateInterval = 1f;//设定更新帧率的时间间隔为1秒
private float mAccum = .0f;//累积时间
private int mFrames = 0;//在_updateInterval时间内运行了多少帧
private float mTimeLeft;
private static Vector3 ON_DRAG_SCALE = new Vector3(1.2f, 1.2f, 1.2f);
private static Vector3 NORMAL_SCALE = Vector3.one;
private static Vector2 ON_DRAG_PIVOT = new Vector2(0.5f, 0.5f);
private RectTransform mRectTransform;
void Awake()
{
mRectTransform = GetComponent<RectTransform>();
}
void Start()
{
if (null == fpsText)
{
throw new System.Exception("没有绑定Text组件");
}
mTimeLeft = mUpdateInterval;
}
void Update()
{
mTimeLeft -= Time.deltaTime;
//Time.timeScale可以控制Update 和LateUpdate 的执行速度,
//Time.deltaTime是以秒计算,完成最后一帧的时间
//相除即可得到相应的一帧所用的时间
mAccum += Time.timeScale / Time.deltaTime;
++mFrames;//帧数
if (mTimeLeft <= 0)
{
float fps = mAccum / mFrames;
string fpsFormat = System.String.Format("{0:F2}", fps);//保留两位小数
fpsText.text = fpsFormat;
mTimeLeft = mUpdateInterval;
mAccum = .0f;
mFrames = 0;
}
}
public void OnPointerDown()
{
mRectTransform.pivot = ON_DRAG_PIVOT;
transform.position = Input.mousePosition;
this.transform.localScale = ON_DRAG_SCALE;
}
public void OnPointerUp()
{
this.transform.localScale = NORMAL_SCALE;
transform.position = Input.mousePosition;
}
public void OnDrag()
{
transform.position = Input.mousePosition;
}
}
总结
null
可拖动FPS显示框(UGUI)的更多相关文章
- 用canvas实现鼠标拖动绘制矩形框
需要用到jCanvas插件和jQuery. jCanvas下载:https://raw.githubusercontent.com/caleb531/jcanvas/master/jcanvas.mi ...
- Vue - 实现双击显示编辑框;自动聚焦点击的显示框;点击编辑框外的地方,隐藏编辑框
实现这三个功能的踩坑记录. 1. 需求 在Vue中,有一个input, 双击时编辑文本,点击该input节点外的其他地方,则取消编辑. 那么这里有三个要实现的地方 第一是双击显示编辑框. 第二是自动聚 ...
- 使用react-tooltip实现鼠标悬浮显示框详细记录
前段时间遇到的一个需求,要求鼠标悬停显示使用描述, 用到了react-tooltip插件,今天写一个总结 先看效果(为了方便参考,用的是原始样式): 文档参考地址: https://www.npmjs ...
- web拖动条显示
<!DOCTYPE html"> <html> <head> <title>滚动条拖动评分的JS效果</title> <st ...
- win8.1下右下角出现大小写切换状态显示框解决方案
HKEY_LOCAL_MACHINE\SOFTWARE\Cambridge Silicon Radio\Harmony\Default双击右侧 OSD 将键值改成0 重启机器 成功关闭显示
- windows pyspider WEB显示框太小解决方法
环境:windows7 + chrome + pyspider 解决方法: WEB预览框过小的原因在于页面元素的css属性height被替换为60px: CSS文件所在地方:C:\Users\Admi ...
- css文本内容大于内本显示框设置其显示方式
1. <style type="text/css"> .text-ellipsis{ overflow: hidden;//隐藏滚动条 white-space: now ...
- 设置textview显示框内容不可编辑不可选择。
f1textview.allowsEditingTextAttributes=NO;////////////设置不可编辑不能用这个,得用下面的一个 textView.editable=NO;//设置可 ...
- html 居中的内容显示框
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- BZOJ 2648: SJY摆棋子 kdtree
2648: SJY摆棋子 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2648 Description 这天,SJY显得无聊.在家自己玩 ...
- benchmark pm2的cluster模式发布web app的性能与相关问题解决方法
pm2以cluster集群方式发布app,可以高效地利用多核cpu,有效提升吞吐量.在上周对公司的redmine服务器进行性能调优后,深感ruby on rails的性能低下,这次测试nodejs的s ...
- Python将文本生成二维码
#coding:utf-8 ''' Python生成二维码 v1.0 主要将文本生成二维码图片 测试一:将文本生成白底黑字的二维码图片 测试二:将文本生成带logo的二维码图片 ''' __autho ...
- 如何修改 EM12c 中 SYSMAN 用户的密码?
以下内容全部转自:http://www.chenjunlu.com/2013/04/how-to-modify-the-password-for-sysman-of-em-12c-cloud-cont ...
- Jenkins FTP 上传
需要插件:FTP publisher plugin 进入 Jenkins / 系统管理 / 系统设置 找到 FTP repository hosts,新增一个,编辑好,保存 打开 Jenkins / ...
- Flash播放mp4的两个问题:编码问题和需要下载完后才能播放的问题
(1)编码问题.需要是 h.264 编码,不是此编码的在某些Flash版本或OS上会出现放不出来视频的问题:可以用 3GP.MP4视频转换精灵(BRVideoConverter) 转码. (2)下载完 ...
- Spring3系列4-多个配置文件的整合
Spring3系列4-多个配置文件的整合 在大型的Spring3项目中,所有的Bean配置在一个配置文件中不易管理,也不利于团队开发,通常在开发过程中,我们会按照功能模块的不同,或者开发人员的不同,将 ...
- 通过Jni实现AES的CBC模式加密解密
AES加密方式基本实现,出现一个问题就是代码的安全性.我们知道java层代码很容易被反编译,很有可能泄漏我们加密方式与密钥 内容,那我们该怎么办呢?我们可以使用c/c++实现加密,编译成So库的形式, ...
- A Year Of Books - 2016 Javaer书单
A Year Of Books - 2016 Javaer书单 (PS:欢迎留言推荐,很多来自白衣大哥的推荐) 1. OS & Networking <编码 : 隐匿在计算机软硬件背后的 ...
- 参照nopCommerce框架开发(NextCMS)
很久没有更新博客了,现在已经不写.NET,转前端半年多了. 半年前在创业公司,做电子商务网站,用的是NopCommerce框架(3.2),这个框架还是相当不错的,经过一段时间的摸索,基本入门,于是就开 ...