Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (!end)
        {
            total += -speed * Time.deltaTime;
            transform.RotateAround(orbiting.transform.position, Vector3.up, -speed * Time.deltaTime);
        }

        if (end)
        {
            Vector3 current = (orbiting.transform.position - transform.position);
            Vector3 target  = baseDistance * current.normalized * 2.5f;

            transform.position += (current - target) * .6f * Time.deltaTime;

            if (winner == -1)
            {
                winner = planet.FindWinner();
                if (winner != 1)
                {
                    sandyPearl.gameObject.SetActive(true);
                }
                else
                {
                    blueMarble.gameObject.SetActive(true);
                }
            }


            if (sandyPearl.color.a < 1f)
            {
                sandyPearl.color += new Color(0, 0, 0, 1f) * .3f * Time.deltaTime;
            }

            if (blueMarble.color.a < 1f)
            {
                blueMarble.color += new Color(0, 0, 0, 1f) * .3f * Time.deltaTime;
            }
        }

        if (Mathf.Abs(total) > 370 || Input.GetKeyDown(KeyCode.Q))
        {
            end = true;
        }
    }