コード例 #1
0
    void Spawn()
    {
        if (nodes.Length <= 0)
        {
            Debug.LogWarning("There's no nodes!");
            return;
        }
        int nodeIndex = nodeRand.Range(0, nodes.Length - 1, true);

        while (nodeList.Contains(nodeIndex))
        {
            nodeIndex = nodeRand.Range(0, nodes.Length - 1, true);
        }
        nodeList.Add(nodeIndex);
        if (nodeList.Count >= nodes.Length - 1)
        {
            nodeList.RemoveAt(0);
        }

        int instIndex = timeRand.Range(0, instructionLines.Length - 1, true);

        List <string> parameters  = instructionLines[instIndex].Clone <List <string> >();
        int           randomValue = values[Random.Range(0, values.Length - 1)];

        parameters[0] = parameters[0].Replace("%v", randomValue + "");

        Instruction newDude = InstructionFactory.createInstruction(instructionText[instIndex], 1, 1, gameObject, parameters);

        newDude.GetComponent <GameText>().invulnerable = true;
        newDude.transform.position = nodes[nodeIndex].transform.position;
        newDude.AddComponent <InstructionCrawl>();

        generatorTimer = GetNewTime();
    }
コード例 #2
0
    public override void Awake()
    {
        objectsToSpawn = new [] { References.Prefabs.Spike };
        base.Awake();

        textCollider2D = GetComponent <TextCollider2D>();
        if (textCollider2D != null)
        {
            textCollider2D.Text = string.Empty;
        }

        randomGenerator = new MTRandom(Random.value.ToString());
        if (autoSpawn)
        {
            spawnDelay = randomGenerator.Range(spawnMinDelay, spawnMaxDelay);
            SpawnSpikeIn(spawnDelay);
        }
    }
コード例 #3
0
    public void SpawnSpike()
    {
        if (spawningSpike != null)
        {
            waitingSpike = spawningSpike;
            waitingSpike.Invoke("Fall", 1.5F);
        }

        spawningSpike = Spawn("Spike", transform.position, Quaternion.identity).GetComponent <Spike>();
        spawningSpike.transform.parent = transform;
        spawningSpike.spikeManager     = this;

        if (autoSpawn)
        {
            spawnDelay = randomGenerator.Range(spawnMinDelay, spawnMaxDelay);
            SpawnSpikeIn(spawnDelay);
        }
    }
コード例 #4
0
 float GetNewTime()
 {
     return(timeRand.Range(2f, 4.8f));
 }
コード例 #5
0
 void Start()
 {
     crawlSpeed        = rand.Range(0.5f, 1f);
     t                 = transform;
     effectivePosition = t.position.x;
 }