// if you need more than one Listener for of each type (KillableListener etc), create subclasses like this, inheriting from KillableListener public override void Despawning(TriggeredSpawner.EventType eType) { base.Despawning(eType); // your code here. Debug.Log("KillableListenerSubclass (on MainCamera): Played died! Take some action"); }
public void StartTracking(TriggeredSpawnerV2 sourceSpawner, TriggeredSpawner.EventType eType, string customEventName, TriggeredWaveMetaData waveMeta) { _sourceSpawner = sourceSpawner; _waveEventType = eType; _customEventName = customEventName; _waveMeta = waveMeta; }
private void Despawn(TriggeredSpawner.EventType eType) { if (LevelSettings.AppIsShuttingDown || _isDespawning) { return; } _isDespawning = true; if (listener != null) { listener.Despawning(eType, _trans); } PoolBoss.Despawn(_trans); }
/// <summary> /// This method gets called after the last item in a wave has finished spawning. /// </summary> /// <param name="eType">The event type.</param> /// <param name="spec">The wave specifics.</param> public virtual void WaveFinishedSpawning(TriggeredSpawner.EventType eType, TriggeredWaveSpecifics spec) { // please do not manipulate values in the "spec". It is for your read-only information }
/// <summary> /// This method gets called immediately after a wave item spawns. /// </summary> /// <param name="eType">The event type.</param> /// <param name="spawnedTrans">The spawned item.</param> public virtual void ItemSpawned(TriggeredSpawner.EventType eType, Transform spawnedTrans) { // do something to the Transform. }
/// <summary> /// This method gets called if a wave item fails to spawn. /// </summary> /// <param name="eType">The event type.</param> /// <param name="failedPrefabTrans">The prefab that failed to spawn.</param> public virtual void ItemFailedToSpawn(TriggeredSpawner.EventType eType, Transform failedPrefabTrans) { // your code here. The transform is not spawned. This is just a reference }
/// <summary> /// This method gets called if a parent spawner's wave ends early, to cancel the child spawners' waves as well. /// </summary> /// <param name="eType">The event type.</param> /// <param name="customEventName">The custom event name, if any.</param> /// <param name="transmitterTrans">The parent spawner's Transform.</param> /// <param name="receiverSpawnerCount">The count of all child spawners of the parent.</param> public virtual void PropagatedWaveEndedEarly(TriggeredSpawner.EventType eType, string customEventName, Transform transmitterTrans, int receiverSpawnerCount) { // your code here. }
/// <summary> /// This method gets called if the wave ends early. /// </summary> /// <param name="eType">The event type.</param> public virtual void WaveEndedEarly(TriggeredSpawner.EventType eType) { // your code here. }
/// <summary> /// This method gets calls when a child spawner gets notified to call its wave from a parent spawner. Override if you need custom logic. /// </summary> /// <param name="eType">The event type.</param> /// <param name="transmitterTrans">The parent spawner's Transform.</param> public virtual void PropagatedEventReceived(TriggeredSpawner.EventType eType, Transform transmitterTrans) { // your code here. }
/// <summary> /// This method gets calls when a spawner gets ready to call events on child spawners. Override if you need custom logic. /// </summary> /// <param name="eType">The event type.</param> /// <param name="transmitterTrans">The parent spawner's Transform.</param> /// <param name="receiverSpawnerCount">The count of all child spawners of the parent.</param> public virtual void EventPropagating(TriggeredSpawner.EventType eType, Transform transmitterTrans, int receiverSpawnerCount) { // your code here. }
public virtual void Despawning(TriggeredSpawner.EventType eType) { // your code here. }
public virtual void Despawning(TriggeredSpawner.EventType eType, Transform transDespawning) { // Your code here. }
private bool RenderEventTypeControls(EventDespawnSpecifics despawnSettings, string toggleText, TriggeredSpawner.EventType eventType) { DTInspectorUtility.VerticalSpace(2); EditorGUI.indentLevel = 0; var state = despawnSettings.eventEnabled; var text = " " + toggleText; // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression if (!state) { GUI.backgroundColor = DTInspectorUtility.InactiveHeaderColor; } else { GUI.backgroundColor = DTInspectorUtility.ActiveHeaderColor; } DTInspectorUtility.StartGroupHeader(0); var newTog = EditorGUILayout.BeginToggleGroup(text, despawnSettings.eventEnabled); if (newTog != despawnSettings.eventEnabled) { UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "toggle " + toggleText + " enabled"); despawnSettings.eventEnabled = newTog; } if (!despawnSettings.eventEnabled) { EditorGUILayout.EndToggleGroup(); DTInspectorUtility.EndGroupHeader(); return(_isDirty); } DTInspectorUtility.BeginGroupedControls(); if (TriggeredSpawner.eventsWithTagLayerFilters.Contains(eventType)) { DTInspectorUtility.StartGroupHeader(1); var newUseLayerFilter = EditorGUILayout.BeginToggleGroup(" Layer filters", despawnSettings.useLayerFilter); if (newUseLayerFilter != despawnSettings.useLayerFilter) { UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "toggle Layer filters"); despawnSettings.useLayerFilter = newUseLayerFilter; } DTInspectorUtility.EndGroupHeader(); if (despawnSettings.useLayerFilter) { for (var i = 0; i < despawnSettings.matchingLayers.Count; i++) { var newMatch = EditorGUILayout.LayerField("Layer Match " + (i + 1), despawnSettings.matchingLayers[i]); if (newMatch == despawnSettings.matchingLayers[i]) { continue; } UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "change Layer Match"); despawnSettings.matchingLayers[i] = newMatch; } EditorGUILayout.BeginHorizontal(); GUILayout.Space(12); GUI.contentColor = DTInspectorUtility.BrightButtonColor; if (GUILayout.Button(new GUIContent("Add", "Click to add a Layer Match at the end"), EditorStyles.toolbarButton, GUILayout.Width(60))) { UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "add Layer Match"); despawnSettings.matchingLayers.Add(0); } GUILayout.Space(10); if (despawnSettings.matchingLayers.Count > 1) { if (GUILayout.Button(new GUIContent("Remove", "Click to remove the last Layer Match"), EditorStyles.toolbarButton, GUILayout.Width(60))) { UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "remove Layer Match"); despawnSettings.matchingLayers.RemoveAt(despawnSettings.matchingLayers.Count - 1); } } GUI.contentColor = Color.white; EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndToggleGroup(); DTInspectorUtility.AddSpaceForNonU5(); DTInspectorUtility.StartGroupHeader(1); despawnSettings.useTagFilter = EditorGUILayout.BeginToggleGroup(" Tag filter", despawnSettings.useTagFilter); DTInspectorUtility.EndGroupHeader(); if (despawnSettings.useTagFilter) { for (var i = 0; i < despawnSettings.matchingTags.Count; i++) { var newMatch = EditorGUILayout.TagField("Tag Match " + (i + 1), despawnSettings.matchingTags[i]); if (newMatch == despawnSettings.matchingTags[i]) { continue; } UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "change Tag Match"); despawnSettings.matchingTags[i] = newMatch; } EditorGUILayout.BeginHorizontal(); GUILayout.Space(12); GUI.contentColor = DTInspectorUtility.BrightButtonColor; if (GUILayout.Button(new GUIContent("Add", "Click to add a Tag Match at the end"), EditorStyles.toolbarButton, GUILayout.Width(60))) { UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "add Tag Match"); despawnSettings.matchingTags.Add("Untagged"); } GUILayout.Space(10); if (despawnSettings.matchingTags.Count > 1) { if (GUILayout.Button(new GUIContent("Remove", "Click to remove the last Tag Match"), EditorStyles.toolbarButton, GUILayout.Width(60))) { UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "remove Tag Match"); despawnSettings.matchingTags.RemoveAt(despawnSettings.matchingLayers.Count - 1); } } GUI.contentColor = Color.white; EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndToggleGroup(); } else { EditorGUI.indentLevel = 0; DTInspectorUtility.ShowColorWarningBox("No additional properties for this event type."); } DTInspectorUtility.EndGroupedControls(); EditorGUILayout.EndToggleGroup(); DTInspectorUtility.EndGroupHeader(); return(_isDirty); }