private void GetPlayerInput() { // set up teleportation orb if (Input.GetMouseButtonDown(0) && _orbs.Count < 2) { TeleportationOrb orb = Instantiate(_teleportationOrbPrototype, _throwBallPosition.position, Quaternion.identity).GetComponent <TeleportationOrb>(); orb.transform.SetParent(transform); _currentOrbBeingThrown = orb; _orbs.Add(orb); } else if (Input.GetMouseButton(0) && _currentOrbBeingThrown != null) { Vector3 aimpoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); _currentOrbBeingThrown.CreateTrajectoryGhost(aimpoint); } else if (Input.GetMouseButtonUp(0) && _currentOrbBeingThrown != null) { _audiosource.PlayOneShot(_throw); _currentOrbBeingThrown.SetVelocity(Camera.main.ScreenToWorldPoint(Input.mousePosition)); _currentOrbBeingThrown = null; } else if (Input.GetMouseButtonDown(1) && _orbs.Count > 0) { TeleportationOrb orb = _orbs[0]; GameObject orbToTransportTo = orb.TransportPlayerToOrb(); if (orbToTransportTo != null) { _orbs.RemoveAt(0); Destroy(orbToTransportTo); } } // set up animator values if (_teleported) { _velocity = _teleportSpeed; _teleported = false; return; } }
public void DestroyOrb(TeleportationOrb orbToDestroy) { if (_orbs.Count > 0) { TeleportationOrb orbToRemove = null; foreach (TeleportationOrb currentOrb in _orbs) { if (currentOrb == orbToDestroy) { orbToRemove = currentOrb; break; } } if (orbToRemove != null) { _orbs.Remove(orbToRemove); Destroy(orbToRemove.gameObject); } } }