private IEnumerator SuffleRoutine() { yield return(new WaitForSeconds(1f)); foreach (cup cup in cups) { cup.MoveUp(); } yield return(new WaitForSeconds(0.5f)); cup targetCup = cups[Random.Range(0, cups.Length)]; targetCup.ball = ball; ball.transform.position = new Vector3( targetCup.transform.position.x, ball.transform.position.y, targetCup.transform.position.z ); yield return(new WaitForSeconds(1f)); foreach (cup cup in cups) { cup.MoveDown(); } yield return(new WaitForSeconds(1f)); for (int i = 0; i < 5; i++) { cup cup1 = cups[Random.Range(0, cups.Length)]; cup cup2 = cup1; while (cup2 == cup1) { cup2 = cups[Random.Range(0, cups.Length)]; } Vector3 cup1Position = cup1.targetPosition; cup1.targetPosition = cup2.targetPosition; cup2.targetPosition = cup1Position; yield return(new WaitForSeconds(0.75f)); } player.canPick = true; }
// Update is called once per frame void Update() { if (canPick == true) { if (Input.GetButtonDown("Fire1") || Input.GetKeyDown("space")) { RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit)) { Debug.Log(hit.transform.name); cup cup = hit.transform.GetComponent <cup>(); if (cup != null) { canPick = false; picked = true; won = (cup.ball != null); cup.MoveUp(); } } } } }