热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity动态更改鼠标样式

方法参考博客:https:gameinstitute.qq.comcommunitydetail118295usingSystem.Runtime.InteropS

方法参考博客:https://gameinstitute.qq.com/community/detail/118295

using System.Runtime.InteropServices;public class CursorTools
{[DllImport("User32.DLL")]public static extern IntPtr LoadCursorFromFile(string fileName);[DllImport("User32.DLL")]public static extern bool SetSystemCursor(IntPtr hcur, uint id);public const uint OCR_NORMAL = 32512;[DllImport("User32.DLL")]public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, IntPtr pvParam, uint fWinIni);public const uint SPI_SETCURSORS = 87;public const uint SPIF_SENDWININICHANGE = 2;///

/// 把准备好的.cur指针资源放在StreamingAssets/Cursors下,记得创建好这个文件夹/// private static string CursorPath(string fileName){return Path.Combine(Application.streamingAssetsPath, "Cursors", fileName) + ".cur";}/// /// 恢复Windows正常鼠标指针/// public static void Reset2NormalCursor(){SystemParametersInfo(SPI_SETCURSORS, 0, IntPtr.Zero, SPIF_SENDWININICHANGE);}/// /// 设置拖拽移动样式的指针/// public static void SetDragCursor(){IntPtr hcur_drag = LoadCursorFromFile(CursorPath("aero_move"));SetSystemCursor(hcur_drag, OCR_NORMAL);}
}

以拖拽功能为例,想拖拽的时候调用:

CursorTools.SetDragCursor();

用完记得把指针变回来:

CursorTools.Reset2NormalCursor();

C:\Windows\Cursors文件夹下面有很多Windows默认鼠标资源。


推荐阅读
author-avatar
捷克先生2012_929
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有