如何使用flag将鼠标指针改为默认或其他纹理?

第一个处理鼠标光标的脚本。

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

public class HandleMouseCursor : MonoBehaviour
{
    public bool useDefaultCursor = true;
    public Texture2D mouse;
    public Texture2D hand;
    public Texture2D grab;
    public CursorMode cursorMode = CursorMode.Auto;
    public Vector2 hotSpot = Vector2.zero;

    // Use this for initialization
    void Start ()
    {
        if(useDefaultCursor == true)
        {
            mouse = Texture2D.def
        }

        setMouse();
    }

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

    }

    public void setMouse()
    {
        Cursor.SetCursor(mouse, hotSpot, cursorMode);
    }

    public void setHand()
    {
        Cursor.SetCursor(hand, hotSpot, cursorMode);
    }

    public void setGrab()
    {
        Cursor.SetCursor(grab, hotSpot, cursorMode);
    }
}

我添加了一个标志:useDefaultCursor,然后试着开始使用它。

if(useDefaultCursor == true)
            {
                mouse = Texture2D.def
            }

但不知道如何继续 Texture2D没有默认属性。

第二个脚本使用了第一个方法。

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

public class UpdateCursor : MonoBehaviour
{
    HandleMouseCursor cursor;
    bool carrying;

    // Use this for initialization
    void Start ()
    {
        cursor = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<HandleMouseCursor>();
    }

    // Update is called once per frame
    void Update ()
    {
        if (carrying)
            cursor.setGrab();
    }

    private void OnMouseEnter()
    {
        cursor.setHand();
    }

    private void OnMouseExit()
    {
        cursor.setMouse();
    }

    private void OnMouseDown()
    {
        carrying = true;
    }

    private void OnMouseUp()
    {
        carrying = false;
        cursor.setMouse();
    }
}

我想做的是使用标志useDefaultCursor,如果为真,则使用常规的默认鼠标光标,如果为假,则使用公共字段中的鼠标纹理,如果有任何纹理分配到字段中,如果没有任何纹理分配,则再次使用默认鼠标光标。

解决方案:

在你的 HandleMouseCursor::setMouse() 就用 useDefaultCursor 如你所愿,并写。

void setMouse()
{
    if (useDefaultCursor)
        Cursor.SetCursor(null, hotSpot, cursorMode);
    else
        Cursor.SetCursor(mouse, hotSpot, cursorMode);
}

给TA打赏
共{{data.count}}人
人已打赏
解决方案

如何获取当前带有路由值的url?

2022-4-21 2:00:15

解决方案

对象没有属性'split()' Python

2022-4-21 3:00:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索