可拖动FPS显示框(UGUI)
来源:互联网 发布:java搜索引擎lucene 编辑:程序博客网 时间:2024/05/23 00:09
简介
本来是想往上找一个可拖动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
0 0
- 可拖动FPS显示框(UGUI)
- ogre中显示FPS框
- Unity UGUI实现可编辑下拉框(dropdown)
- DataGrid绑定数据显示列可拖动
- DataGrid绑定数据显示列可拖动
- DataGrid绑定数据显示列可拖动
- u3d UGUI 拖动图片
- 可拖动DIV提示框
- 可拖动 全局悬浮框
- android 自定义可拖动框
- 遮罩层提示框,可拖动标题栏(兼容FF)
- UGUI(七)界面拖动和焦点界面
- UGUI(六)_界面拖动和焦点界面
- UGUI(七)界面拖动和焦点界面
- UGUI(七)界面拖动和焦点界面
- opencv 显示摄像头+fps
- unity显示FPS
- Unity 显示FPS
- centos6.5 配置mysql5.6免安装版
- Hibernate学习进阶
- Hbase 基本操作
- 如何解决 Sublime Text 3 不能正确显示中文的问题
- [Special] Design Pattern - Behavioral Patterns - Command Pattern
- 可拖动FPS显示框(UGUI)
- iOS8指纹识别代码例子
- linux新建进程--fork
- UVa 455 Periodic Strings
- java基础教程7:包
- java 第二章 理解面向对象
- android studio 需要虚拟化技术怎么破?
- Python Neurolab for neural network
- Caused by: java.sql.SQLException: The MySQL server is running with the --read-only option so it cann