转载:http://www.unitymanual.com/thread-13495-1-1.html
1、在Quality(质量)设置里把帧数设定关闭之后才能在代码中修改游戏运行的帧数
![](http://www.unitymanual.com/data/attachment/forum/201403/21/111008rfvsd554uhlu3a4a.png)
2、在 unity 中新建脚本UpdateFrame.cs ,编写如下代码
[AppleScript]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
using
UnityEngine;
using
System.Collections;
/
/
/
<
summary
>
/
/
/
功能:修改游戏FPS
/
/
/
<
/
summary
>
public
class
UpdateFrame
:
MonoBehaviour
{
/
/
游戏的FPS,可在属性窗口中修改
public int targetFrameRate
=
300
;
/
/
当程序唤醒时
void Awake ()
{
/
/
修改当前的FPS
Application.targetFrameRate
=
targetFrameRate;
}
}
|
3、把该代码及ShowFPS.js绑定在层次视图的任一GameObject上,运行游戏,即可以Game视图中看到当前的FPS,同时可修改targetFrameRate变量来观看结果。
![](http://www.unitymanual.com/data/attachment/forum/201403/21/111010ms7aa97gcdogdx39.jpg)
![](http://www.unitymanual.com/data/attachment/forum/201403/21/111010biiwhippl2rlmqop.jpg)
![](http://www.unitymanual.com/data/attachment/forum/201403/21/111007voi95xyysyxo7eeh.jpg)
ShowFPS.js代码
[AppleScript]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
@
script
ExecuteInEditMode
private var gui
:
GUIText;
private var updateInterval
=
1.0
;
private var lastInterval
:
double;
/
/
Last interval
end
time
private var frames
=
0
;
/
/
Frames
over
current interval
function Start()
{
lastInterval
=
Time.realtimeSinceStartup;
frames
=
0
;
}
function OnDisable ()
{
if
(gui)
DestroyImmediate (gui.gameObject);
}
function Update()
{
#if !UNITY_FLASH
+
+
frames;
var timeNow
=
Time.realtimeSinceStartup;
if
(timeNow
>
lastInterval
+
updateInterval)
{
if
(!gui)
{
var go
:
GameObject
=
new
GameObject(“FPS Display”
,
GUIText);
go.hideFlags
=
HideFlags.HideAndDontSave;
go.transform.
position
=
Vector
3
(
0
,
0
,
0
);
gui
=
go.guiText;
gui.pixelOffset
=
Vector
2
(
5
,
55
);
}
var fps
:
float
=
frames
/
(timeNow
-
lastInterval);
var ms
:
float
=
1000.0
f
/
Mathf.Max (fps
,
0.0
0001
);
gui.
text
=
ms.ToString(“f
1
”)
+
“ms ”
+
fps.ToString(“f
2
”)
+
“FPS”;
frames
=
0
;
lastInterval
=
timeNow;
}
#endif
}
|
游戏蛮牛: http://www.unitymanual.com