NodeScript+ 导入了个 UI Extend

Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-05-23 21:05:16 +08:00
parent 7ea1f1d8c3
commit 51878f15ae
531 changed files with 198095 additions and 144473 deletions

View File

@@ -0,0 +1,64 @@
/// Credit .entity
/// Sourced from - http://forum.unity3d.com/threads/rescale-panel.309226/
using UnityEngine.EventSystems;
namespace UnityEngine.UI.Extensions
{
[AddComponentMenu("UI/Extensions/RescalePanels/RescaleDragPanel")]
public class RescaleDragPanel : MonoBehaviour, IPointerDownHandler, IDragHandler
{
private Vector2 pointerOffset;
private RectTransform canvasRectTransform;
private RectTransform panelRectTransform;
private Transform goTransform;
void Awake()
{
Canvas canvas = GetComponentInParent<Canvas>();
if (canvas != null)
{
canvasRectTransform = canvas.transform as RectTransform;
panelRectTransform = transform.parent as RectTransform;
goTransform = transform.parent;
}
}
public void OnPointerDown(PointerEventData data)
{
panelRectTransform.SetAsLastSibling();
RectTransformUtility.ScreenPointToLocalPointInRectangle(panelRectTransform, data.position, data.pressEventCamera, out pointerOffset);
}
public void OnDrag(PointerEventData data)
{
if (panelRectTransform == null)
return;
Vector2 pointerPosition = ClampToWindow(data);
Vector2 localPointerPosition;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(
canvasRectTransform, pointerPosition, data.pressEventCamera, out localPointerPosition
))
{
panelRectTransform.localPosition = localPointerPosition - new Vector2(pointerOffset.x * goTransform.localScale.x, pointerOffset.y * goTransform.localScale.y);
}
}
Vector2 ClampToWindow(PointerEventData data)
{
Vector2 rawPointerPosition = data.position;
Vector3[] canvasCorners = new Vector3[4];
canvasRectTransform.GetWorldCorners(canvasCorners);
float clampedX = Mathf.Clamp(rawPointerPosition.x, canvasCorners[0].x, canvasCorners[2].x);
float clampedY = Mathf.Clamp(rawPointerPosition.y, canvasCorners[0].y, canvasCorners[2].y);
Vector2 newPointerPosition = new Vector2(clampedX, clampedY);
return newPointerPosition;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c210a6e68020b4349a4020e7da57826e
timeCreated: 1440843816
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,62 @@
/// Credit .entity
/// Sourced from - http://forum.unity3d.com/threads/rescale-panel.309226/
using UnityEngine.EventSystems;
namespace UnityEngine.UI.Extensions
{
[AddComponentMenu("UI/Extensions/RescalePanels/RescalePanel")]
public class RescalePanel : MonoBehaviour, IPointerDownHandler, IDragHandler
{
public Vector2 minSize;
public Vector2 maxSize;
private RectTransform rectTransform;
private Transform goTransform;
private Vector2 currentPointerPosition;
private Vector2 previousPointerPosition;
private RectTransform thisRectTransform;
Vector2 sizeDelta;
void Awake()
{
rectTransform = transform.parent.GetComponent<RectTransform>();
goTransform = transform.parent;
thisRectTransform = GetComponent<RectTransform>();
sizeDelta = thisRectTransform.sizeDelta;
}
public void OnPointerDown(PointerEventData data)
{
rectTransform.SetAsLastSibling();
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out previousPointerPosition);
}
public void OnDrag(PointerEventData data)
{
if (rectTransform == null)
return;
Vector3 scaleDelta = goTransform.localScale;
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out currentPointerPosition);
Vector2 resizeValue = currentPointerPosition - previousPointerPosition;
scaleDelta += new Vector3(-resizeValue.y * 0.001f, -resizeValue.y * 0.001f, 0f);
scaleDelta = new Vector3(
Mathf.Clamp(scaleDelta.x, minSize.x, maxSize.x),
Mathf.Clamp(scaleDelta.y, minSize.y, maxSize.y),
1
);
goTransform.localScale = scaleDelta;
previousPointerPosition = currentPointerPosition;
float resizeDeltaValue = sizeDelta.x / goTransform.localScale.x;
Vector2 newSizeDelta = new Vector2(resizeDeltaValue, resizeDeltaValue);
thisRectTransform.sizeDelta = newSizeDelta;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ff46b67332ade77459ea86ba20638d24
timeCreated: 1440843795
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,60 @@
/// Credit .entity
/// Sourced from - http://forum.unity3d.com/threads/rescale-panel.309226/
using UnityEngine.EventSystems;
namespace UnityEngine.UI.Extensions
{
[AddComponentMenu("UI/Extensions/RescalePanels/ResizePanel")]
public class ResizePanel : MonoBehaviour, IPointerDownHandler, IDragHandler
{
public Vector2 minSize;
public Vector2 maxSize;
private RectTransform rectTransform;
private Vector2 currentPointerPosition;
private Vector2 previousPointerPosition;
private float ratio;
void Awake()
{
rectTransform = transform.parent.GetComponent<RectTransform>();
float originalWidth;
float originalHeight;
originalWidth = rectTransform.rect.width;
originalHeight = rectTransform.rect.height;
ratio = originalHeight / originalWidth;
minSize = new Vector2(0.1f * originalWidth, 0.1f * originalHeight);
maxSize = new Vector2(10f * originalWidth, 10f * originalHeight);
}
public void OnPointerDown(PointerEventData data)
{
rectTransform.SetAsLastSibling();
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out previousPointerPosition);
}
public void OnDrag(PointerEventData data)
{
if (rectTransform == null)
return;
Vector2 sizeDelta = rectTransform.sizeDelta;
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out currentPointerPosition);
Vector2 resizeValue = currentPointerPosition - previousPointerPosition;
sizeDelta += new Vector2(resizeValue.x, ratio * resizeValue.x);
sizeDelta = new Vector2(
Mathf.Clamp(sizeDelta.x, minSize.x, maxSize.x),
Mathf.Clamp(sizeDelta.y, minSize.y, maxSize.y)
);
rectTransform.sizeDelta = sizeDelta;
previousPointerPosition = currentPointerPosition;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: db83442065d59344c9bf6ffa63a23777
timeCreated: 1440843837
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: