using UnityEngine; using System.Collections; public class LaserController : MonoBehaviour { public Led laserBeam; public Predicate[] enablePredicates; public PlayerSensor sensor; public RandomSoundPlayer hitPlayer; private bool _enabled; // Use this for initialization void Start () { if (sensor != null) { sensor.PlayerEnter += sensor_PlayerEnter; } } void sensor_PlayerEnter(PlayerSensor senso, GameObject player) { senso.Player.GetComponent().velocity = Vector3.zero; senso.Player.GetComponent().ApplyDamage(100, gameObject, transform.position); if (hitPlayer != null) { hitPlayer.Play(); } } // Update is called once per frame void Update () { _enabled = true; foreach (var p in enablePredicates) { if (p != null && !p.Check()) { _enabled = false; break; } } laserBeam.gameObject.SetActive(_enabled); } }