예제 #1
0
    void Tracking()
    {
        if (lockedOn)
        {
            try
            {
                target = nearByEnemies[lockedEnemy];
                GunPos.transform.LookAt(target.transform);

                //Determine Crosshair Location Based On The Current Target
                gameObject.transform.position = cam.WorldToScreenPoint(target.transform.position);

                //Rotate Crosshair
                gameObject.transform.Rotate(new Vector3(0f, 0f, -100f * Time.deltaTime));
            }
            catch
            {
                print("Out of Range");
                lockedOn      = false;
                image.enabled = false;
                lockedEnemy   = 0;
                target        = null;
            }
        }
    }
예제 #2
0
    void Update()
    {
        //Press Space Key To Lock On
        if (Input.GetKeyDown(KeyCode.Z) && !lockedOn)
        {
            if (nearByEnemies.Count >= 1)
            {
                lockedOn      = true;
                image.enabled = true;

                //Lock On To First Enemy In List By Default
                lockedEnemy = 0;
                target      = nearByEnemies[lockedEnemy];
            }
        }
        //Turn Off Lock On When [Z] Is Pressed Or No More Enemies Are In The List
        else if ((Input.GetKeyDown(KeyCode.Z) && lockedOn) || nearByEnemies.Count == 0)
        {
            lockedOn      = false;
            image.enabled = false;
            lockedEnemy   = 0;
            target        = null;
        }

        //Press X To Switch Targets
        if (Input.GetKeyDown(KeyCode.X))
        {
            if (lockedEnemy == nearByEnemies.Count - 1)
            {
                //If End Of List Has Been Reached, Start Over
                lockedEnemy = 0;
                target      = nearByEnemies[lockedEnemy];
            }
            else
            {
                //Move To Next Enemy In List
                lockedEnemy++;
                target = nearByEnemies[lockedEnemy];
            }
        }

        if (lockedOn)
        {
            target = nearByEnemies[lockedEnemy];

            //Determine Crosshair Location Based On The Current Target
            gameObject.transform.position = cam.WorldToScreenPoint(target.transform.position);

            //Rotate Crosshair
            gameObject.transform.Rotate(new Vector3(0, 0, -1));
        }
    }
예제 #3
0
    void LockTarget()
    {
        //Press RightClick Key To Lock On Target
        if (Input.GetMouseButtonDown(1) && !lockedOn)
        {
            if (nearByEnemies.Count >= 1)
            {
                lockedOn      = true;
                image.enabled = true;

                //Lock On To First Enemy In List By Default
                lockedEnemy = 0;
                target      = nearByEnemies[lockedEnemy];
            }
        }
        //Press RightClick Key To Un Lock Target
        else if ((Input.GetMouseButtonDown(1) && lockedOn) || nearByEnemies.Count == 0)
        {
            lockedOn      = false;
            image.enabled = false;
            lockedEnemy   = 0;
            target        = null;
        }

        //Press X To Switch Targets
        if (Input.GetKeyDown(KeyCode.X))
        {
            if (lockedEnemy == nearByEnemies.Count - 1)
            {
                //If End Of List Has Been Reached, Start Over
                lockedEnemy = 0;
                target      = nearByEnemies[lockedEnemy];
            }
            else
            {
                //Move To Next Enemy In List
                lockedEnemy++;
                target = nearByEnemies[lockedEnemy];
            }
        }
    }