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()); }
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)); } }
void Start() { currentTarget = targets[1]; laserGoalObject.position = currentTarget.transform.position; }