From b773b20b19b329c4d6353e30d366bcd138af7c37 Mon Sep 17 00:00:00 2001 From: vladislove Date: Wed, 22 Jul 2026 19:15:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B4=D0=B2=D0=BE=D0=B9=D0=BD=D0=BE=D0=B5=20=D0=BD=D0=B0=D0=B6?= =?UTF-8?q?=D0=B0=D1=82=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=20=D0=BE=D0=B1=D1=8C=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/MetaPart/FurnitureController.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Assets/_Project/Scripts/MetaPart/FurnitureController.cs b/Assets/_Project/Scripts/MetaPart/FurnitureController.cs index cf19dbb..c30cf85 100644 --- a/Assets/_Project/Scripts/MetaPart/FurnitureController.cs +++ b/Assets/_Project/Scripts/MetaPart/FurnitureController.cs @@ -17,6 +17,9 @@ public class FurnitureController : MonoBehaviour [SerializeField] private GameObject editPanel; [SerializeField] private GameObject rotate90Button; public float rotationSpeed = 5f; + + [Header("Настройки двойного клика")] + public float doubleClickThreshold = 0.3f; // Максимальное время между кликами в секундах [Header("Связь с камерой")] public MonoBehaviour cameraController; @@ -29,6 +32,8 @@ public class FurnitureController : MonoBehaviour private bool _isInteracting = false; private Vector3 _lastInputPos; private Vector3 _dragOffset; + + private float _lastClickTime = 0f; // Хранит время последнего клика private void Start() { @@ -49,13 +54,25 @@ public class FurnitureController : MonoBehaviour } else if (currentPrefab != null) { + // Оставляем одинарный клик для установки НОВОЙ мебели if (Input.GetMouseButtonDown(0) && !shopPanel.activeSelf && !IsPointerOverUI()) TryPlaceFurniture(); } else { + // Логика двойного клика для выбора УЖЕ УСТАНОВЛЕННОЙ мебели if (Input.GetMouseButtonDown(0) && !shopPanel.activeSelf && !IsPointerOverUI()) - TrySelectPlacedFurniture(); + { + float timeSinceLastClick = Time.time - _lastClickTime; + + if (timeSinceLastClick <= doubleClickThreshold) + { + // Если время между кликами меньше порога — это двойной клик + TrySelectPlacedFurniture(); + } + + _lastClickTime = Time.time; // Запоминаем время текущего клика + } } }