Unity点击button显示/隐藏Image方法

 (我只是提供一些例子,不需要跟我一模一样)

例子1:制作公告界面

①创建一个button,建议重命名(便于分辨),我改为公告按钮

 ②创建一个image,再创建一个button在image的子目录,同样建议重命名(便于分辨),我改为image=公告,button=确定

优化一下布局

设置公告按钮的On Click()注意两个勾

再设置’‘确定’‘button的事件

这个钩可以选择勾上或不勾,勾上则进入就显示,不勾则需要点击按钮才显示

效果图

效果图2(这个只需要把image调成跟Canvas一样大小就行了)

例子2(使用脚本):制作设置界面

①添加一个image,在其子目录添加一个button,分别改名为设置和关闭

优化一下布局

②添加一个button,改名为设置按钮

③新建一个脚本UITips.cs

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

public class UITips : MonoBehaviour
{

    public static Vector3 vec3, pos;
    // Use this for initialization
    void Start()
    {

        gameObject.SetActive(false);
    }

    /// <summary>
    /// 按下鼠标将会触发事件
    /// </summary>
    public void PointerDown()
    {
        vec3 = Input.mousePosition;//获取当前鼠标的位置
        pos = transform.GetComponent<RectTransform>().position;//获取自己所在的位置
    }

    /// <summary>
    /// 鼠标拖拽时候会被触发的事件
    /// </summary>
    public void Drag()
    {
        Vector3 off = Input.mousePosition - vec3;
        //此处Input.mousePosition指鼠标拖拽结束的新位置
        //减去刚才在按下时的位置,刚好就是鼠标拖拽的偏移量
        vec3 = Input.mousePosition;//刷新下鼠标拖拽结束的新位置,用于下次拖拽的计算
        pos = pos + off;//原来image所在的位置自然是要被偏移
        transform.GetComponent<RectTransform>().position = pos;//直接将自己刷新到新坐标
    }

    /// <summary>
    /// 此函数接口将赋予给“弹出对话框”按钮的onClick事件
    /// </summary>
    public void onShow()
    {
        gameObject.SetActive(true);
    }

    /// <summary>
    /// 此函数接口将赋予给“确认”按钮的onClick事件
    /// </summary>
    public void onOK()
    {
        gameObject.SetActive(false);
    }
    // Update is called once per frame
    void Update()
    {

    }
}

把脚本拖拽给设置(image),给image添加Event Trigger(在image最下面点击Addcomponent>Event>Event Trigger)

在Event Trigger里点击Add New Event Type>Pointer Dwon , Add New Event Type>Drag

设置如图

给设置按钮(button)添加事件

给设置(image)上的关闭(button)设置如图

效果图

例子3:qq群

猜你喜欢

转载自blog.csdn.net/weixin_57362299/article/details/118343134
今日推荐