예제 #1
0
 void Awake()
 {
     instance             = this;
     remainingAntsToSpawn = new List <AntController>();
     antLeaderToSpawn     = Instantiate(antLeaderPrefab).GetComponent <AntController>();
     SpawnAntLeader();
 }
예제 #2
0
    private void Start()
    {
        Instance = this;
        LoadRounds();
        roundTxt.text = round.ToString();

        checkpoints = new Transform[checkpointsParent.childCount];
        for (int i = 0; i < checkpointsParent.childCount; i++)
        {
            checkpoints[i] = checkpointsParent.GetChild(i);
        }
    }
예제 #3
0
    // Lets you convert the editor data representation to the entity optimal runtime representation

    public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
    {
        var spawnerData = new AntSpawner
        {
            // The referenced prefab will be converted due to DeclareReferencedPrefabs.
            // So here we simply map the game object to an entity reference to that prefab.
            Prefab = conversionSystem.GetPrimaryEntity(Prefab),
            Count  = Count
        };

        dstManager.AddComponentData(entity, spawnerData);
    }
예제 #4
0
    // Update is called once per frame
    void FixedUpdate()
    {
        resultPanel.GetComponent <UnityEngine.UI.Text>().text = "Word: " + currWord;
        hpPanel.GetComponent <UnityEngine.UI.Text>().text     = "Lifes: " + lives;
        scorePanel.GetComponent <UnityEngine.UI.Text>().text  = "Score: " + score;
        timePanel.GetComponent <UnityEngine.UI.Text>().text   = "Time: " + timeLeft;

        currWord = currWord.ToUpper();

        if (timeLeft <= 0.0f || lives < 1)
        {
            SceneManager.LoadScene("gameover");
        }

        string cutTargetWord = currTargetWord;

        if (cutTargetWord.Length > currWord.Length)
        {
            cutTargetWord = currTargetWord.Substring(0, currWord.Length);
        }

        if (currWord == "")
        {
            return;
        }
        if (!cutTargetWord.Contains(currWord))
        {
            hurt();
        }
        else
        {
            if (currWord.CompareTo(currTargetWord) == 0)
            {
                score    += currTargetWord.Length;
                timeLeft += currTargetWord.Length * 4;
                GameObject[] letters = GameObject.FindGameObjectsWithTag("letter");
                foreach (GameObject letter in letters)
                {
                    Destroy(letter);
                }
                foreach (GameObject LetterSpawner in LetterSpawners)
                {
                    LetterSpawner.GetComponent <LetterSpawner>().setScore(score);
                }
                AntSpawner spawner = Spawner.GetComponent <AntSpawner>();
                spawner.spawnAnt(currTargetWord);
                changeTargetWord();
            }
        }
    }
예제 #5
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (attachedAntLeader != null)
        {
            return;
        }

        AntController collidingAnt = collision.collider.GetComponent <AntController>();

        if (collidingAnt == null || !collidingAnt.isLeader)
        {
            return;
        }

        AntSpawner.ForceSpawnOfAllAnts();
        rb.bodyType = RigidbodyType2D.Dynamic;

        transform.parent = null;

        attachedAnts = AntsManager.GetActiveAnts();

        foreach (AntController ant in attachedAnts)
        {
            ant.enabled          = false;
            ant.transform.parent = transform;
            SetAntPositionAndRotationAfterHit(ant);
            ant.GetComponent <Collider2D>().enabled = false;

            if (ant.isLeader)
            {
                attachedAntLeader = ant;
                ant.GetComponent <Rigidbody2D>().bodyType = RigidbodyType2D.Kinematic;
                ant.PlayPickupSound();
            }
        }
    }