public SteeringBuilder AddBehavior(ISteeringBehavior behavior, Predicate <ConditionArgs> condition = null)
        {
            var cmp = _entity.AddComponent(behavior as SteeringComponentBase);

            if (_isAnyBehaviorAdded)
            {
                cmp.IsAdditive = true;
            }

            if (condition != null)
            {
                cmp.Condition = condition;
            }

            _isAnyBehaviorAdded = true;
            return(this);
        }
        public SteeringBuilder(Vector2 position, ISteeringTarget target = null)
        {
            _entity = new SteeringEntity
            {
                Name     = "steering-" + _currId,
                Position = position,
                Tag      = 123
            };

            var smc = _entity.AddComponent(new SteeringManagerComponent(target));

            _entity.ResetEvent += (sender, args) => smc.UpdateComponents();

            _currId++;
        }