You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.9 KiB
C#
70 lines
1.9 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
using System;
|
|
using UnityEngine.EventSystems;
|
|
|
|
namespace MoreMountains.Tools
|
|
{
|
|
public static class MMGUI
|
|
{
|
|
/// <summary>
|
|
/// Sets the size of a rect transform to the specified one
|
|
/// </summary>
|
|
/// <param name="rectTransform"></param>
|
|
/// <param name="newSize"></param>
|
|
public static void SetSize(RectTransform rectTransform, Vector2 newSize)
|
|
{
|
|
Vector2 currSize = rectTransform.rect.size;
|
|
Vector2 sizeDiff = newSize - currSize;
|
|
rectTransform.offsetMin = rectTransform.offsetMin - new Vector2(sizeDiff.x * rectTransform.pivot.x, sizeDiff.y * rectTransform.pivot.y);
|
|
rectTransform.offsetMax = rectTransform.offsetMax + new Vector2(sizeDiff.x * (1.0f - rectTransform.pivot.x), sizeDiff.y * (1.0f - rectTransform.pivot.y));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns true if the pointer or first touch is blocked by UI
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static bool PointOrTouchBlockedByUI()
|
|
{
|
|
|
|
if (EventSystem.current.IsPointerOverGameObject())
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began )
|
|
{
|
|
if (EventSystem.current.IsPointerOverGameObject(Input.touches[0].fingerId))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates a texture of the specified size and color
|
|
/// </summary>
|
|
/// <param name="width"></param>
|
|
/// <param name="height"></param>
|
|
/// <param name="color"></param>
|
|
/// <returns></returns>
|
|
public static Texture2D MakeTex(int width, int height, Color color)
|
|
{
|
|
Color[] pixelColors = new Color[width * height];
|
|
|
|
for (int i = 0; i < pixelColors.Length; i++)
|
|
{
|
|
pixelColors[i] = color;
|
|
}
|
|
|
|
Texture2D newTexture = new Texture2D(width, height);
|
|
newTexture.SetPixels(pixelColors);
|
|
newTexture.Apply();
|
|
|
|
return newTexture;
|
|
}
|
|
}
|
|
} |