Unity UI按钮能否在按下时自行销毁、移动或缩放隐藏?
Unity UI按钮自操作问题解决方案
问题根源
你遇到的不是按钮无法操作自身,而是脚本误关联到了预制体,或者代码中错误引用了预制体对象,导致修改的是预制体而非场景中的按钮实例。
三种需求的正确实现代码
给场景中的按钮绑定以下脚本,在按钮的OnClick事件中调用对应方法即可:
1. 按下后销毁自身
using UnityEngine; public class ButtonHandler : MonoBehaviour { public void DestroyButton() { Destroy(gameObject); // 销毁当前挂载脚本的按钮实例 } }
2. 移至屏幕外
using UnityEngine; public class ButtonHandler : MonoBehaviour { public void MoveOffScreen() { var rectTransform = GetComponent<UnityEngine.UI.RectTransform>(); // 移至屏幕右侧外,可根据需求调整坐标值 rectTransform.anchoredPosition = new Vector2(Screen.width + 200, rectTransform.anchoredPosition.y); } }
3. 缩放至不可见
using UnityEngine; public class ButtonHandler : MonoBehaviour { public void ScaleToHide() { transform.localScale = Vector3.zero; // 将缩放设为0实现隐藏 } }
关键绑定步骤
- 确保脚本挂载到场景中已存在的按钮对象上,而非预制体
- 在按钮的OnClick事件面板里,拖拽场景中的按钮到引用框
- 选择脚本中对应的方法(比如
DestroyButton)
这样操作后,按下按钮时就会修改场景中的按钮实例,不会影响预制体。
内容的提问来源于stack exchange,提问作者Ryan sharp
相关产品推荐
相关产品推荐

