在有些屏幕空间比较局促的游戏中,可能会采用可活动的按钮,根据点击的位置灵活摆放按钮,为了不遮挡其他物体和UI,自动吸附在屏幕边缘。我们的游戏还提了一个多按钮呈半圆分布的需求。具体的代码如下:
using DG.Tweening;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
namespace ArrowLegend
{
/// <summary>
/// 按钮自动吸附和呈半圆分布
/// </summary>
public class AutoAdsorptiontoEdge : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
private RectTransform rectTransform;
public Button[] PropButtons;
public Button ShopBtn;
private float radius = 0.5f;//半径
private float LeftAdsorptiontoX;//吸附到的位置,根据屏幕判断
private float RightAdsorptiontoX;
private float UpAdsorptiontoY;//上下位置判断,防止出现按钮到屏幕外的情况
private float DownAdsorptionY;
void Start()
{
rectTransform = GetComponent<RectTransform>()