我正在尝试突出显示由鼠标悬停的瓷砖。这是我的代码:
void Update ()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Vector3 point = hit.point;
Vector2Int gridPoint = Geometry.GridFromPoint(point);
tileHighlight.SetActive(true);
tileHighlight.transform.position = Geometry.PointFromGrid(gridPoint);
if (Input.GetMouseButtonDown(0))
{
// ...
编辑:
public class Geometry
{
static public Vector3 PointFromGrid(Vector2Int gridPoint)
{
float x = -3.5f + 1.0f * gridPoint.x;
float z = -3.5f + 1.0f * gridPoint.y;
return new Vector3(x, 0, z);
}
static public Vector2Int GridPoint(int col, int row)
{
return new Vector2Int(col, row);
}
static public Vector2Int GridFromPoint(Vector3 point)
{
int col = Mathf.FloorToInt(4.0f + point.x);
int row = Mathf.FloorToInt(4.0f + point.z);
return new Vector2Int(col, row);
}
}
光标对象不在鼠标下面,我如何修复和对齐它?
您要将它转换为网格点,然后从网格转换为点。我们也没有看到您的转换代码。
我建议尝试这样做,至少在调试时是这样:
tileHighlight.SetActive(true);
tileHighlight.transform.position = hit.point;
编辑:
我假设你的网格是缩放的,所以它不适合计算的位置。您可以尝试以下代码:
public int grid_scale = 2; // play with this in the inspector
Vector3 snapped = Vector3.zero;
snapped.x = Mathf.Round(hit.point.x / grid_scale) * grid_scale;
snapped.z = Mathf.Round(hit.point.z / grid_scale) * grid_scale;
您可能需要添加一个偏移量来使它以瓷砖为中心。
我必须将鼠标光标(指针)移动到一个特定的元素,然后点击该元素。我已经写了下面的代码,但它没有帮助。虽然我可以看到光标类型(图像)正在改变,但它并没有改变它的位置。 请帮忙。下面是我的代码:
问题内容: 在Linux下如何使用C程序在X窗口中设置 鼠标 光标的位置?谢谢:)(就像WIN中的setcursorpos()一样) 编辑:我尝试过此代码,但不起作用: 问题答案: 12.4- 移动指针 尽管通常 应将 指针的移动留给最终用户控制,但有时有必要在程序控制下将指针移动到新位置。 要将指针移动到窗口中的任意点,请使用XWarpPointer()。 例:
问题内容: 有没有一种方法可以获取鼠标的位置并将其设置为var? 问题答案: 您可以设置一个回调来响应事件: 我不确定您想要哪种变量。在上面,我设置了局部变量并设置了鼠标坐标。 如果创建类方法,则可以设置实例属性和鼠标坐标,然后可以从其他类方法访问它们。
有什么想法吗?提前谢了。
本文向大家介绍vim 相对于光标位置滚动,包括了vim 相对于光标位置滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 z 在窗口顶部重新绘制当前行,然后将光标放在该行的第一个非空白字符上。 zt 喜欢z但将光标留在同一列中。 z. 在窗口中心重绘当前行,然后将光标放在该行的第一个非空白字符上。 zz 喜欢z.但将光标留在同一列中。 z- 在窗口底部重画当前行,然后将光标放在该行的第
问题内容: 我正在尝试使用Jinput打印出鼠标位置: 这是我的InputManager,它在初始化时扫描所有输入设备,并将所有鼠标分离到单独的列表中: x和y的打印信息始终为0。我在Windows 10上运行此程序,是否会引起任何问题?如何使用Jinput从鼠标获取鼠标数据? 问题答案: JInput处于较低级别,您正在混淆窗口指针和鼠标。鼠标只是相对轴> 2的设备。每次轮询后或在每个事件中的值