public void Shoot () { if (LevelFinishedController.instance.isTeleportEnabled()) { if ((firstPortal == null) || (secondPortal == null)) { if (DronePowerController.instance.canSetUp() && !isDroneTooClose()) { if ((firstPortal == null) || ((firstPortal != null) && (firstPortal.isSettled()))) { Vector3 pos = new Vector3 (transform.position.x, transform.position.y - 1, transform.position.z); GameObject portal = (GameObject) Instantiate (portalPrefab, pos, Quaternion.Euler(0, 0, 0)); PortalController portalController = portal.GetComponent<PortalController>(); portal.GetComponent<Rigidbody>().velocity = -transform.up * teleportSpeed; AudioController.instance.Play("029_DroneTele"); // check groundController Physics.IgnoreLayerCollision(LayerMask.NameToLayer("players"), LayerMask.NameToLayer("item"), true); Physics.IgnoreLayerCollision(LayerMask.NameToLayer("monsters"), LayerMask.NameToLayer("item"), true); Physics.IgnoreLayerCollision(LayerMask.NameToLayer("flyingMonsters"), LayerMask.NameToLayer("item"), true); if (firstPortal == null) { firstPortal = portalController; } else { secondPortal = portalController; firstPortal.setTheOtherPortal(secondPortal); secondPortal.setTheOtherPortal(firstPortal); AudioController.instance.Play("029_DroneTele"); } DronePowerController.instance.settingUp(); } } } else { Destroy(firstPortal.gameObject); Destroy (secondPortal.gameObject); firstPortal = null; secondPortal = null; AudioController.instance.Play("034_CancelTele"); } } }