Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (actualIntervallTime > 0f)
        {
            actualIntervallTime = actualIntervallTime - Time.deltaTime;
        }


        //schauen, ob das Ziel noch in Reichweite ist oder gelöscht wurde
        if (hasTarget)
        {
            if (targetEnemy == null)
            {
                hasTarget = false;
            }
            else
            {
                float distanceToTarget = Vector3.Distance(transform.position, targetEnemy.transform.position);
                if (distanceToTarget > radius)
                {
                    hasTarget = false;
                    //targetEnemy = null;
                }
            }
        }

        //sucht nur Ziele, wenn es kein akutelles Ziel gibt.
        if (!hasTarget)
        {
            searchTarget();
        }

        //immer ausführen
        if (hasTarget)
        {
            Vector3 vecToEnemy = targetEnemy.transform.position - thistransform.position;

            //evtl. vorhalten: bewegungsgeschw. * flugzeit des projektils + position gegner

            //Geschütz etc ausrichten, Vektor: gegner - eigene pos
            //if has rotatable base...

            //feuern
            if (actualIntervallTime <= 0.0f)
            {
                //projektil erzeugen
                GameObject     projectileInstance = Instantiate(projectilePrefab);
                TestProjectile projScript         = projectileInstance.GetComponent <TestProjectile> ();
                projScript.setup(transform.position, vecToEnemy);

                //wartezeit (intervall) bis zum nächst möglichen angriff
                actualIntervallTime = fireIntervall;
            }
        }
    }
Example #2
0
    // Use this for initialization
    void Start()
    {
        thistransform = gameObject.transform;

        fireIntervall       = 1.0f;
        actualIntervallTime = 0.0f;
        radius = 8f;
        //radius = GetComponent<CircleCollider2D>().radius;
        hasTarget        = false;
        projectileScript = projectilePrefab.GetComponent <TestProjectile>();
    }