[Unity3d]自定义鼠标
2013-11-24 14:52
281 查看
我们在用unity3d开发自己的游戏的时候,自定义游戏中的鼠标也是经常要用到的,那我就得学学,其实原理很简单,先将鼠标给隐藏,然后在鼠标的位置上画出一个自定义的鼠标贴图,这样看起来就像一个自定义的鼠标。当然我这里利用的是跨平台方案,Unity的GUI效率不高,如果我们要用特定的某个平台的自定义鼠标,那就去用特定的接口函数,这样效率会高一点。这里我写的就是一个跨平台方案,一种通用的方法。
举例:
如果是windows平台的话,我们如果要隐藏鼠标就用SetCursor()这个方法,
注意:
1.GUI坐标系的原点是在左上角,而屏幕坐标系采用的是一种OpenGL坐标系原点是在左下角,所以这就存在一个坐标转换的问题!
2.update()和FixedUpdate()的区别:
Update() 和 FixedUpdate()在游戏中都会在更新的时候自动循环调用。 但是Update是在每次渲染新的一帧的时候才会调用,也就是说,这个函数的更新频率和设备的性能有关以及被渲染的物体(可以认为是三角形的数量)。在性能好的机器上可能fps 30,差的可能小些。这会导致同一个游戏在不同的机器上效果不一致,有的快有的慢。因为Update的执行间隔不一样了。 而FixedUpdate,是在固定的时间间隔执行,不受游戏帧率的影响。有点想Tick。所以处理Rigidbody的时候最好用FixedUpdate。
PS:FixedUpdate的时间间隔可以在项目设置中更改,Edit->Project Setting->time 找到Fixed timestep。就可以修改了。
操作:
1.隐藏鼠标是:Screen.showCursor = false;
2.显示自定义鼠标
效果:
举例:
如果是windows平台的话,我们如果要隐藏鼠标就用SetCursor()这个方法,
注意:
1.GUI坐标系的原点是在左上角,而屏幕坐标系采用的是一种OpenGL坐标系原点是在左下角,所以这就存在一个坐标转换的问题!
2.update()和FixedUpdate()的区别:
Update() 和 FixedUpdate()在游戏中都会在更新的时候自动循环调用。 但是Update是在每次渲染新的一帧的时候才会调用,也就是说,这个函数的更新频率和设备的性能有关以及被渲染的物体(可以认为是三角形的数量)。在性能好的机器上可能fps 30,差的可能小些。这会导致同一个游戏在不同的机器上效果不一致,有的快有的慢。因为Update的执行间隔不一样了。 而FixedUpdate,是在固定的时间间隔执行,不受游戏帧率的影响。有点想Tick。所以处理Rigidbody的时候最好用FixedUpdate。
PS:FixedUpdate的时间间隔可以在项目设置中更改,Edit->Project Setting->time 找到Fixed timestep。就可以修改了。
操作:
1.隐藏鼠标是:Screen.showCursor = false;
2.显示自定义鼠标
public Texture CursorTexture; void OnGUI() { Vector3 mousePos = Input.mousePosition; //因为GUI坐标系原点是左上角,而屏幕坐标系原点是在左下角,所以要转换 GUI.DrawTexture(new Rect(mousePos.x-CursorTexture.width/2,Screen.height - mousePos.y-CursorTexture.height/2,CursorTexture.width,CursorTexture.height),CursorTexture); }
效果:
相关文章推荐
- unity3d 自定义鼠标样式纹理
- [unity3d]自定义鼠标指针
- [Unity3d]自定义鼠标
- Unity3d 自定义鼠标
- 006-unity3d GUI初识、贴图、自定义鼠标指针
- 怎样自定义Unity3d项目中的鼠标图标
- unity3d 自定义鼠标形状
- [Unity3d]自定义鼠标
- unity3d 鼠标点击或触摸 控制角色对象行走
- Win7如何自定义鼠标右键菜单 添加在此处打开CMD窗口
- -_-#【CSS】自定义鼠标样式
- unity3d NGUI中获取/判断鼠标(左右键等)的方法
- unity3d 自定义属性视图
- studio 自定义view 圆形 跟鼠标移动
- Unity3D BMFont使用图片自定义字体(无需字体文件)
- Unity3d--判断鼠标是否触发UGUI控件
- [Unity3D]Unity3D游戏开发之史上最简单的鼠标点击控制人物走动实现
- unity3D 代码实现自定义平面
- 自定义 Unity3d 的Log 输出 (unity自己的Log)
- Unity3d 鼠标和键盘控制视角缩放、扩大、平移、旋转