Làm cách nào để phát hiện chuột trên hình ảnh UI trong Unity 5?


9

Tôi có một hình ảnh mà tôi đã thiết lập để di chuyển xung quanh và phóng to và thu nhỏ. Vấn đề là việc phóng to có thể được thực hiện từ bất cứ đâu trong cảnh, nhưng tôi chỉ muốn nó phóng to khi con chuột đang di chuột qua hình ảnh. Tôi đã thử sử dụng OnMouse Entry, OnMouseOver, trình kích hoạt sự kiện, cả ba người không có máy va chạm, với máy va chạm, với trình tạo va chạm kích hoạt và tất cả những thứ đó trên chính hình ảnh và trên một đối tượng trò chơi trống. Tuy nhiên không ai trong số họ đã làm việc ... Vì vậy, tôi hoàn toàn bối rối ... Ai đó có thể giúp tôi ra khỏi đây!

Đây là kịch bản của tôi:

    private float zoom;
    public float zoomSpeed;
    public Image map;

    public float zoomMin;
    public float zoomMax;

    void Update () {
        zoom = (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed);
        map.transform.localScale += new Vector3(map.transform.localScale.x * zoom, map.transform.localScale.y * zoom, 0);
        Vector3 scale = map.transform.localScale;
        scale = new Vector3(Mathf.Clamp(map.transform.localScale.x, zoomMin, zoomMax), Mathf.Clamp(map.transform.localScale.y, zoomMin, zoomMax), 0);
        map.transform.localScale = scale;
    }

Câu trả lời:


12

Bạn có thể triển khai IPointerEnterIPointerExitgiao diện và giữ boolean cho 'over state':

using System;
using UnityEngine;
using UnityEngine.EventSystems;

public class TestOver : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    public bool isOver = false;

    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("Mouse enter");
        isOver = true;
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("Mouse exit");
        isOver = false;
    }
}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.