chunk 1: core gameplay scripts scenes runtime assets

This commit is contained in:
2026-04-06 11:02:34 +03:00
parent fa0388bc79
commit 0d11a097d8
703 changed files with 2292651 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class DraggableUI : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
{
private RectTransform rectTransform;
private Canvas canvas;
private CanvasGroup canvasGroup;
private Vector2 pointerStartLocalCursor; //The initial pointer position when the drag starts
private bool isDragging = false; //Flag to check if a component is being dragged
private SettingsHandler settingsHandler; // Reference to SettingsHandler
public GameSettings gameSettings; // Reference to GameSettings
void Start()
{
rectTransform = GetComponent<RectTransform>();
canvas = GetComponentInParent<Canvas>();
canvasGroup = GetComponent<CanvasGroup>();
// Find SettingsHandler in the scene or use another method to get reference
settingsHandler = FindObjectOfType<SettingsHandler>();
}
// Function for initial when gameobject is pressed on
public void OnPointerDown(PointerEventData eventData)
{
//converts the screen point where the pointer was pressed to a local point within the rectangle
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, eventData.position, eventData.pressEventCamera, out pointerStartLocalCursor);
canvasGroup.blocksRaycasts = false;
isDragging = false;
}
// Function for when a gameobject is being dragged
public void OnDrag(PointerEventData eventData)
{
isDragging = true;
Vector2 localPointerPos;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, eventData.position, eventData.pressEventCamera, out localPointerPos))
{
rectTransform.localPosition = localPointerPos - pointerStartLocalCursor;
}
}
// Function for when a gameobject is released, after being dragged
public void OnPointerUp(PointerEventData eventData)
{
canvasGroup.blocksRaycasts = true;
if (!isDragging)
{
// Simulate a button click
Button button = GetComponent<Button>();
if (button != null)
{
button.onClick.Invoke();
}
}
}
// Function to Save Control Settings
void SaveSettings()
{
if (settingsHandler != null)
{
settingsHandler.SaveSettings(); // Call SaveSettings from SettingsHandler
}
else
{
Debug.LogError("SettingsHandler reference is null.");
}
}
}