为啥事件触发器在统一 2d 中不起作用?
Posted
技术标签:
【中文标题】为啥事件触发器在统一 2d 中不起作用?【英文标题】:Why doesn't Event Trigger work in unity 2d?为什么事件触发器在统一 2d 中不起作用? 【发布时间】:2021-03-07 10:09:05 【问题描述】:我在统一 2d 中创建了一个 UI 按钮,它工作正常。但我认为事件触发组件不起作用。当光标在按钮上时,我想使按钮变大,并在光标退出时恢复正常大小。这是我的脚本...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayAgainButton : MonoBehaviour
public void PointerEnter()
Debug.Log("Enter");
transform.localScale = new Vector2(1.2f, 1.2f);
public void PointerExit()
Debug.Log("Exit");
transform.localScale = new Vector2(1f, 1f);
// Start is called before the first frame update
void Start()
// Update is called once per frame
void Update()
玩游戏时控制台提示光标进出
但按钮的比例永远不会改变。
这里有什么问题?
【问题讨论】:
其他东西似乎会覆盖比例,例如像HorizontalLayoutGroup
这样的任何东西都启用了控制子规模
【参考方案1】:
您需要添加事件系统。试试这样。
using UnityEngine;
using UnityEngine.EventSystems;
public class ButtonTest : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
public void OnPointerEnter(PointerEventData eventData)
Debug.Log("Enter");
this.transform.localScale = new Vector2(1.2f, 1.2f);
public void OnPointerExit(PointerEventData eventData)
Debug.Log("Exit");
this.transform.localScale = new Vector2(1f, 1f);
【讨论】:
【参考方案2】:使用键盘的 T 键将场景中的手柄模式设置为画布模式。键 w,e,r,t 分别用于操作位置、旋转、缩放和画布。您将在角落看到蓝色圆圈,您可以使用这些圆圈设置大小。
检查放大以触发您的事件。对于按钮组件情况,效果区域由画布大小决定。也可能是这种情况。
【讨论】:
【参考方案3】:-
检查您的 Button 是否在布局中 - 布局将设置大小并覆盖您在代码中所做的更改。
Button 可能使用 RectTransform(因为它是一个 UI 元素),因此您可以尝试设置它的 localScale。
【讨论】:
以上是关于为啥事件触发器在统一 2d 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的“onclick()”事件在 Angular 中不起作用?
为啥 C# 的 onClick 事件在表标签的 <td> 中不起作用