AreaEventTriggerSpawn.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Security;
  4. [AddComponentMenu("Trigger/Trigger_Spawn")]
  5. public class AreaEventTriggerSpawn : AreaEventTrigger
  6. {
  7. public SpawnCfgGroup[] SpawnGroups = new SpawnCfgGroup[0];
  8. protected override void BuildTriggerWrapper()
  9. {
  10. PresetActWrapper = new TriggerActionWrapper(EGlobalTriggerAct.TriggerSpawn);
  11. GameObject[] SpawnGroupObjList = new GameObject[SpawnGroups.Length];
  12. for (int i = 0; i < SpawnGroups.Length; ++i)
  13. {
  14. SpawnGroupObjList[i] = null;
  15. if (SpawnGroups[i])
  16. {
  17. SpawnGroupObjList[i] = SpawnGroups[i].gameObject;
  18. }
  19. }
  20. PresetActWrapper.RefObjList = SpawnGroupObjList;
  21. PresetActWrapper.Init(ID);
  22. }
  23. public SecurityElement SaveToXml()
  24. {
  25. SecurityElement node = new SecurityElement("TriggerSpawnGroup");
  26. for(int idx =0; idx < SpawnGroups.Length;idx++)
  27. {
  28. SpawnCfgGroup cfgGroup = SpawnGroups[idx];
  29. if(cfgGroup.ConfigId > 0)
  30. {
  31. SecurityElement childNode = new SecurityElement("Spawn");
  32. childNode.AddAttribute("id", cfgGroup.ConfigId.ToString());
  33. childNode.AddAttribute("actorType", ((int)cfgGroup.actorType).ToString());
  34. node.AddChild(childNode);
  35. }
  36. SpawnCfg nextPoint = cfgGroup.nextPoint;
  37. while (nextPoint)
  38. {
  39. SecurityElement childNode = new SecurityElement("Spawn");
  40. childNode.AddAttribute("id", nextPoint.ConfigId.ToString());
  41. childNode.AddAttribute("actorType", ((int)nextPoint.actorType).ToString());
  42. node.AddChild(childNode);
  43. nextPoint = nextPoint.nextPoint;
  44. }
  45. }
  46. return node;
  47. }
  48. }