Пример #1
0
    private void MissileShoot()
    {
        if (currentWait > 0)
        {
            return;
        }
        float angle = Vector3.Angle(cannon.right, transform.right);

        angle = Mathf.Abs(angle);
        if (angle > 90)
        {
            angle -= 90;
        }
        if (angle > 70 || angle < 30)
        {
            return;
        }
        currentWait = 5;
        MiniMissileController missile = ObjectPooler.PoolObject("MiniMissile").GetComponent <MiniMissileController>();

        missile.transform.position = missileShotPoint.transform.position;
        missile.transform.rotation = Quaternion.Euler(0, 0, cannon.rotation.eulerAngles.z - 90);
        //print(cannon.rotation.eulerAngles.z);
        missile.gameObject.SetActive(true);
        missile.ResetEntity();
    }
Пример #2
0
    private void Shoot()
    {
        foreach (Transform t in shootPoints)
        {
            t.gameObject.SetActive(true);
        }
        shootPoints[currentCycle].gameObject.SetActive(false);
        MiniMissileController miniMissile = ObjectPooler.PoolObject("MiniMissile").GetComponent <MiniMissileController>();

        miniMissile.ResetEntity();
        miniMissile.transform.position = shootPoints[currentCycle].position;
        miniMissile.transform.rotation = shootPoints[currentCycle].transform.rotation;
        currentCycle++;
        currentCycle = currentCycle >= shootPoints.Length ? 0 : currentCycle;
    }