Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebGL上的鼠标光标未更改_C#_Html_Unity3d_Mouse Cursor_Unity Webgl - Fatal编程技术网

C# WebGL上的鼠标光标未更改

C# WebGL上的鼠标光标未更改,c#,html,unity3d,mouse-cursor,unity-webgl,C#,Html,Unity3d,Mouse Cursor,Unity Webgl,我更改了鼠标图像属性: 纹理类型-光标 读/写-启用html5-覆盖webgl 最大尺寸-32 格式-RGB 压缩-DXT1 我使用这个编码来更改鼠标光标。在unity编辑器中,它工作正常,当我导出到html5鼠标时,光标并没有改变 在浏览器中调试场景时,会显示如下错误: 加载此URL时出错:无法加载blob的源:。 [异常…”无法打开输入源'file:////localhost:56077/f3a83177-83ac-4798-81fe-1b07da4548c2'“nsresult:”0x

我更改了鼠标图像属性:

  • 纹理类型-光标
  • 读/写-启用html5-覆盖webgl
  • 最大尺寸-32
  • 格式-RGB
  • 压缩-DXT1
我使用这个编码来更改鼠标光标。在unity编辑器中,它工作正常,当我导出到html5鼠标时,光标并没有改变

在浏览器中调试场景时,会显示如下错误:

加载此URL时出错:无法加载blob的源:。 [异常…”无法打开输入源'file:////localhost:56077/f3a83177-83ac-4798-81fe-1b07da4548c2'“nsresult:”0x80520001(NS_错误_文件_无法识别_路径)”位置:“JS帧::resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/DevToolsUtils.js ::mainThreadFetch::第518行“数据:是] 堆栈:mainThreadFetch@resource://gre/modules/commonjs/toolkit/loader.js->resource://devtools/shared/DevToolsUtils.js:518:5 _getSourceText/resource://devtools/server/actors/source.js:393:27 process@resource://gre/modules/Promise.jsm->resource://gre/modules/Promise-backend.js:922:23 walkerLoop@resource://gre/modules/Promise.jsm->resource://gre/modules/Promise-backend.js:806:7 scheduleWalkerLoop/resource://gre/modules/Promise-backend.js:742:11 行:518,列:0


我想这是WebGL。上次我在WebGL上尝试将
Cursor
API与
CursorMode.Auto
选项一起使用时,它不起作用,应该被视为一个bug

我必须对WebGL使用
CursorMode.ForceSoftware
,而对其他应用程序使用
CursorMode.Auto
UNITY\u WEBGL
宏的帮助下生成

 using System.Collections;
 using System.Collections.Generic; 
 using UnityEngine;

 public class mouseScript : MonoBehaviour {

 public Texture2D cursorTexture;
 public CursorMode cursorMode = CursorMode.Auto; 
 public Vector2 hotSpot = Vector2.zero;

 // Use this for initialization
 void Start () {

 }

 // Update is called once per frame
 void Update () {

 }
 void OnMouseEnter()
 {
     Debug.Log("texture mouse " + cursorTexture + "  cusor visiblity" + Cursor.visible); 
     Cursor.SetCursor(cursorTexture, hotSpot, cursorMode);
 }
 void OnMouseExit()
 {
     Cursor.SetCursor(null, Vector2.zero, cursorMode);
 }

}

请注意,如果这仍然不起作用,那么您必须创建自己的游标API,这非常简单

只需使用
cursor.visible=false禁用主光标
然后使用假鼠标指针纹理并使用
Input.mousePosition
设置其位置


另一个选择是制作Javascript插件,但这应该是最后的解决方案。

我假设这是WebGL。上次我在WebGL上尝试将
Cursor
API与
CursorMode.Auto
选项一起使用时,它不起作用,应该被视为一个bug

我必须对WebGL使用
CursorMode.ForceSoftware
,而对其他应用程序使用
CursorMode.Auto
UNITY\u WEBGL
宏的帮助下生成

 using System.Collections;
 using System.Collections.Generic; 
 using UnityEngine;

 public class mouseScript : MonoBehaviour {

 public Texture2D cursorTexture;
 public CursorMode cursorMode = CursorMode.Auto; 
 public Vector2 hotSpot = Vector2.zero;

 // Use this for initialization
 void Start () {

 }

 // Update is called once per frame
 void Update () {

 }
 void OnMouseEnter()
 {
     Debug.Log("texture mouse " + cursorTexture + "  cusor visiblity" + Cursor.visible); 
     Cursor.SetCursor(cursorTexture, hotSpot, cursorMode);
 }
 void OnMouseExit()
 {
     Cursor.SetCursor(null, Vector2.zero, cursorMode);
 }

}

请注意,如果这仍然不起作用,那么您必须创建自己的游标API,这非常简单

只需使用
cursor.visible=false禁用主光标
然后使用假鼠标指针纹理并使用
Input.mousePosition
设置其位置


另一个选择是制作Javascript插件,但这应该是最后的解决方案。

只需在Playersetting default Cursor.run浏览器中设置即可。 您需要将名为“NetBox2.exe”的软件与unityWebGL放在同一目录中。
运行它,在浏览器中输入“”。

只需在播放器中设置默认光标。在chrome浏览器中运行。 您需要将名为“NetBox2.exe”的软件与unityWebGL放在同一目录中。
运行它,在浏览器中输入“”。

我也遇到了同样的问题,我的手动光标没有显示在webgl构建中。所以我选择了@programmer answer,下面是对我有效的修改版本:

#if UNITY_WEBGL
        Cursor.SetCursor(cursorTexture, hotSpot, CursorMode.ForceSoftware);
#else
        Cursor.SetCursor(cursorTexture, hotSpot, CursorMode.Auto);
#endif

通过使用图像设置的附加步骤,我在图像导入设置中将图像大小设置为32。

我也遇到了与webgl构建中未显示手光标相同的问题。所以我选择了@programmer answer,下面是对我有效的修改版本:

#if UNITY_WEBGL
        Cursor.SetCursor(cursorTexture, hotSpot, CursorMode.ForceSoftware);
#else
        Cursor.SetCursor(cursorTexture, hotSpot, CursorMode.Auto);
#endif

通过使用图像设置的附加步骤,我在图像导入设置中将图像大小设置为32。

虽然我的评论不能完全解决您的问题,但您可以创建一个用于更改HTML正文元素类的注释。然后,根据主体的类,您将能够在我的注释不能完全解决您的问题的情况下,创建一个用于更改HTML主体元素的类。然后,根据主体的类别,如果我使用CursorMode.ForceSoftware,您将能够看到自定义和默认鼠标光标。我使用了Cursor.visible=false语句,但鼠标光标仍然可见如果我使用CursorMode.ForceSoftware,则自定义和默认鼠标光标都可见。我使用了Cursor.visible=false语句,但仍然可以看到鼠标光标