Cursor 类

这篇文档写了三部分:CursorLock枚举、Cursor类、CursorMode枚举
做手游的话还是不用理会的


用于设置 鼠标光标(mouse pointer)
仅在 macOS、Windows、Linux 支持,在其他不支持的平台上使用默认的

Windows Store Apps:仅支持 hardware cursor,PlayerSettings.defaultCursor

hardware cursor :PlayerSettings.defaultCursor
sofrware cursor :运行时使用 Cursor.SetCursor

注意:相关贴图必须在导入设置中设为 cursor

CursorLockMode 枚举

How the cursor should behave.

These are a various modes that control the behaviour of the Cursor. A default cursor must be set in PlayerSettings > Default Cursor.

None —— 没有做任何更改
Locked —— 锁定在视图中心,不显示光标(此时忽略Cursor.visible的设置)
Confined —— 将光标限定在游戏窗口(在Unity编辑器中没啥影响,没有Build一个试试)

Cursor静态属性 (lockState visible)

举个例子,PC端游戏有些不需要显示光标,但是需要鼠标来点击、已经旋转镜头,
此时如果是窗口模式,鼠标光标不限定在窗口内,那么会点到其他程序或桌面上,而且鼠标离开游戏镜头不再旋转,
这样就很不合理。。。。。。

Cursor.lockState

确定硬件指针是锁定到视图的中心,还是被约束到窗口,还是根本不受约束。
锁定后,光标将放置在视图的中心,无法移动。光标在这种状态下是不可见的,不管Cursor.Visible的值如何。
在受限时,游标的行为正常,但受限于视图除外。例如,如果应用程序在窗口中运行,则鼠标光标不能将窗口保留在受限模式下。
要提供良好的用户体验,建议的行为只是锁定或限制光标作为用户操作的结果,例如提供一个按钮。
游标状态可以由操作系统或统一来更改。因此,您应该检查光标的状态,例如当应用程序恢复焦点或游戏状态更改以显示UI时。在编辑器中,当按Escape或切换应用程序时,光标会自动重置。在独立播放器中,您可以完全控制鼠标光标,但切换应用程序仍然重置游标。

Cursor.visible

可读可写,获取设置鼠标光标的显示隐藏。
特殊情况:当CursorLockMode.Locked模式,鼠标光标是一定不可见的


Cursor静态方法 (SetCursor)

Cursor.SetCursor
用到一个Texture2D

//texture   —— texture2D,导入设置为Cursor、或者“Read/Write enabled”
//hotspot   —— 要用作目标点的纹理左上角的偏移量(必须在光标的范围内)。一般用 Vector2.zero
//cursorMode    —— 允许此游标在受支持的平台上呈现为硬件游标,或强制软件游标。
public static void SetCursor(Texture2D texture, Vector2 hotspot, CursorMode cursorMode); 
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public Texture2D cursorTexture;
    public CursorMode cursorMode = CursorMode.Auto;
    public Vector2 hotSpot = Vector2.zero;
    void OnMouseEnter()
    {
        Cursor.SetCursor(cursorTexture, hotSpot, cursorMode);
    }

    void OnMouseExit()
    {
        Cursor.SetCursor(null, Vector2.zero, cursorMode);
    }
}

CursorMode枚举

上边用到的 CursorMode

确定是否使用软件渲染渲染鼠标光标,或者在支持的平台上硬件渲染。
software rendering:用程序中指定的光标
hardware rendering:用PlayerSetting中设置的光标

