1.代码方面优化,整合函数,将代码分配到物体上不要全放在主角上,代码清晰。
2.改变camera渲染范围。
3.灯光的使用会增加CPU负担,将光源烘焙为光照贴图,只对static物体有用。Compression。
4.限制鼠标在游戏窗口内功能。
using System.Runtime.InteropServices; public class shubiao : MonoBehaviour { public struct POINTAPI //POINTAPI是自定义的类名 { public int x; public int y; } //鼠标可以强行冲出窗口,再被代码拉回游戏,效果不是很好 [DllImport("user32.dll")] public static extern bool GetCursorPos(ref POINTAPI p); [DllImport("user32.dll")]//导入库,并申明一个命令 public static extern int SetCursorPos(int x, int y); [DllImport("user32.dll")] public static extern bool GetCursorPos(ref int x1, ref int y1); bool ck = false; // Use this for initialization void Start () { SetCursorPos(200, 200); } // Update is called once per frame void Update () { if (!ck) { //if (Input.mousePosition.x < 1) { SetCursorPos(Mathf.RoundToInt(Screen.width * 0.5f), Mathf.RoundToInt(Input.mousePosition.y)); } //if (Input.mousePosition.y < 1) { SetCursorPos(Mathf.RoundToInt(Input.mousePosition.x), Mathf.RoundToInt(Screen.height * 0.5f)); } //if (Input.mousePosition.x > Screen.width - 5) { SetCursorPos(Mathf.RoundToInt(Screen.width * 0.5f), Mathf.RoundToInt(Input.mousePosition.y)); } if (Input.mousePosition.x < 5) { /*int x1 = 0; int y1 = 0; if (GetCursorPos(ref x1, ref y1))//注意ref用法 SetCursorPos(x1 + 10, y1); */ POINTAPI p1 = new POINTAPI(); if (GetCursorPos(ref p1)) SetCursorPos(p1.x + 10, p1.y); } if (Input.mousePosition.y < 5) { /*int x2 = 0; int y2 = 0; if (GetCursorPos(ref x2, ref y2)) SetCursorPos(x2, y2 - 10);*/ POINTAPI p2 = new POINTAPI(); if (GetCursorPos(ref p2)) SetCursorPos(p2.x, p2.y - 10); } if (Input.mousePosition.x > Screen.width - 5) { /* int x3 = 0; int y3 = 0; if (GetCursorPos(ref x3, ref y3)) SetCursorPos(x3 - 10, y3);*/ POINTAPI p3 = new POINTAPI(); if (GetCursorPos(ref p3)) SetCursorPos(p3.x - 10, p3.y); } } } void OnApplicationFocus() { ck = !ck; }