public override void OnAddedToScene()
        {
            base.OnAddedToScene();
            _layers.Clear();
            _bendyController = MySession.Static.Components.Get <BendyController>();
            foreach (var kv in _bendyController.Layers)
            {
                OnLayerAdded(kv.Key, kv.Value);
            }
            _bendyController.LayerAdded += OnLayerAdded;
            if (Definition.AllowDynamic)
            {
                Entity.PositionComp.OnPositionChanged += OnPositionChanged;
            }
            FlagAnimationWarp();

            _dirty = false;
            MarkDirty();
        }
        public override void OnRemovedFromScene()
        {
            if (Entity != null)
            {
                Entity.PositionComp.OnPositionChanged -= OnPositionChanged;
            }
            foreach (var l in _layers)
            {
                l.NodeCreated -= OnNodeMoved;
                l.NodeMoved   -= OnNodeMoved;
                l.NodeRemoved -= OnNodeRemoved;
            }

            _bendyController.LayerAdded -= OnLayerAdded;
            _layers.Clear();
            _bendyController = null;

            BindController(null);
            base.OnRemovedFromScene();
        }