Пример #1
0
    void OnTriggerEnter(Collider other)
    {
        if (enabled)
        {
            SpawnField field = other.GetComponent <SpawnField>();

            if (field != null && other.CompareTag(spawnAreaTag))
            {
                Vector3    position = field.AlignPosition(transform.position);
                Quaternion rotation = field.AlignRotation(transform.up);

#pragma warning disable CS0219
//#pragma warning disable CS1692
                GameObject newObject = Instantiate(
                    objPrefab.constValue,
                    position,
                    rotation,
                    null
                    ) as GameObject;
#pragma warning restore

                MortalityHandler.Kill(gameObject);
            }
        }
    }
Пример #2
0
    private IEnumerator SpawnFied(SpawnField spawnField)
    {
        float interval = _levelData.duration / spawnField.qttOfInstances;

        for (int i = 0; i < spawnField.qttOfInstances; i++)
        {
            yield return(new WaitForSeconds(interval));

            Instantiate(spawnField.cookiePrefab, GetRandomSpawnPos(), Quaternion.identity);
        }
    }
    private IEnumerator ExecuteSpawnField(SpawnField spawnField)
    {
        yield return(new WaitForSeconds(spawnField.delay));

        float interval = spawnField.spawnDuration / spawnField.qttOfInstances;

        for (int i = 0; i < spawnField.qttOfInstances; i++)
        {
            yield return(new WaitForSeconds(interval));

            Instantiate(spawnField.cookiePrefab, GetRandomSpawnPos(), Quaternion.identity);
        }
    }
Пример #4
0
    public override void OnInspectorGUI()
    {
        SpawnField spawnField = target as SpawnField;

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Waves");
        if (GUILayout.Button("Add Wave", GUILayout.ExpandWidth(false)))
        {
            spawnField.SpawnWaves.Add(new List <Spawn>());
            m_showWaves.Add(false);
            GUI.changed = true;
        }
        EditorGUILayout.EndHorizontal();

        for (int i = 0; i < spawnField.SpawnWaves.Count; i++)
        {
            EditorGUI.indentLevel++;

            EditorGUILayout.BeginHorizontal();
            m_showWaves[i] = EditorGUILayout.Foldout(m_showWaves[i], "Wave " + i);
            if (m_showWaves[i])
            {
                EditorGUI.indentLevel++;

                if (GUILayout.Button("-", GUILayout.ExpandWidth(false)))
                {
                    spawnField.SpawnWaves.RemoveAt(i);
                    GUI.changed = true;
                }
                EditorGUILayout.EndHorizontal();

                for (int j = 0; j < spawnField.SpawnWaves[i].Count; j++)
                {
                    EditorGUI.indentLevel++;
                    spawnField.SpawnWaves[i][j].Prefab = EditorGUILayout.ObjectField("Enemy Prefab", null, typeof(GameObject), true) as GameObject;
                    spawnField.SpawnWaves[i][j].Count  = EditorGUILayout.IntField("Spawn count", 1);

                    if (GUILayout.Button("-", GUILayout.ExpandWidth(false)))
                    {
                        spawnField.SpawnWaves[i].RemoveAt(j);
                        GUI.changed = true;
                    }
                    EditorGUI.indentLevel--;
                }

                if (GUILayout.Button("Add Spawn", GUILayout.ExpandWidth(false)))
                {
                    spawnField.SpawnWaves[i].Add(new Spawn());
                    GUI.changed = true;
                }

                EditorGUI.indentLevel--;
            }
            else
            {
                EditorGUILayout.EndHorizontal();
            }
            EditorGUI.indentLevel--;
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(spawnField);
        }
    }