在开发PC游戏时我们可能会有这样的需求,当鼠标指针移动到某类游戏物件上,改变指针显示的图标,或者干脆一进入游戏就设置全局指针图标。在Unity中,有两种方法满足这种需求,先说一下第一种方法。

使用Unity的Cursor.SetCursor()接口

看一下这个接口的文档描述,

Description

Specify a custom cursor that you wish to use as a cursor.

Call this method with a Texture2D to change the appearance of the hardware pointer (mouse cursor).

这里我们大概知道,这个接口的作用是把一个Texture2D纹理作为硬件指针(鼠标指针)的显示。

再来看一下这个接口的参数,

Parameters

texture The texture to use for the cursor. To use a texture, you must first import it with `Read/Write`enabled. Alternatively, you can use the default cursor import setting. If you created your cursor texture from code, it must be in RGBA32 format, have alphaIsTransparency enabled, and have no mip chain. To use the default cursor, set the texture to `Null`.
hotspot The offset from the top left of the texture to use as the target point (must be within the bounds of the cursor).
cursorMode Allow this cursor to render as a hardware cursor on supported platforms, or force software cursor.

texture不用解释了,就是一张纹理。hotspot的意思是,鼠标目标点为相对纹理左上角偏移多少的点,这个位置点不能超出纹理本身边界。什么意思呢?如下图,我们想用这张308*308大小的_CursorTexture 图作为替换的鼠标指针纹理,则需要设置hotspot为 (87, 1),代码为

Cursor.SetCursor(_CursorTexture, new Vector2(87, 1), CursorMode.Auto);

如果不能正确设置hotspot坐标,那实际效果就会 鼠标指针显示的位置与我们期望点击的位置有偏差。

还有第三个参数,如果是CursorMode.Auto,则会在支持的平台上用硬件渲染,选择Auto模式的话,同一张大小的纹理,在不同硬件上渲染显示出来的效果可能不一样,受硬件影响。比如在MBP和普通PC上。如果选择CursorMode.ForceSoftward,则会强制软件渲染,不受硬件平台影响,但效率没Auto好。

好了,以上就是使用Cursor.SetCursor()方法设置鼠标指针的用法,注意hotspot和CursorMode这两个参数。

另一种方法,就是屏蔽系统Cursor,Screen.showCursor = false; 自己在鼠标位置画一个图标,也很简单。具体做法以后再补充。

转载于:https://www.cnblogs.com/chenwz91/p/10482816.html

Unity 自定义鼠标指针图标相关推荐

  1. Unity自定义鼠标指针图案

    1.下载Axialis CursorWorkshop. 2.用Axialis CursorWorkshop将.cur或.ani的光标文件转成PNG文件. 3.将PNG图片导入Unity,Texture ...

  2. html自定义指针,如何自定义鼠标指针 怎样在wpf中自定义鼠标指针

    如何在ppt中自定义鼠标指针的形状? 魔兽世界怎么自定义鼠标指针 在系统 控制面板 里面鼠标属性 指针里面改就可以了 下面有个浏览 可以自定义换图案 怎样在网页中设定一整套自定义的鼠标指针? 麻烦了 ...

  3. Delphi 中自定义鼠标指针图像

    Dephi中的鼠标指针是可以自由定义的,如果是使用系统提供的图标,那么直接通过可视控件的Cursor属性赋值就可以. 例如设置Form的鼠标为 crHourGlass 沙漏: Form1.Cursor ...

  4. [WPF]自定义鼠标指针

    [WPF]自定义鼠标指针 原文:[WPF]自定义鼠标指针 [WPF]自定义鼠标指针 周银辉 看看WPF Cursor类的两个构造函数吧: public Cursor(Stream cursorStre ...

  5. html+css:自定义鼠标指针图案

    应该会有人喜欢这种自定义的鼠标指针吧                                                                      想要在html中自定义鼠 ...

  6. [css] 怎么自定义鼠标指针的图案?

    [css] 怎么自定义鼠标指针的图案? cursor: url() ,auto url是自定义光标图案的绝对路径,auto是默认光标,当我们自定义的光标不起作用时,就用默认光标代替. 个人简介 我是歌 ...

  7. 自定义鼠标指针——让你的指针瞬间变美

    首先,在开始今天的内容之前,我们先来看一下上次投票结果: 很明显,我们的"2号选手"顺利夺得了第一. 好,二话不说,开启今天的内容. 先来看一下我的鼠标指针:(额,我是个MC党(注 ...

  8. Unity3D运行中改变鼠标指针图标

    Texture2D ClickedCursorImg;//把鼠标指针改为ClickedCursorImg Cursor.SetCursor(ClickedCursorImg, Vector2.zero ...

  9. ActionScript3.0自定义鼠标指针

    在游戏开发中,鼠标指针一般都不会使用windows自带的鼠标指针,而会根据自己的游戏风格自定义鼠标指针,下面就举一个自定义鼠标指针的方法. 我们先在Flash中将需要的指针美术资源先编辑好,转换为sw ...

  10. 自定义web页面上鼠标指针图标

    2019独角兽企业重金招聘Python工程师标准>>> 有时为了在特定区域显示特定的鼠标指针,需要设置 cursor属性,通常显示的是系统自带的鼠标指针,如何修改成为显示自定义图标的 ...

最新文章

  1. SAP WM中阶之存储类型上架策略I(Adding to existing stock)
  2. 将mysql的数据库导入到linux_linux 操作之一 如何在linux将本地数据*.sql文件导入到linux 云服务器上的mysql数据库...
  3. Linux磁盘格式化和挂载
  4. mybatis配置文件不在resources目录下时需进行的额外配置方法
  5. 用 pandas + matplotlib 绘制精美的K线图
  6. 0007-Reverse Integer(整数反转)
  7. 安卓使用JNI-NDK
  8. 微信小程序禁止页面上下滑动;uni-app微信小程序禁止页面上下滑动;uni-app小程序上下滑动;
  9. 更新管理器_Win10设备管理器失去了通过互联网更新驱动程序的能力
  10. python天天向上代码解析-python列表解析和生成器表达式
  11. 浅谈软件项目中的需求分析与需求管理
  12. Android安全防护之旅---只需要这几行代码让Android程序项目变得更加安全
  13. 用fact函数算阶乘
  14. 计算机桌面图标管理,桌面图标管理|轻松管理桌面图标
  15. 东方航空移动信息化专家路耄:东航的移动互联。
  16. win10无法使用内置管理员账户打开应用怎么办
  17. ArcGIS数据降雨量插值
  18. Linux 5.16 稳定版将带来诸多功能更新
  19. 【LeetCode343】剪绳子(动态规划)
  20. 书评:《软件创新之路-冲破高技术营造的牢笼》

热门文章

  1. Web自动化框架LazyUI使用手册(4)--控件抓取工具Elements Extractor详解(批量抓取)
  2. Android ndk开发C调用C++
  3. linux扫描仪如何使用方法,怎样在linux下设置和使用扫描仪.doc
  4. 两个EXCEL对比是完全否相同
  5. python3.8安装pyltp
  6. 用户和计算机硬盘系统的接口,硬盘接口类型,教您怎么看硬盘接口的类型
  7. IDEA安装Gitee插件
  8. 三次根号 matlab,MATLAB求三次根号,怎么是错误的?
  9. esphome 中使用bme280读取温度、湿度、气压信息
  10. 视频测试皮肤的软件,皮肤检测仪(LEIM魔镜仪)安装及操作视频