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
我想这是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语句,但仍然可以看到鼠标光标