Beispiel #1
0
    void Approach()
    {
        float x = Mathf.MoveTowards(transform.position.x, Ship.instance.transform.position.x,
                                    _approachSpeed * Time.deltaTime);

        transform.position = new Vector3(x, transform.position.y, transform.position.z);

        // If monster is on the attack range...
        if (Mathf.Abs(Ship.instance.transform.position.x - x) < 4.0f)
        {
            _mode = MonsterMode.Attack;
            AudioSource.PlayClipAtPoint(AttackSound, transform.position);
        }

        if (transform.position.x > Ship.instance.transform.position.x)
        {
            _facing.Set(Facing.Direction.Left);
        }
        else
        {
            _facing.Set(Facing.Direction.Right);
        }
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x > Ship.instance.transform.position.x)
        {
            _facing.Set(Facing.Direction.Left);
        }
        else
        {
            _facing.Set(Facing.Direction.Right);
        }


        if (_mode == MonsterMode.Approach)
        {
            Approach();
        }

        if (_damageable.GetHitPoints() == 0 && !_deathBehaviour.enabled)
        {
            _deathBehaviour.enabled = true;
            GetComponent <FloatingObject>().isFloating = false;
            GameHandler.AddScore(PointsWhenKilled);
        }
    }