如何统一解决此OnPointerEnter()问题

时间:2019-06-26 05:06:06

标签: c# unity3d

我正在使用UI事件系统统一制作一些游戏菜单。

我的意图是当我将鼠标指针移到游戏菜单区域中的文本上方时, 字体变大,当我将鼠标指针移出时,字体变大 到原始大小。

它可以按照我的预期工作,但是存在一个问题,如果我将鼠标指针移到文本上方,然后将我的游戏菜单设置为非活动状态,然后使用按键再次将其激活,则字体大小不会恢复到其原始大小,只是会变大

这是我的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class HandleIngameMenu : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler,IPointerClickHandler
{

    private Text texts=null;
    private void Start()
    {
        texts = GetComponentInChildren<Text>();
    }


    public void OnPointerEnter(PointerEventData data)
    {
        texts.fontSize += 3;
    }


    public void OnPointerExit(PointerEventData data)
    {
        if (this.gameObject.name.Equals("ReStartBtn"))
        {
            texts.fontSize = 30;
        }
        else
        {
            texts.fontSize = 37;
        }
}

我想设置为非活动状态与将鼠标指针移出不一样。

有什么办法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

当您激活菜单时,请设置默认值,这样,将其禁用时将不会发生什么。或者,当您停用菜单时,请先运行默认方法,然后停用。这样,启用后它将恢复正常。