c# - Unity 3D (C#),我的鼠标检测偏移但我不知道为什么
问题描述
好的,所以我正在尝试制作一个当您将鼠标悬停在它上面时会亮起的框,我尝试使用“OnMouseOver”功能但它不起作用,这些框都是它们自己的 UI 元素,它只是一个带有图像的矩形变换零件。这是我正在使用的脚本,我使用 Gizmos 进行光线投射和左侧的红色框,但由于某种原因,鼠标必须移到一边才能显示出来,我希望它在顶部对于盒子本身,脚本中的 *55 是因为在我用来存储所有对象的 gridlayout 组中盒子的大小是 55。
脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SlotScript : MonoBehaviour
{
private void Update()
{
if(Input.mousePosition.x > (transform.position.x*55) - 20 && Input.mousePosition.x < (transform.position.x*55) + 20)
{
if (Input.mousePosition.y > (transform.position.y*55) - 20 && Input.mousePosition.y < (transform.position.y*55) + 20)
{
Debug.Log("White");
gameObject.GetComponent<Image>().sprite = Resources.Load<Sprite>("Sprites/Rack/WhiteBox");
}
else
{
gameObject.GetComponent<Image>().sprite = Resources.Load<Sprite>("Sprites/Rack/DarkBox");
}
}
else
{
gameObject.GetComponent<Image>().sprite = Resources.Load<Sprite>("Sprites/Rack/DarkBox");
}
}
private void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawCube(transform.position, transform.lossyScale * 55);
Gizmos.DrawLine(transform.position, GameObject.Find("Cursor").transform.position);
}
}
解决方案
推荐阅读
- r - R匹配模式:向量和列
- php - PHP MySQLi 中的多个搜索选项卡
- php - 传递给 PHP URL 时 AJAX 成功不起作用
- multithreading - netty:是否在 channelRead() 之前调用了连接侦听器?
- plsql - 如何在 Oracle Apex 中循环 G_FXX,其中 XX = (01,02..n)?
- three.js - Fbx 颜色不显示在 3 js 编辑器中
- php - 如果comapare相同的值然后取决于PHP中的其他键,如何对多维数组进行排序?
- linux-kernel - 在 IIO 驱动中使用 MODULE_DEVICE_TABLE
- php - PHP按日期爆炸,同时保持分隔符
- javascript - Ajax GET 返回整个页面或只是 PHP 响应