Пример #1
0
    public void SelectNextTarget()
    {
        if (isMoving)
        {
            return;
        }
        currentTarget.SetTarget(false);

        int count = 0;

        foreach (LaserPuzzleGoal t in targets)
        {
            if (t == currentTarget)
            {
                if (targets[targets.Count - 1] == t)
                {
                    currentTarget = targets[0];
                }
                else
                {
                    currentTarget = targets[count + 1];
                }
                break;
            }
            count++;
        }

        StartCoroutine(MoveToNextTarget());
    }
Пример #2
0
    public override void Interact()
    {
        base.Interact();

        RaycastHit hit;

        if (Physics.Raycast(player.cam.transform.position + (player.cam.transform.forward * (player.GrabDistance + 0.5f)), player.cam.transform.forward, out hit, 10000, aimableLayers))
        {
            transform.LookAt(hit.point);

            LaserPuzzleGoal laserPuzzleGoal = hit.collider.GetComponentInParent <LaserPuzzleGoal>();
            if (laserPuzzleGoal != null && Input.GetMouseButton(1))
            {
                laserPuzzleGoal.IsShotAt();
            }
        }
        else
        {
            transform.localEulerAngles = player.cam.transform.eulerAngles;
        }

        if (aimToggleObject != null)
        {
            aimToggleObject.SetActive(Input.GetMouseButton(1));
        }
    }
Пример #3
0
 void Start()
 {
     currentTarget            = targets[1];
     laserGoalObject.position = currentTarget.transform.position;
 }