public override void Start()
        {
            if (Sensor == null)
            {
                throw new ArgumentNullException("PriestDoorTrigger needs a reference to a sensor object with a sensor physics component");
            }

            var sensor = Sensor.GetComponent <PhysicsComponent>();

            if (sensor == null || sensor.IsSensor == false)
            {
                throw new ArgumentNullException("PriestDoorTrigger needs a reference to a sensor object with a sensor physics component");
            }

            _movement = GetComponent <MoveAlongPath>();
            if (_movement == null)
            {
                throw new ArgumentNullException("PriestDoorTrigger needs a MoveAlongPath component");
            }

            // Hook up coolsion event
            sensor.OnCollisionEnter += (go) =>
            {
                var stats = go.GetComponent <CharacterStats>();
                if (stats != null && stats.Category == CharacterCategory.CC_PRIEST)
                {
                    if (IsOpen == false)
                    {
                        IsOpen = true;
                        _movement.FollowPath();
                    }
                }
            };
        }
        public override void Start()
        {
            _movement = GetComponent <MoveAlongPath>();

            if (_movement == null)
            {
                throw new ArgumentNullException("LiftController game object needs a move along path component to work.");
            }

            if (MoveBack)
            {
                _movement.OnFinishedPath += finishedPath;
            }
        }