Beispiel #1
0
    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;
    }
Beispiel #2
0
    // 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();
                    }
                }
            }
        }
    }