[Unity3d]定义自己的鼠标
我们在用unity3d开发自己的游戏的时候。自己定义游戏中的鼠标也是常常要用到的。那我就得学学。事实上原理非常easy,先将鼠标给隐藏,然后在鼠标的位置上画出一个自己定义的鼠标贴图,这样看起来就像一个自己定义的鼠标。当然我这里利用的是跨平台方案,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.显示自己定义鼠标
- 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]定义自己的鼠标的更多相关文章
- unity提高----------射线使用【unity3d 怎样获得当前鼠标点击的对象】
unity3d 怎样获得当前鼠标点击的对象 最佳答案 var ray = Camera.main.ScreenPointToRay (Input.mousePosition);var hit : ...
- 【转】Unity3D 入门小技巧——鼠标拾取并移动物体
http://blog.csdn.net/sysujackjiao/article/details/69396274 一.鼠标拾取物体的原理 在Unity3D当中,想要在观察面(Aspect)中拾取物 ...
- unity3d游戏物体跟着鼠标方向移动
效果:当点击鼠标左键时,游戏对象会朝鼠标点击的方向移动,类似魔兽争霸一样. 思路:把鼠标的坐标转化成世界坐标(鼠标默认是屏幕坐标),然后当点击鼠标时,物体将朝着鼠标的世界坐标方向移动. 如果你看到这的 ...
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
今天为大家分享的是在Rpg游戏中十分常见的鼠标滚轮调整摄像机视野效果.首先我们先创建一个游戏场景: 接下来我们编写一段脚本代码: [csharp] view plaincopyprint" ...
- 【Unity3D自学记录】鼠标移动三维物体
创建一个脚本.例如以下: using UnityEngine; using System.Collections; public class OnMouse : MonoBehaviour { IEn ...
- unity3d的键盘和鼠标输入
一.键盘的输入 •GetKey,GetKeyDown,GetKeyUp三个方法分别获取用户键盘按键的输入 1. GetKey:用户长按按键有效: bool down = Input.GetKeyDow ...
- (转载)【Unity3D学习】获取鼠标点击所对应的GameObject
刚开始学习Unity 3D,新手遇到的坑都是泪对自由的抗争.直入主题~ 首先,为GameObject需要添加组件“Box Collider”. 然后,在脚本中的Update方法中添加如下代码. if( ...
- Unity3D移动平台动态读取外部文件全解析
前言: 一直有个想法,就是把工作中遇到的坑通过自己的深挖,总结成一套相同问题的解决方案供各位同行拍砖探讨.眼瞅着2015年第一个工作日就要来到了,小匹夫也休息的差不多了,寻思着也该写点东西活动活动大脑 ...
- 在CSS中定义a:link、a:visited、a:hover、a:active顺序
摘自:http://blog.snsgou.com/post-2.html 以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面.出现一些问题,搜索引擎查了一些网站和资料,发现 ...
随机推荐
- Eclipse设置的断点失效的解决办法
使用Eclipse的同胞们,如果你哪天惊奇的发现调试时,明明设置了断点,按道理就是要执行设置断点的那条语句的,可是偏偏Eclipse视你设置的断点不见,不要害怕,不要恐慌,这样的问题不应该导致偶们疯狂 ...
- Java对Xml进行操作的实例(转)
这是一个用JAVA W3C DOM 进行XML操作的例子,包含了查询.增加.修改.删除.保存的基本操作.较完整的描述了一个XML的整个操作流程.适合刚入门JAVA XML操作的朋友参考和学习. 假设有 ...
- poj1935(树形dp)
题目链接:http://poj.org/problem?id=1935 题意:带边权的树,给点一个根,问从根出发遍历某些点,所需的最小花费. 分析:树上任意两点的路径是唯一的,直接dfs一遍,可以得出 ...
- 祖国版Solowheel!IPS103 独轮思维车 - 三个月体验报告
http://tieba.baidu.com/f?kz=2308652773&mo_device=1
- Extjs4.10Model模型具体解释
一.创建Model模型 Extjs4.10提供了两种方法来创建Model模型,也就是创建类 方法一: Ext.define('person',{ extend:'Ext.da ...
- 数据库连接技术之OLE DB
之前的博客介绍了ODBC和JDBC.这次简单的介绍一下OLE DB.ODBC的总结不知道是没贴到博客上还是不在这个博客上,我再找找,没有的话我再补充到时候.好了.開始吧. 回想 之前呢介绍过了ODBC ...
- 1m网速是什么意思,1m带宽是什么意思
1M网速下载速度应是多少?我怎么才50多KB?? 建议: 一般来说是90到100算正常.最高能达到120 带究竟该有多快 揭开ADSL真正速度之谜 常常使用ADSL的用户,你知道ADSL的真正速度吗? ...
- MVC 学习 区域
http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2209438.html
- (摘录)SQL Server 存储过程
文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...
- 演示基于SDL2.0+FFmpeg的播放器
SDL是一个跨平台的渲染组件,眼下已经推出到2.0.3版本号,支持Win/Linux/OSX/Android.网上非常多介绍大多是基于SDL1.2版本号的,与2.0版本号有一定的区别,本文演示怎样用S ...