示例#1
0
	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");
			}
		}
	}