(我只是提供一些例子,不需要跟我一模一样)
例子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群