/// <summary>
        /// Attachs to chunk.
        /// </summary>
        /// <param name="chunk">Chunk.</param>
        public virtual void AttachToChunk(WorldTubeChunk chunk)
        {
            this._passByPlayed = false;
            this._cachedTransform.parent = chunk.transform;
            this._cachedTransform.localPosition = Vector3.zero;

            float rndRot = Random.Range(0.0f, 360.0f);
            this._cachedTransform.eulerAngles = new Vector3(this._cachedTransform.eulerAngles.x, this._cachedTransform.eulerAngles.y, rndRot);
        }
        /// <summary>
        /// Attachs to chunk.
        /// </summary>
        /// <param name="chunk">Chunk.</param>
        public override void AttachToChunk(WorldTubeChunk chunk)
        {
            base.AttachToChunk(chunk);

            //Set a random steelbar to a random local rotation
            this._randomSteelbar = Random.Range(0, Steelbars.Length);
            float rotationZ = Random.Range(0.0f, 360.0f);
            this._cachedSteelbarRotZ = this.Steelbars[this._randomSteelbar].localEulerAngles.z;
            this.Steelbars[this._randomSteelbar].localEulerAngles = new Vector3(0, 0, rotationZ);
        }
        /// <summary>
        /// Attachs to chunk.
        /// </summary>
        /// <param name="chunk">Chunk.</param>
        public override void AttachToChunk(WorldTubeChunk chunk)
        {
            base.AttachToChunk(chunk);

            //Set random local rotation for each generator
            foreach(Transform generator in Generators)
            {
                float rndRotZ = Random.Range(0.0f, 360.0f);
                generator.RotateAround(Vector3.zero, Vector3.forward, rndRotZ);
            }
        }
        /// <summary>
        /// Attachs to chunk.
        /// </summary>
        /// <param name="chunk">Chunk.</param>
        public override void AttachToChunk(WorldTubeChunk chunk)
        {
            base.AttachToChunk(chunk);

            //Set random local rotation for each laser
            foreach(Transform laser in Lasers)
            {
                float rndRotZ = Random.Range(0.0f, 360.0f);
                laser.localEulerAngles = new Vector3(0,0, rndRotZ);
            }

            this.audio.Play();
        }