示例#1
0
    void Update()
    {
        if (Time.time > nextFire)
        {
            nextFire = Time.time + fireRate;
        }

        if (gameController.GetPassengerOnBoard() > 0)
        {
            Quaternion currentQuat = rb.rotation;
            curPosDir = currentQuat * transform.InverseTransformDirection(transform.forward);
            for (int i = 0; i < gameController.GetPassengerOnBoard(); i++)
            {
                if (!passengerBalls [i].activeSelf)
                {
                    passengerBalls [i].SetActive(true);
                }
                passengerBalls [i].transform.RotateAround(curPosDir, axises [i], (rotationSpeed + ((i + 1) * 20.0f)) * Time.deltaTime);
                var desiredPosition0 = (passengerBalls [i].transform.position - curPosDir).normalized * RADIUS + curPosDir;
                passengerBalls [i].transform.position = Vector3.MoveTowards(passengerBalls [i].transform.position, desiredPosition0, Time.deltaTime * RADIUS_SPEED);
            }
        }

        if (!gameController.getWaitingToStart())
        {
            // Skybox Movement
            stars.rotXZ();
            planets.rotXZ();

            // SINGLETON ROTATION
            rotShip = Mathf.Atan2((PlayerInputSingleton.Instance.getXPerDeg() - .5f), (PlayerInputSingleton.Instance.getZPerDeg() - .5f)) * Mathf.Rad2Deg;               //  - 90.0f;
            float beamLast = rb.transform.rotation.eulerAngles.y;
            rb.transform.rotation = Quaternion.Lerp(rb.transform.rotation, Quaternion.AngleAxis(rotShip - 90f, Vector3.up), Time.deltaTime * 6f);

            // BEAM
            float perEngine = Mathf.Abs(PlayerInputSingleton.Instance.getXPerDeg() - .5f);
            if (Mathf.Abs(PlayerInputSingleton.Instance.getZPerDeg() - .5f) >= perEngine)
            {
                perEngine = Mathf.Abs(PlayerInputSingleton.Instance.getZPerDeg() - .5f);
            }
            beam.transform.localScale = new Vector3(1.0f, (1.0f - .1f) * perEngine * 2f + .1f, 1.0f);
            beamCode.setBend((beamLast - rb.transform.rotation.eulerAngles.y) * 2f);
        }
    }