public void PlaceSizedObjectOnObject(GrabbableSizedObject sizedObject, GrabbableSizedObject belowObject) { if (!sizedAndPlacedObjects.Contains(belowObject)) { sizedAndPlacedObjects.Add(belowObject); Debug.Log("Add sizedPlacedObj: "+belowObject); } sizedAndPlacedObjects.Add(sizedObject); // When an object is placed, check if the puzzle is solved bool isSolved = false; if (sizedAndPlacedObjects.Count == allSizedObjects.Count && sizedAndPlacedObjects.Count > 1) { isSolved = true; // Flipped for the for loop if (sizedAndPlacedObjects[0] != null) { int previousSize = sizedAndPlacedObjects[0].size; for (int i = 1; i < sizedAndPlacedObjects.Count; i++) { GrabbableSizedObject nextObject = sizedAndPlacedObjects[i]; if (nextObject.size > previousSize) { isSolved = false; break; } previousSize = nextObject.size; } } } if (isSolved) { Debug.Log("OrganizeBySizePuzzle is solved"); base.CompletePuzzle(); } }
public override bool OffInteract(GazePointer pointer, Transform objectToInteractWith) { if (objectToInteractWith && objectToInteractWith != transform) { objectBelow = objectToInteractWith.GetComponent <GrabbableSizedObject>(); if (objectBelow) { dropPosition = objectBelow.transform.position; } } else { Debug.Log("objectBelow is null"); objectBelow = null; } return(base.OffInteract(pointer, objectToInteractWith)); }
public override bool OffInteract(GazePointer pointer, Transform objectToInteractWith) { if (objectToInteractWith && objectToInteractWith != transform) { objectBelow = objectToInteractWith.GetComponent<GrabbableSizedObject>(); if (objectBelow) { dropPosition = objectBelow.transform.position; } } else { Debug.Log("objectBelow is null"); objectBelow = null; } return base.OffInteract(pointer, objectToInteractWith); }
public void PlaceSizedObjectOnObject(GrabbableSizedObject sizedObject, GrabbableSizedObject belowObject) { if (!sizedAndPlacedObjects.Contains(belowObject)) { sizedAndPlacedObjects.Add(belowObject); Debug.Log("Add sizedPlacedObj: " + belowObject); } sizedAndPlacedObjects.Add(sizedObject); // When an object is placed, check if the puzzle is solved bool isSolved = false; if (sizedAndPlacedObjects.Count == allSizedObjects.Count && sizedAndPlacedObjects.Count > 1) { isSolved = true; // Flipped for the for loop if (sizedAndPlacedObjects[0] != null) { int previousSize = sizedAndPlacedObjects[0].size; for (int i = 1; i < sizedAndPlacedObjects.Count; i++) { GrabbableSizedObject nextObject = sizedAndPlacedObjects[i]; if (nextObject.size > previousSize) { isSolved = false; break; } previousSize = nextObject.size; } } } if (isSolved) { Debug.Log("OrganizeBySizePuzzle is solved"); base.CompletePuzzle(); } }
public void UnplaceSizedObject(GrabbableSizedObject sizedObject) { sizedAndPlacedObjects.Remove(sizedObject); }
public void AddSizedObject(GrabbableSizedObject sizedObject) { allSizedObjects.Add(sizedObject); }