/// <summary> /// Creates a new Connection GameObject and related components. /// </summary> /// <param name="name"></param> /// <param name="filterExerciseID"></param> /// <param name="exerciseID"></param> /// <returns></returns> public static GameObject CreateConnection(string name, bool filterExerciseID, int exerciseID) { GameObject connectionGO = new GameObject(name); Connection connection = connectionGO.AddComponent <Connection>(); // PDU Factory GameObject factoryGO = new GameObject("PDU Factory"); factoryGO.transform.parent = connectionGO.transform; DecodeFactory facory = factoryGO.AddComponent <DecodeFactory>(); connection.Factory = facory; // Filters GameObject filtersGO = new GameObject("Filters"); filtersGO.transform.parent = connectionGO.transform; // Exercise ID Filter if (filterExerciseID) { ExerciseIDFilter exid = filtersGO.AddComponent <ExerciseIDFilter>(); exid.AllowedExerciseID = exerciseID; facory.Filters.Add(exid); } return(connectionGO); }
/// <summary> /// Creates the required objects for a DIS exercise using the provided params. /// </summary> public void Create() { // Create the root GameObject GameObject rootGO = new GameObject(rootName); // Exercise info GameObject exerciseGO = new GameObject("Exercise Manager"); exerciseGO.transform.parent = rootGO.transform; ExerciseManager exMan = exerciseGO.AddComponent <ExerciseManager>(); exMan.Address = address; // Entity Manager GameObject entGO = new GameObject("Entity Manager"); entGO.transform.parent = rootGO.transform; EntityManager entMan = entGO.AddComponent <EntityManager>(); // Entity type GameObject mapGo = new GameObject("Entity Map"); mapGo.transform.parent = entGO.transform; entMan.EntityMap = mapGo.AddComponent(typeof(EntityTypeMap)) as EntityTypeMap; entMan.EntityMap.Load(); // Create a gameobject to be parent of all remote entities. GameObject remoteEntsParent = new GameObject("Remote Entities"); remoteEntsParent.transform.parent = entGO.transform; entMan.RemoteEntityParent = remoteEntsParent; // Connection GameObject conGO = new GameObject("Connection"); conGO.transform.parent = rootGO.transform; Connection connection = conGO.AddComponent <Connection>(); connection.Port = port; connection.ReceivePollFrequency = refreshFreq; connection.UseBroadcast = useBroadcast; connection.BroadcastAddress = broadcastAddress; connection.MulticastGroups = multicastAddresses; DecodeFactory facory = conGO.AddComponent <DecodeFactory>(); connection.Factory = facory; // Filters GameObject filtersGO = new GameObject("Filters"); filtersGO.transform.parent = conGO.transform; // Exercise ID Filter ExerciseIDFilter exid = filtersGO.AddComponent <ExerciseIDFilter>(); exid.AllowedExerciseID = exerciseID; facory.Filters.Add(exid); Undo.RegisterCreatedObjectUndo(rootGO, "Setup Scene For DIS"); Close(); }