当前位置:   article > 正文

Unity鼠标光标使用学习_unity cursor

unity cursor

Unity下的鼠标光标程序相关的就一个类下的2、3个方法。

首先,光标导入图片的设置需要将类型设置为Cursor。
在这里插入图片描述
设置鼠标光标的方法就一个,SetCursor。第一个参数是图片,第二个参数是点击点的偏移量,第三个参数是类型。

    public Texture2D texture;
    void Start()
    {
        Cursor.SetCursor(texture, new Vector2(40, 4), CursorMode.Auto);
    }
  • 1
  • 2
  • 3
  • 4
  • 5

当使用CursorMode.Auto的时候,会使用硬件进行光标处理。性能好,兼容好。但是,在windows系统下,会强制把光标大小缩小到32*32。

在这里插入图片描述

当使用CursorMode.ForceSoftware的时候,会使用软件来处理光标。在windows系统下想要鼠标光标变大这是唯一的方法,但是偶尔会有小bug。在使用中发现unity2022.1+HDRP环境下,图片颜色会变深。

在这里插入图片描述
要实现图标动画的话,只能一张一张的图片轮流替换。CodeMonkey大佬有提供光标动画的代码,我就直接抄过来了。

[CreateAssetMenu]
public class CursorAnimation : ScriptableObject
{
    public CursorType cursorType;
    public Texture2D[] textureArray;
    public float frameRate;
    public Vector2 offset;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
public class CursorMananger : MonoBehaviour
{
    public CursorAnimation[] cursorAnimations;
    private CursorAnimation currentAnimation;

    private float frameRate;
    private int frameCount;
    private int currentFrame;
    private float frameTimer;

    private void Start()
    {
        SetActiveCursorAnimation(cursorAnimations[0]);
    }

    private void Update()
    {
        frameTimer -= Time.deltaTime;
        if (frameTimer <= 0f)
        {
            frameTimer += frameRate;
            currentFrame = (currentFrame + 1) % frameCount;
            Cursor.SetCursor(currentAnimation.textureArray[currentFrame], currentAnimation.offset, CursorMode.Auto);
        }

        if (Input.GetKeyDown(KeyCode.A)) SetActiveCursorAnimation(cursorAnimations[(int)CursorType.Arrow]);
        if (Input.GetKeyDown(KeyCode.S)) SetActiveCursorAnimation(cursorAnimations[(int)CursorType.Star]);
    }

    private void SetActiveCursorAnimation(CursorAnimation value)
    {
        currentAnimation = value;
        currentFrame = 0;
        frameTimer = value.frameRate;
        frameCount = value.textureArray.Length;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

B站光标效果演示视频:https://www.bilibili.com/video/BV1EN4y1j7Ne/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/93222
推荐阅读
相关标签
  

闽ICP备14008679号