/// <summary> /// <para>Crea un spawn point y lo asigna al index pasado</para> /// </summary> /// <param name="nombreSpawn">Nombre Spawn</param> /// <param name="index">Index de la lista</param> public void CrearSpawnPoint(string nombreSpawn, int index)// Crea un spawn point y lo asigna al index pasado { SAgne sagn = (SAgne)target; GameObject root; GameObject nuevoGame = (GameObject)EditorGUIUtility.Load("Moon Pincho/Sistemas/Objeto.prefab");; GameObject hijo; root = GameObject.FindGameObjectWithTag("SAgne"); hijo = root.AddChild(nuevoGame); hijo.transform.parent = root.transform; hijo.name = sagn.spawnEnemigos[index].nombreSpawn; sagn.spawnEnemigos[index].spawnPoint = hijo.transform; Selection.activeGameObject = hijo; }
/// <summary> /// <para>Interfaz</para> /// </summary> public override void OnInspectorGUI()// Interfaz { SAgne sagn = (SAgne)target; #region Header EditorGUILayout.BeginVertical("box"); GUILayout.Space(5); EditorGUILayout.BeginHorizontal("box"); GUILayout.Space(10); EditorGUILayout.LabelField("Spawn Activos: " + sagn.spawnEnemigos.Count); if (GUILayout.Button("Agregar Spawn")) { AgregarSpawn(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(5); //EditorGUILayout.BeginVertical("box"); GUILayout.Space(10); #endregion for (int i = 0; i < sagn.spawnEnemigos.Count; i++) { EditorGUILayout.BeginVertical("box"); EditorGUILayout.BeginHorizontal("box"); EditorGUILayout.LabelField("Grupo Spawn " + sagn.spawnEnemigos[i].nombreSpawn); EditorGUILayout.EndHorizontal(); #region Generales RenderizarHeader("General", "MP_SAgne_Generales", generales); if (EditorGUILayout.BeginFadeGroup(generales.faded)) { EditorGUILayout.BeginHorizontal(); sagn.spawnEnemigos[i].nombreSpawn = EditorGUILayout.TextField(sagn.spawnEnemigos[i].nombreSpawn, GUILayout.Width(100)); sagn.spawnEnemigos[i].prefabEnemigo = EditorGUILayout.ObjectField("Enemigo spawn " + sagn.spawnEnemigos[i].nombreSpawn + " :", sagn.spawnEnemigos[i].prefabEnemigo, typeof(GameObject), true) as GameObject; if (GUILayout.Button("X")) { QuitarSpawn(i); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndFadeGroup(); #endregion #region Punto RenderizarHeader("Spawn", "MP_SAgne_PuntoSpawn", puntoSpawn); if (EditorGUILayout.BeginFadeGroup(puntoSpawn.faded)) { EditorGUILayout.BeginHorizontal(); if (sagn.spawnEnemigos[i].spawnPoint == null) { EditorGUILayout.LabelField("Punto de Spawn: "); if (GUILayout.Button("Crear Punto")) { CrearSpawnPoint(sagn.spawnEnemigos[i].nombreSpawn, i); } } else { sagn.spawnEnemigos[i].spawnPoint = EditorGUILayout.ObjectField("Punto de Spawn: ", sagn.spawnEnemigos[i].spawnPoint, typeof(Transform), true) as Transform; } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndFadeGroup(); #endregion #region Tiempo RenderizarHeader("Tiempo Spawn", "MP_SAgne_TiempoSpawn", tiempoSpawn); if (EditorGUILayout.BeginFadeGroup(tiempoSpawn.faded)) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Tiempo Spawn: "); sagn.spawnEnemigos[i].tiempoActualSpawn = EditorGUILayout.Slider(sagn.spawnEnemigos[i].tiempoActualSpawn, 0, sagn.spawnEnemigos[i].tiempoSpawn); EditorGUILayout.LabelField("Tiempo Max Spawn: "); sagn.spawnEnemigos[i].tiempoSpawn = EditorGUILayout.Slider(sagn.spawnEnemigos[i].tiempoSpawn, 0, 200); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndFadeGroup(); #endregion #region Enemigos RenderizarHeader("Enemigo Spawn", "MP_SAgne_EnemigosSpawn", enemigosSpawn); if (EditorGUILayout.BeginFadeGroup(enemigosSpawn.faded)) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Enemigos Spawns: "); sagn.spawnEnemigos[i].actualSpawn = EditorGUILayout.IntField(sagn.spawnEnemigos[i].actualSpawn); EditorGUILayout.LabelField("Maximo Enemigos Spawn: "); sagn.spawnEnemigos[i].maxSpawn = EditorGUILayout.IntField(sagn.spawnEnemigos[i].maxSpawn); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndFadeGroup(); #endregion EditorGUILayout.EndVertical(); } #region Final Header // EditorGUILayout.EndVertical(); EditorGUILayout.EndVertical(); #endregion Repaint(); }
/// <summary> /// <para>Quita un Spawn</para> /// </summary> /// <param name="index">Index de la lista</param> public void QuitarSpawn(int index)// Quita un Spawn { SAgne sagn = (SAgne)target; sagn.spawnEnemigos.RemoveAt(index); }
/// <summary> /// <para>Agrega un Spawn</para> /// </summary> public void AgregarSpawn()// Agrega un Spawn { SAgne sagn = (SAgne)target; sagn.spawnEnemigos.Add(new clsSpawnEnemigos()); }