यूनिटी 5 में यूआई छवि के लिए माउस का पता लगाने के लिए कैसे?


9

मेरे पास एक ऐसी छवि है जिसके पास मुझे घुमाने और अंदर और बाहर से ज़ूम करने के लिए सेटअप है। परेशानी यह है कि दृश्य में कहीं से भी ज़ूम किया जा सकता है, लेकिन मैं केवल यही चाहता हूं कि जब छवि पर माउस मँडरा रहा हो तो वह ज़ूम कर ले। मैंने OnMouseEnter, OnMouseOver, इवेंट ट्रिगर्स, उन तीनों का उपयोग बिना कॉलाइडर के साथ करने की कोशिश की है, एक कोलाइडर के साथ, एक ट्राइगर कोलाइडर के साथ, और वह सब छवि पर और एक खाली गेम ऑब्जेक्ट पर। हालांकि उन लोगों में से किसी ने भी काम नहीं किया है ... इसलिए मैं बिल्कुल स्तब्ध हूं ... क्या कोई मेरी मदद कर सकता है!

यहाँ मेरी स्क्रिप्ट है:

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

जवाबों:


12

आप लागू कर सकते हैं IPointerEnter और IPointerExitइंटरफेस और 'राज्य में' के लिए बूलियन रखें:

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

-1

आपको पहले अपनी स्क्रिप्ट में एक फ़ंक्शन (विधि) को परिभाषित करना चाहिए, फिर छवि के लिए एक घटना ट्रिगर बनाएं (पॉइंटरइंटर इवेंट के साथ) और उस फ़ंक्शन को इसमें निर्दिष्ट करें।

http://answers.unity3d.com/questions/783279/46-ui-how-to-detect-mouse-over-on-button.html#answer-783299

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.