コード例 #1
0
    //indices for instruments:

    void Start()
    {
        playerStartPosOffset = m_Camera.transform.position - geometrySpawn.getStartOrigin(); //assumes camera on start is in its place

        StartCoroutine(initialize());
        endingA.gameObject.SetActive(false);
    }
コード例 #2
0
    private IEnumerator putPuzzlesInPlace()
    {
        yield return(new WaitForSeconds(0.5f));

        StartCoroutine(geometrySpawner.gameController.playCurrentLoop());

        Vector3 startDelta = geometrySpawner.getStartOrigin() + new Vector3(startDistance, 0, 0); //we only need the x here

        GameObject cam = geometrySpawner.getCameraTransform().gameObject;

        StartCoroutine(waitThenMoveCam(cam, 0.6f, new Vector3(startDelta.x + 16 * dx, geometrySpawner.getCameraLookat().y, startDelta.z), 16 * stoneSpawnDeltaTime));

        for (int a = 0; a < 16; a++)
        {
            Vector3 currXDelta = new Vector3(startDelta.x + a * dx + Random.Range(0, dxNoise), 0, 0);
            geometrySpawner.spawnStone(stones, a, type, currXDelta, type != levelType.BASS? new Vector3(0, 0, Random.Range(-geometrySpawner.angleNoise, geometrySpawner.angleNoise)) :
                                       Vector3.zero, puzzleSpawnAssignment[a]);
            yield return(new WaitForSeconds(stoneSpawnDeltaTime));
        }
        currAssignment = puzzleSpawnAssignment;

        yield return(new WaitForSeconds(1f));
    }