public override BehaviourTreeStatus Tick(TimeData time) { if (!_sensorDataComponent.IsAvatarInRange(SensorType.Visual)) { return(BehaviourTreeStatus.Failure); } if (AnyObstacleInComfortRange()) { return(BehaviourTreeStatus.Running); } _timeoutDataComponent.ResetIdleTimeouts(); var avatarTransform = _sensorDataComponent.Avatar.Get <TransformDataComponent>(); _blackBoard.MovementTarget.Store(avatarTransform.Position); return(BehaviourTreeStatus.Success); }
public override BehaviourTreeStatus Tick(TimeData time) { if (!_sensorDataComponent.IsAvatarInRange(SensorType.Visual)) { return(BehaviourTreeStatus.Failure); } // ToDo V2 This should then not move. Works because the following MovementNode just moves to where we are if (_sensorDataComponent.IsAvatarInRange(SensorType.Touch)) { _blackBoard.MovementTarget.Store(_transformDataComponent.Position); return(BehaviourTreeStatus.Success); } _timeoutDataComponent.ResetIdleTimeouts(); var avatarTransform = _sensorDataComponent.Avatar.Get <TransformDataComponent>(); _blackBoard.MovementTarget.Store(avatarTransform.Position); return(BehaviourTreeStatus.Success); }