public enum CursorMode
{
    Auto,                  //在支持的平台上使用 hardware cursor(mac、windows、linux)
    ForceSoftware          //强制使用 Software cursor
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Cursor是Python中数据库API的一部分,用于在数据库连接中执行查询操作并管理结果集。它提供了一种从结果集中检索行和列数据的方法,并提供了一些用于浏览和修改结果集的方法。 在使用Cursor对象之前,必须先建立一个数据库连接。一旦建立了连接,可以使用Cursor()方法创建一个游标对象,然后可以使用该游标对象执行查询操作和管理结果集。 一些常用的Cursor方法包括: - execute():执行SQL查询,可以传递参数,返回值为受影响的行数; - executemany():执行多个参数相同的SQL查询,返回值为受影响的行数; - fetchone():获取结果集中的下一行数据,返回值为一行数据的元组; - fetchall():获取结果集中的所有行数据,返回值为多个元组组成的列表; - fetchmany():获取结果集中的指定数量的行数据,返回值为多个元组组成的列表。 此外,Cursor还提供了一些用于管理结果集的方法,例如scroll()、rowcount()、fetchwarnings()等。 总之,Cursor是Python数据库API中一个非常重要的,它提供了一种从数据库中检索数据的方法,并且可以通过一些方法来管理和修改结果集。 ### 回答2: Cursor(光标)是用于在数据库查询中遍历结果集的Java。在Java中,我们使用Cursor来执行SQL查询并从结果集中检索数据。以下是Cursor的一些重要信息和功能: 1. 创建Cursor对象:我们可以使用数据库的query()或rawQuery()方法来执行SQL查询,并将结果存储在Cursor对象中。例如:Cursor cursor = database.rawQuery("SELECT * FROM table", null); 2. 遍历结果集:Cursor对象允许我们按顺序逐个遍历结果集中的记录。我们可以使用moveToFirst()方法将光标移到结果集的第一行,然后使用moveToNext()方法逐个移动到下一行。我们还可以使用moveToPrevious()和moveToLast()方法在结果集中移动。 3. 获取列索引:我们可以使用getColumnIndex()方法来获取指定列名的索引。例如,如果我们要获取"name"列的索引,我们可以使用int index = cursor.getColumnIndex("name"); 4. 检索数据:我们可以使用Cursor中的各种get方法来检索数据。根据具体的列型,我们可以使用getInt()、getLong()、getFloat()、getDouble()等方法来获取整数、长整数、浮点数、双精度数等型的数据。我们还可以使用getString()方法来获取字符串型的数据。 5. 关闭Cursor:在使用完Cursor对象后,我们应该及时关闭它以释放资源。我们可以使用close()方法来关闭Cursor对象。例如,cursor.close(); 总体而言,Cursor是一个非常有用的工具,可以帮助我们在数据库查询中获取和处理数据。它提供了各种方法和功能,使得我们可以方便地遍历结果集并获取所需的数据。但是,在使用Cursor对象时,我们需要小心处理空指针异常和内存泄漏问题,以确保代码的稳定性和性能。 ### 回答3: Cursor是Java编程语言中的一个,用于处理数据库查询结果的游标(cursor)对象。它提供了一种机制,使得我们可以从查询结果集中逐行访问数据。具体来说,Cursor提供了以下几个重要的方法和属性: 1. moveToFirst():将游标移动到结果集的第一行。 2. moveToNext():将游标移动到结果集的下一行。 3. moveToPrevious():将游标移动到结果集的上一行。 4. moveToLast():将游标移动到结果集的最后一行。 5. isAfterLast():判断游标是否指向结果集的最后一行之后。 6. isBeforeFirst():判断游标是否指向结果集的第一行之前。 7. getCount():获取结果集中的总行数。 8. getColumnIndex(String columnName):根据列名获取该列在结果集中的索引。 9. getColumnName(int columnIndex):根据列索引获取该列的名称。 10. getString(int columnIndex):根据列索引获取字符串型的列值。 11. getInt(int columnIndex):根据列索引获取整数型的列值。 12. getLong(int columnIndex):根据列索引获取长整数型的列值。 13. getFloat(int columnIndex):根据列索引获取单精度浮点数型的列值。 14. getDouble(int columnIndex):根据列索引获取双精度浮点数型的列值。 通过使用Cursor,我们可以轻松地遍历查询结果集中的每一行,并获取每一列的值。这种逐行访问的方式非常适合处理大型的查询结果集,能够有效地减少内存占用和提高程序性能。同时,Cursor还可以和其他(如Adapter)结合使用,实现数据的展示和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值