public static void InvokeSnap(Vector3 delta) { if (OnSnap != null) { OnSnap.Invoke(delta); } }
//IEnumerator is lerping protected virtual IEnumerator UpdateTransformDimensions(GameObject ioCheck, GameObject endSettings, float duration) { float elapsedTime = 0f; Transform ioTransform = ioCheck.transform; Vector3 startPosition = ioTransform.position; Quaternion startRotation = ioTransform.rotation; Vector3 startScale = ioTransform.localScale; ioCheck.GetComponent <Rigidbody>().isKinematic = true; while (elapsedTime <= duration) { elapsedTime += Time.deltaTime; if (ioTransform != null && endSettings != null) { ioTransform.position = Vector3.Lerp(startPosition, endSettings.transform.position, (elapsedTime / duration)); ioTransform.rotation = Quaternion.Lerp(startRotation, endSettings.transform.rotation, (elapsedTime / duration)); ioTransform.localScale = Vector3.Lerp(startScale, endSettings.transform.localScale, (elapsedTime / duration)); } yield return(null); } //if onsnap != null invoke OnSnap?.Invoke(); }