// Update is called once per frame void Update() { bool correctAnswer = false; if (memSpace1.occupied && memSpace2.occupied && !ResultMemSpace.occupied && !ResultMemSpace.locked) { if (memSpace1.block.GetComponent <Block>().value <= maxBlockSize && memSpace2.block.GetComponent <Block>().value <= maxBlockSize) { int result = memSpace1.UnOccupySpace() + memSpace2.UnOccupySpace(); ResultMemSpace.OccupySpace(result); Instantiate(poofParticles, new Vector3(1.5f, 1.5f, -1.5f), Quaternion.identity); } } if (ResultMemSpace.occupied && ResultMemSpace.block.GetComponent <Block>().value == answer) { correctAnswer = true; gameManager.RegisterScore(); GenerateNewAnswer(); ResultMemSpace.UnOccupySpace(); GetComponent <AudioSource>().Play(); // play poof animation } animator.SetBool("correctAnswer", correctAnswer); }
private void DropBlock() { RaycastHit2D hit = Physics2D.Raycast(transform.position + target, target, 0, layerMask); RaycastHit2D hitFromBehind = Physics2D.Raycast(transform.position - (rearClearance * target.normalized), transform.position, 0, obstructionMask); if (hit && !hitFromBehind) { MemorySpace memSpace = hit.transform.GetComponent <MemorySpace>(); currentSpace = memSpace; if (memSpace && memSpace.OccupySpace(block.GetComponent <Block>().value)) { Destroy(block); carryingBlock = false; } } }
// Update is called once per frame void Update() { if (targetHeight > transform.position.y) { Collider2D memoryCollider = Physics2D.OverlapBox(new Vector2(transform.position.x, targetHeight), new Vector2(0.25f, 0.25f), 0f, memSpaceLayer); MemorySpace memSpace = memoryCollider.GetComponent <MemorySpace>(); memSpace.Unlock(); memSpace.OccupySpace(value); Collider2D playerCollider = Physics2D.OverlapBox(new Vector2(transform.position.x, targetHeight), new Vector2(0.25f, 0.25f), 0f, playerLayer); if (playerCollider != null) { GameManager gameManager = GameObject.FindObjectOfType <GameManager>(); gameManager.RegisterDeath(); print("Player Killed"); } Instantiate(particles, transform.position - (0.5f * Vector3.up), Quaternion.Euler(-10, 90, 0)); Instantiate(particles, transform.position - (0.5f * Vector3.up), Quaternion.Euler(-10, -90, 0)); Destroy(gameObject); } }