예제 #1
0
    void Start()
    {
        // If AI is dodged constantly it will "time out" and die after 15 seconds.
        Destroy(this.gameObject, 15f);
        StartCoroutine(TimeOut(10));

        player  = GameObject.FindGameObjectWithTag("Player");
        player2 = GameObject.FindGameObjectWithTag("Player2");

        PickupManager manager            = FindObjectOfType <PickupManager>();
        int           currentPickupOwner = manager.GetCurrentPickupOwner();

        if (currentPickupOwner == 0)
        {
            target = PlayerValues.GetPlayer(1)?.transform;
        }
        else
        {
            target = PlayerValues.GetPlayer(0)?.transform;
        }
        animator.SetBool("Targeted", true);
        target.GetComponent <PlayerValues>()?.SetTargeted(true);
        //if (Player1PickedUpTheThing == true)
        //{
        //target = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
    }
예제 #2
0
    public void Fire()
    {
        int          ownerID = pickUpManagerReference.GetCurrentPickupOwner();
        PlayerValues Target  = PlayerValues.GetPlayer(ownerID == 0 ? 1 : 0);

        if (Target == null)
        {
            return;
        }
        for (int i = 0; i < missileCount; ++i)
        {
            GameObject instance      = Instantiate(missilePrefab, PlayerValues.GetPlayer(ownerID).transform.position, Quaternion.identity);
            Vector2    startVelocity = Quaternion.Euler(0, 0, Random.Range(0, 360)) * (Vector2.up * missileSpeed);
            activeMissiles.Add(new Missile {
                MissileObj = instance, OwnerID = ownerID, TargetID = Target.Id, Velocity = startVelocity, Collider = instance.GetComponent <CircleCollider2D>(), SpawningID = SpawnCounter
            });
        }
        SpawnCounter++;
    }