From e9c250730185e61308b1741423a6f04c5aac9941 Mon Sep 17 00:00:00 2001 From: "bocska.karina" <bocska.karina@hallgato.ppke.hu> Date: Fri, 13 Sep 2024 18:51:39 +0200 Subject: [PATCH] refactor: clean up blockdeform --- .vscode/settings.json | 128 ++++++++------ Assets/Prefabs/Block.prefab | 1 + Assets/Scenes/SampleScene.unity | 14 +- Assets/Scrips/BlockDeform.cs | 283 +++++++------------------------ Assets/Scrips/DeformAnchor.cs | 7 +- Assets/Scrips/DeformAnchorOld.cs | 2 +- 6 files changed, 154 insertions(+), 281 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a556466..aac5914 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,55 +1,75 @@ { - "files.exclude": { - "**/.DS_Store": true, - "**/.git": true, - "**/.gitmodules": true, - "**/*.booproj": true, - "**/*.pidb": true, - "**/*.suo": true, - "**/*.user": true, - "**/*.userprefs": true, - "**/*.unityproj": true, - "**/*.dll": true, - "**/*.exe": true, - "**/*.pdf": true, - "**/*.mid": true, - "**/*.midi": true, - "**/*.wav": true, - "**/*.gif": true, - "**/*.ico": true, - "**/*.jpg": true, - "**/*.jpeg": true, - "**/*.png": true, - "**/*.psd": true, - "**/*.tga": true, - "**/*.tif": true, - "**/*.tiff": true, - "**/*.3ds": true, - "**/*.3DS": true, - "**/*.fbx": true, - "**/*.FBX": true, - "**/*.lxo": true, - "**/*.LXO": true, - "**/*.ma": true, - "**/*.MA": true, - "**/*.obj": true, - "**/*.OBJ": true, - "**/*.asset": true, - "**/*.cubemap": true, - "**/*.flare": true, - "**/*.mat": true, - "**/*.meta": true, - "**/*.prefab": true, - "**/*.unity": true, - "build/": true, - "Build/": true, - "Library/": true, - "library/": true, - "obj/": true, - "Obj/": true, - "ProjectSettings/": true, - "temp/": true, - "Temp/": true - }, - "dotnet.defaultSolution": "szakdolgozat.sln" -} \ No newline at end of file + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.gitmodules": true, + "**/*.booproj": true, + "**/*.pidb": true, + "**/*.suo": true, + "**/*.user": true, + "**/*.userprefs": true, + "**/*.unityproj": true, + "**/*.dll": true, + "**/*.exe": true, + "**/*.pdf": true, + "**/*.mid": true, + "**/*.midi": true, + "**/*.wav": true, + "**/*.gif": true, + "**/*.ico": true, + "**/*.jpg": true, + "**/*.jpeg": true, + "**/*.png": true, + "**/*.psd": true, + "**/*.tga": true, + "**/*.tif": true, + "**/*.tiff": true, + "**/*.3ds": true, + "**/*.3DS": true, + "**/*.fbx": true, + "**/*.FBX": true, + "**/*.lxo": true, + "**/*.LXO": true, + "**/*.ma": true, + "**/*.MA": true, + "**/*.obj": true, + "**/*.OBJ": true, + "**/*.asset": true, + "**/*.cubemap": true, + "**/*.flare": true, + "**/*.mat": true, + "**/*.meta": true, + "**/*.prefab": true, + "**/*.unity": true, + "build/": true, + "Build/": true, + "Library/": true, + "library/": true, + "obj/": true, + "Obj/": true, + "ProjectSettings/": true, + "temp/": true, + "Temp/": true + }, + "dotnet.defaultSolution": "szakdolgozat.sln", + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#5a263a", + "activityBar.background": "#5a263a", + "activityBar.foreground": "#e7e7e7", + "activityBar.inactiveForeground": "#e7e7e799", + "activityBarBadge.background": "#48702f", + "activityBarBadge.foreground": "#e7e7e7", + "commandCenter.border": "#e7e7e799", + "sash.hoverBorder": "#5a263a", + "statusBar.background": "#361723", + "statusBar.foreground": "#e7e7e7", + "statusBarItem.hoverBackground": "#5a263a", + "statusBarItem.remoteBackground": "#361723", + "statusBarItem.remoteForeground": "#e7e7e7", + "titleBar.activeBackground": "#361723", + "titleBar.activeForeground": "#e7e7e7", + "titleBar.inactiveBackground": "#36172399", + "titleBar.inactiveForeground": "#e7e7e799" + }, + "peacock.color": "#361723" +} diff --git a/Assets/Prefabs/Block.prefab b/Assets/Prefabs/Block.prefab index 13d8ed4..9188e3b 100644 --- a/Assets/Prefabs/Block.prefab +++ b/Assets/Prefabs/Block.prefab @@ -99,6 +99,7 @@ MonoBehaviour: m_EditorClassIdentifier: deformAnchorPrefab: {fileID: 2720765159515821108, guid: 46377d8bcd3914149bbb7c475d721f56, type: 3} wrapDistance: 0.01 + grabTransparency: 0.5 --- !u!64 &3268846158774871891 MeshCollider: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 776b10c..c07b744 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -18756,7 +18756,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1984668758913251958, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 44.7 objectReference: {fileID: 0} - target: {fileID: 1984668758913251958, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.y @@ -18784,7 +18784,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1984668759388320319, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 40 objectReference: {fileID: 0} - target: {fileID: 1984668759388320319, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.y @@ -18820,7 +18820,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1984668759906836222, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 40 objectReference: {fileID: 0} - target: {fileID: 1984668759906836222, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.y @@ -18840,7 +18840,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1984668759991436502, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 40 objectReference: {fileID: 0} - target: {fileID: 1984668759991436502, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.y @@ -18876,7 +18876,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1984668760453204319, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 44.7 objectReference: {fileID: 0} - target: {fileID: 1984668760453204319, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.y @@ -18896,7 +18896,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1984668760497519799, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 40 objectReference: {fileID: 0} - target: {fileID: 1984668760497519799, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.y @@ -18924,7 +18924,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1984668760711245992, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 40 objectReference: {fileID: 0} - target: {fileID: 1984668760711245992, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} propertyPath: m_AnchoredPosition.y diff --git a/Assets/Scrips/BlockDeform.cs b/Assets/Scrips/BlockDeform.cs index 922559a..6f530ec 100644 --- a/Assets/Scrips/BlockDeform.cs +++ b/Assets/Scrips/BlockDeform.cs @@ -1,33 +1,36 @@ using System; using System.Collections.Generic; using UnityEngine; -using UnityEngine.XR.Interaction.Toolkit.Transformers; -using static UnityEngine.XR.Interaction.Toolkit.Transformers.XRGeneralGrabTransformer; public class BlockDeform : MonoBehaviour { public GameObject deformAnchorPrefab; public float wrapDistance; + public float grabTransparency; - private Mesh mesh; - private GameObject[] deformAnchors = new GameObject[6]; + private Mesh _mesh; + private readonly DeformAnchor[] _deformAnchors = new DeformAnchor[6]; - public void HandleAnchorGrabbed(Transform endPosition, Vector3 startPosition, Vector3 normal){ + private bool IsPointOnPlane(Vector3 point, Vector3 normal, Vector3 pointOnPlane, double epsilon) + { + double d = Vector3.Dot(normal, pointOnPlane); + double eq = normal.x * point.x + normal.y * point.y + normal.z * point.z - d; - // utility function to check if the point is on the grabbed anchor - bool isPointOnPlane(Vector3 point, double epsilon){ - double d = Vector3.Dot(normal, startPosition); - double eq = normal.x * point.x + normal.y * point.y + normal.z * point.z - d; + if (Math.Abs(eq) < epsilon) return true; + else return false; + } - if(eq > -epsilon && eq < epsilon) return true; - else return false; - } + public void HandleAnchorGrabbed(Transform endPosition, Vector3 startPosition, DeformAnchor anchor) + { + + Vector3 normal = anchor.GetNormal(); // calculate deformation - Vector3[] deformedMeshVertices = mesh.vertices; + Vector3[] deformedMeshVertices = _mesh.vertices; for (int i = 0; i < deformedMeshVertices.Length; i++) { - if (isPointOnPlane(deformedMeshVertices[i] + this.transform.position, 0.1d)) { + if (IsPointOnPlane(deformedMeshVertices[i] + this.transform.position, normal, startPosition, 0.1d)) + { float distance = Vector3.Distance(startPosition, endPosition.position); Vector3 displacement = normal * distance; float direction = Vector3.Dot(endPosition.position - startPosition, normal); @@ -35,264 +38,110 @@ public class BlockDeform : MonoBehaviour } } - // set new vertices for mesh - mesh.vertices = deformedMeshVertices; - mesh.RecalculateBounds(); - MeshCollider collider = GetComponent<MeshCollider>(); - collider.sharedMesh = mesh; - - UpdateDeformAnchors(); - } - - bool IsPointOnPlane(Vector3 point, Vector3 normal, Vector3 pointOnPlane, double epsilon){ - double d = Vector3.Dot(normal, pointOnPlane); - double eq = normal.x * point.x + normal.y * point.y + normal.z * point.z - d; - - if(eq > -epsilon && eq < epsilon) return true; - else return false; - } - - private void UpdateDeformAnchors() - { - // collect vertices on the same plane as the anchor - for (int i = 0; i < deformAnchors.Length; i++) + // check if it's a valid grab + for (int i = 0; i < _deformAnchors.Length; i++) { - List<Vector3> vertices = new(); - DeformAnchor deformAnchorScript = deformAnchors[i].GetComponent<DeformAnchor>(); - - Vector3 anchorNormal = deformAnchorScript.GetNormal(); - Vector3 anchorPosition = deformAnchorScript.GetPosition(); + if (_deformAnchors[i] == anchor) continue; - foreach (Vector3 vertex in mesh.vertices) + float distance = Vector3.Distance(_deformAnchors[i].GetPosition(), anchor.GetPosition()); + if (distance < wrapDistance * 10) { - if (IsPointOnPlane(vertex + transform.position, anchorNormal, anchorPosition, 0.1d)) { - if(vertices.IndexOf(vertex) == -1) { - vertices.Add(vertex); - } - } + anchor.ResetPosition(); + return; } - - deformAnchorScript.SetMeshScale(vertices); } - } - public void HandleAnchorGrabbed(){ + // set new vertices for mesh + _mesh.vertices = deformedMeshVertices; + _mesh.RecalculateBounds(); + MeshCollider collider = GetComponent<MeshCollider>(); + collider.sharedMesh = _mesh; - DeformMesh(); - + UpdateDeformAnchors(); } - private void DeformMesh(){ - Vector3[] newVertices = mesh.vertices; - - float zPlus = deformAnchors[0].transform.localPosition.z - wrapDistance; - float zMinus = deformAnchors[1].transform.localPosition.z + wrapDistance; - - float yPlus = deformAnchors[2].transform.localPosition.y - wrapDistance; - float yMinus = deformAnchors[3].transform.localPosition.y + wrapDistance; - - float xPlus = deformAnchors[4].transform.localPosition.x - wrapDistance; - float xMinus = deformAnchors[5].transform.localPosition.x + wrapDistance; - if ((zPlus - zMinus) < wrapDistance*2 || (yPlus - yMinus) < wrapDistance*2 || (zPlus - zMinus) < wrapDistance * 2) { - foreach (GameObject deformAnchor in deformAnchors) - { - DeformAnchorOld deformAnchorScript = deformAnchor.GetComponent<DeformAnchorOld>(); - deformAnchorScript.resetTransform(); - } - // CenterDeformAnchors(); - return; - } - - - for (int i = 0; i < newVertices.Length; i++) - { - newVertices[i].x = newVertices[i].x >= 0 ? xPlus : xMinus; - newVertices[i].y = newVertices[i].y >= 0 ? yPlus : yMinus; - newVertices[i].z = newVertices[i].z>= 0 ? zPlus : zMinus; - } - mesh.vertices = newVertices; - mesh.RecalculateBounds(); - BoxCollider collider = this.GetComponent<BoxCollider>(); - collider.size = new Vector3(xPlus - xMinus, yPlus - yMinus, zPlus - zMinus); - collider.center = mesh.bounds.center; - - // StretchDeformAnchors(); - CenterDeformAnchors(); - ScaleDeformAnchors(); - } - - private void ScaleDeformAnchors() + private void UpdateDeformAnchors() { - Collider blockCollider = this.GetComponent<Collider>(); - Vector3 boundSize = blockCollider.bounds.size; - - deformAnchors[0].transform.localScale = deformAnchors[1].transform.localScale = new Vector3(boundSize.x, boundSize.y, 1); - deformAnchors[2].transform.localScale = deformAnchors[3].transform.localScale = new Vector3(boundSize.x, boundSize.z, 1); - deformAnchors[4].transform.localScale = deformAnchors[5].transform.localScale = new Vector3(boundSize.z, boundSize.y, 1); - } + // collect vertices on the same plane as the anchor + for (int i = 0; i < _deformAnchors.Length; i++) + { + List<Vector3> vertices = new(); - private void StretchDeformAnchors() - { - mesh = this.GetComponent<MeshFilter>().mesh; - Vector3[] blockVertices = mesh.vertices; + Vector3 anchorNormal = _deformAnchors[i].GetNormal(); + Vector3 anchorPosition = _deformAnchors[i].GetPosition(); - for (int j = 0; j < deformAnchors.Length; j++) - { - Mesh anchorMesh = deformAnchors[j].GetComponent<MeshFilter>().mesh; - Vector3[] anchorVertices = anchorMesh.vertices; - - for (int i = 0; i < anchorVertices.Length; i++) + foreach (Vector3 vertex in _mesh.vertices) { - Vector3 closestVertex = blockVertices[0]; - float distance = Vector3.Distance(anchorVertices[i], closestVertex); - - foreach (Vector3 vertex in blockVertices) + if (IsPointOnPlane(vertex + transform.position, anchorNormal, anchorPosition, 0.1d)) { - float newDist = Vector3.Distance(anchorVertices[i], vertex); - if (newDist < distance) { - distance = newDist; - closestVertex = vertex; + if (vertices.IndexOf(vertex) == -1) + { + vertices.Add(vertex); } } - - anchorVertices[i] = closestVertex; - Debug.Log(anchorVertices[i].ToString() + "closest to" + closestVertex.ToString()); } - Debug.Log("next vertex"); - - anchorMesh.vertices = anchorVertices; - anchorMesh.RecalculateBounds(); - MeshCollider collider = deformAnchors[j].GetComponent<MeshCollider>(); - collider.sharedMesh = anchorMesh; + _deformAnchors[i].SetMeshScale(vertices); } - } - // Start is called before the first frame update void Start() { - mesh = this.GetComponent<MeshFilter>().mesh; + _mesh = this.GetComponent<MeshFilter>().mesh; Collider blockCollider = this.GetComponent<Collider>(); - DeformAnchor[] deformAnchorsScripts = new DeformAnchor[deformAnchors.Length]; + DeformAnchor[] deformAnchorsScripts = new DeformAnchor[_deformAnchors.Length]; for (int i = 0; i < 6; i++) { - deformAnchors[i] = Instantiate(deformAnchorPrefab, this.transform.position, Quaternion.identity); - deformAnchors[i].transform.parent = this.transform; - deformAnchors[i].transform.position = this.transform.position; - deformAnchorsScripts[i] = deformAnchors[i].GetComponent<DeformAnchor>(); + GameObject anchor = Instantiate(deformAnchorPrefab, this.transform.position, Quaternion.identity); + _deformAnchors[i] = anchor.GetComponent<DeformAnchor>(); + _deformAnchors[i].transform.parent = this.transform; + _deformAnchors[i].transform.position = this.transform.position; + deformAnchorsScripts[i] = _deformAnchors[i].GetComponent<DeformAnchor>(); } // z axis anchor setup deformAnchorsScripts[0].SetupAnchor(this, this.transform.forward, blockCollider.bounds.extents, wrapDistance); deformAnchorsScripts[1].SetupAnchor(this, -this.transform.forward, blockCollider.bounds.extents, wrapDistance); - // deformAnchors[0].transform.eulerAngles = new Vector3(180, 0, 0); - // deformAnchors[1].transform.eulerAngles = new Vector3(0, 0, 0); - + + // y axis achor setup - // deformAnchors[2].transform.eulerAngles = new Vector3(90, 0, 0); - // deformAnchors[3].transform.eulerAngles = new Vector3(-90, 0, 0); deformAnchorsScripts[2].SetupAnchor(this, this.transform.up, blockCollider.bounds.extents, wrapDistance); deformAnchorsScripts[3].SetupAnchor(this, -this.transform.up, blockCollider.bounds.extents, wrapDistance); - + // x axis anchor setup - // deformAnchors[4].transform.eulerAngles = new Vector3(0, -90, 0); - // deformAnchors[5].transform.eulerAngles = new Vector3(0, 90, 0); deformAnchorsScripts[4].SetupAnchor(this, this.transform.right, blockCollider.bounds.extents, wrapDistance); deformAnchorsScripts[5].SetupAnchor(this, -this.transform.right, blockCollider.bounds.extents, wrapDistance); } - /* - // Start is called before the first frame update - void Start() - { - mesh = this.GetComponent<MeshFilter>().mesh; - - Collider blockCollider = this.GetComponent<Collider>(); - XRGeneralGrabTransformer[] anchorGrabs = new XRGeneralGrabTransformer[6]; - - for (int i = 0; i < 6; i++) - { - deformAnchors[i] = Instantiate(deformAnchorPrefab, blockCollider.bounds.center, Quaternion.identity); - deformAnchors[i].transform.parent = this.transform; - - - DeformAnchorOld deformAnchorScript = deformAnchors[i].GetComponent<DeformAnchorOld>(); - deformAnchorScript.parentBlockDeform = this; - - anchorGrabs[i] = deformAnchors[i].GetComponent<XRGeneralGrabTransformer>(); - anchorGrabs[i].constrainedAxisDisplacementMode = ConstrainedAxisDisplacementMode.WorldAxisRelative; - } - - CenterDeformAnchors(); - - // z axis anchor setup - deformAnchors[0].transform.eulerAngles = new Vector3(180, 0, 0); - deformAnchors[1].transform.eulerAngles = new Vector3(0, 0, 0); - - anchorGrabs[0].permittedDisplacementAxes = anchorGrabs[1].permittedDisplacementAxes = ManipulationAxes.Z; - - // y axis achor setup - deformAnchors[2].transform.eulerAngles = new Vector3(90, 0, 0); - deformAnchors[3].transform.eulerAngles = new Vector3(-90, 0, 0); - - anchorGrabs[2].permittedDisplacementAxes = anchorGrabs[3].permittedDisplacementAxes = ManipulationAxes.Y; - - // x axis anchor setup - deformAnchors[4].transform.eulerAngles = new Vector3(0, -90, 0); - deformAnchors[5].transform.eulerAngles = new Vector3(0, 90, 0); - - anchorGrabs[4].permittedDisplacementAxes = anchorGrabs[5].permittedDisplacementAxes = ManipulationAxes.X; - - } - */ - - void CenterDeformAnchors() { - - Collider blockCollider = this.GetComponent<Collider>(); - for (int i = 0; i < deformAnchors.Length; i++) - { - deformAnchors[i].transform.position = blockCollider.bounds.center; - } - - - // z axis anchor setup - deformAnchors[0].transform.position += this.transform.forward * (blockCollider.bounds.extents.z + wrapDistance); - deformAnchors[1].transform.position -= this.transform.forward * (blockCollider.bounds.extents.z + wrapDistance); - - // y axis achor setup - deformAnchors[2].transform.position += this.transform.up * (blockCollider.bounds.extents.y + wrapDistance); - deformAnchors[3].transform.position -= this.transform.up * (blockCollider.bounds.extents.y + wrapDistance); - - // x axis anchor setup - deformAnchors[4].transform.position += this.transform.right * (blockCollider.bounds.extents.x + wrapDistance); - deformAnchors[5].transform.position -= this.transform.right * (blockCollider.bounds.extents.x + wrapDistance); - - } - // Update is called once per frame void Update() { } - private void FixedUpdate() { - + public Vector3 GetPosition() + { + return transform.position; } - public void ExitGrab(){ - + public void EnableTransparency() + { + Color color = transform.GetComponent<Renderer>().material.GetColor("_BaseColor"); + color.a = grabTransparency; + transform.GetComponent<Renderer>().material.SetColor("_BaseColor", color); } - public Vector3 GetPosition() { - return transform.position; + public void DisableTransparency() + { + Color color = transform.GetComponent<Renderer>().material.GetColor("_BaseColor"); + color.a = 1.0f; + transform.GetComponent<Renderer>().material.SetColor("_BaseColor", color); } - } diff --git a/Assets/Scrips/DeformAnchor.cs b/Assets/Scrips/DeformAnchor.cs index d402f86..9c58977 100644 --- a/Assets/Scrips/DeformAnchor.cs +++ b/Assets/Scrips/DeformAnchor.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using Unity.XR.CoreUtils; using UnityEngine; using UnityEngine.XR.Interaction.Toolkit; -using UnityEngine.XR.Interaction.Toolkit.Transformers; public class DeformAnchor : MonoBehaviour { @@ -54,7 +53,7 @@ public class DeformAnchor : MonoBehaviour private void HandleSelectExit(SelectExitEventArgs arg0) { - _blockDeform.HandleAnchorGrabbed(_position.transform, _previousPosition, _normal); + _blockDeform.HandleAnchorGrabbed(_position.transform, _previousPosition, this); } private void HandleSelectEnter(SelectEnterEventArgs arg0) @@ -120,6 +119,10 @@ public class DeformAnchor : MonoBehaviour return _position.transform.position; } + public void ResetPosition() { + this.transform.position = _previousPosition + _normal * _offset; + } + private void OnDrawGizmosSelected() { Gizmos.color = Color.yellow; Gizmos.DrawLine(transform.position, transform.position + _normal); diff --git a/Assets/Scrips/DeformAnchorOld.cs b/Assets/Scrips/DeformAnchorOld.cs index 027b272..ce32f14 100644 --- a/Assets/Scrips/DeformAnchorOld.cs +++ b/Assets/Scrips/DeformAnchorOld.cs @@ -38,7 +38,7 @@ public class DeformAnchorOld : MonoBehaviour private void HandleSelectExit(SelectExitEventArgs arg0) { - parentBlockDeform.HandleAnchorGrabbed(); + // parentBlockDeform.HandleAnchorGrabbed(); // parentBlockDeform.ExitGrab(); } -- GitLab