首页 > 解决方案 > 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);
    }
}

左边是场景视图,右边是游戏视图图像: 在此处输入图像描述

标签: c#unity3d

解决方案


推荐阅读