public void SetRigidbody(bool hasRigidbody)
 {
     if (hasRigidbody)
     {
         Destroy(_target);
         _target             = Instantiate(_spherePrefab, _initialPosition, Quaternion.identity);
         _targetTransform    = _target.transform;
         _collider           = _target.GetComponent <Collider>();
         _collider.isTrigger = _isTrigger;
         _renderer           = _target.GetComponent <MeshRenderer>();
         if (_renderer)
         {
             _initialMaterial   = _renderer.material;
             _renderer.material = (_isTrigger ? _transparentMaterial : _initialMaterial);
         }
         _rigidbody = _target.GetComponent <Rigidbody>();
         if (_rigidbody)
         {
             _rigidbody.isKinematic = _isKinematic;
             _rigidbody.useGravity  = _useGravity;
         }
         _lightBulbActivator = _target.GetComponent <LightBulbActivator>();
         if (_lightBulbActivator)
         {
             _lightBulbActivator.LightBulb       = _lightBulb;
             _lightBulbActivator.DetectTrigger   = _hasLightTrigger;
             _lightBulbActivator.DetectCollision = _hasLightCollision;
         }
     }
     else
     {
         Destroy(_target);
         _target             = Instantiate(_boxPrefab, _initialPosition, Quaternion.identity);
         _targetTransform    = _target.transform;
         _collider           = _target.GetComponent <Collider>();
         _collider.isTrigger = _isTrigger;
         _renderer           = _target.GetComponent <MeshRenderer>();
         if (_renderer)
         {
             _initialMaterial   = _renderer.material;
             _renderer.material = (_isTrigger ? _transparentMaterial : _initialMaterial);
         }
         _lightBulbActivator = _target.GetComponent <LightBulbActivator>();
         if (_lightBulbActivator)
         {
             _lightBulbActivator.LightBulb       = _lightBulb;
             _lightBulbActivator.DetectTrigger   = _hasLightTrigger;
             _lightBulbActivator.DetectCollision = _hasLightCollision;
         }
     }
     _module?.ResetModule();
 }
 private void Awake()
 {
     _targetTransform = _target.transform;
     _initialPosition = _targetTransform.position;
     _collider        = _target.GetComponent <Collider>();
     _renderer        = _target.GetComponent <MeshRenderer>();
     if (_renderer)
     {
         _initialMaterial = _renderer.material;
     }
     _rigidbody          = _target.GetComponent <Rigidbody>();
     _lightBulbActivator = _target.GetComponent <LightBulbActivator>();
     if (_lightBulbActivator)
     {
         _lightBulbActivator.LightBulb = _lightBulb;
     }
 }