Exemplo n.º 1
0
        protected override void Load()
        {
            _humedales = FindObjectsOfType <Humedal>().ToList();

            _actualHumedal     = FindClosestAliveHumedal();
            transform.position = _actualHumedal.transform.position;
            GenerateRandomPosition();

            EveryUpdate
            .Where(_ => !_actualHumedal.IsBurnt())
            .Where(_ => canMove)
            .Subscribe(_ => JumpAroundHumedal())
            .AddTo(_disposables);

            EveryUpdate
            .Where(_ => _actualHumedal.IsBurnt())
            .Subscribe(_ => GoToOtherHumedal())
            .AddTo(_disposables);
        }
Exemplo n.º 2
0
        private Humedal FindClosestAliveHumedal()
        {
            var     minDistance = 10000f;
            Humedal target      = null;

            _humedales.ForEach(it =>
            {
                if (it.IsBurnt())
                {
                    return;
                }
                var distance = Vector3.Distance(transform.position, it.transform.position);
                if (!(distance < minDistance))
                {
                    return;
                }
                minDistance = distance;
                target      = it;
            });
            return(target);
        }
Exemplo n.º 3
0
 private void GoToOtherHumedal()
 {
     canMove             = true;
     _actualHumedal      = FindClosestAliveHumedal();
     _jumpAroundPosition = _actualHumedal.transform.position;
 }
Exemplo n.º 4
0
 private void MoveTowardsTarget(Humedal target)
 {
     transform.LookAt(target.transform.position);
     transform.Translate(Vector3.forward * (_speed * Time.deltaTime));
 }
Exemplo n.º 5
0
 private static bool HumedalIsNotNull(Humedal it) => it != null;