Unity 5'te UI görüntüsü için fareyi nasıl tespit edebilirim?


9

Hareket etmek ve yakınlaştırmak ve uzaklaştırmak için ayarladığım bir görüntüm var. Sorun zum sahnenin herhangi bir yerinden yapılabilir, ancak sadece farenin görüntünün üzerine geldiğinde zum yapmasını istiyorum. OnMouseEnter, OnMouseOver, olay tetikleyicileri, bir üç, bir çarpıştırıcı ile, bir çarpıştırıcı ile, bir tetikleyici ve tüm bu görüntünün kendisi ve boş bir oyun nesnesi üzerinde kullanmaya çalıştım. Ancak bunların hiçbiri işe yaramadı ... Bu yüzden kesinlikle şaşırdım ... Birisi bana yardım edebilir mi?

İşte benim senaryom:

    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;
    }

Yanıtlar:


12

Uygulayabilir IPointerEnter ve IPointerExitarayüzler kurabilir ve 'over state' için boole tutabilirsiniz:

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;
    }
}

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.