add project files

This commit is contained in:
Boris Nikolaev
2026-08-14 01:58:31 +03:00
parent 9134cad79b
commit 5f1e94b653
4399 changed files with 12286903 additions and 0 deletions
@@ -0,0 +1,60 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace OHM.UnityToolkit
{
public static class UIUtils
{
public static void AlignToWorldObject(Transform worldObject, RectTransform uiObjectToAlign)
{
if (worldObject != null)
{
AlignToWorldPosition(worldObject.position, uiObjectToAlign);
}
}
public static void AlignToWorldPosition(Vector3 targetWorldPosition, RectTransform uiObjectToAlign)
{
Camera cam = Camera.main;
if (cam == null || uiObjectToAlign == null)
{
return;
}
Canvas canvas = uiObjectToAlign.GetComponentInParent<Canvas>();
if (canvas == null)
{
return;
}
RectTransform canvasRect = canvas.GetComponent<RectTransform>();
Vector3 viewport = cam.WorldToViewportPoint(targetWorldPosition);
Vector2 canvasSize = canvasRect.sizeDelta;
uiObjectToAlign.anchoredPosition = new Vector2(
(viewport.x - canvasRect.pivot.x) * canvasSize.x,
(viewport.y - canvasRect.pivot.y) * canvasSize.y);
}
public static bool IsInputBlocked(Vector2 inputPos)
{
var pointer = new PointerEventData(EventSystem.current);
pointer.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
var results = new List<RaycastResult>();
EventSystem.current.RaycastAll(pointer, results);
for (int i = 0; i < results.Count; i++)
{
GameObject go = results[i].gameObject;
if (go.GetComponent<Button>() != null)
{
return true;
}
if (go.GetComponent<UIInputBlocker>() != null)
{
return true;
}
}
return false;
}
}
}