private void Start() { MapOrigin = MapOrigin.Find(); NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent"); SpawnBoundsSize = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize); NPCMaxCount = MapOrigin.NPCMaxCount; SimulatorCamera = SimulatorManager.Instance.CameraManager.SimulatorCamera; MapManager = SimulatorManager.Instance.MapManager; NPCVehicles.Clear(); foreach (var data in Simulator.Web.Config.NPCVehicles) { NPCVehicles.Add(new NPCS { NPCType = data.Value.NPCType, Prefab = data.Value.prefab, }); if (NPCColorData.Count(d => d.Type == data.Value.NPCType) == 0) { Debug.LogWarning($"NPC of type {data.Value.NPCType} loaded but no colors to pick configured for this type"); } } var network = Loader.Instance.Network; network.MessagesManager?.RegisterObject(this); if (!SimulatorManager.Instance.IsAPI && !network.IsClient) { SpawnNPCPool(); if (NPCActive) { SetNPCOnMap(); } } }
private void Start() { MapOrigin = MapOrigin.Find(); PedSpawnCheckBitmask = LayerMask.GetMask("Pedestrian", "Agent", "NPC"); SpawnBoundsSize = new Vector3(MapOrigin.PedSpawnBoundSize, 50f, MapOrigin.PedSpawnBoundSize); PedMaxCount = MapOrigin.PedMaxCount; SimulatorCamera = SimulatorManager.Instance.CameraManager.SimulatorCamera; SpawnInfo[] spawnInfos = FindObjectsOfType <SpawnInfo>(); var pt = Vector3.zero; if (spawnInfos.Length > 0) { pt = spawnInfos[0].transform.position; } NavMeshHit hit; if (NavMesh.SamplePosition(pt, out hit, 1f, NavMesh.AllAreas)) { InitPedestrians(); if (PedestriansActive) { SetPedOnMap(); } } else { var sceneName = SceneManager.GetActiveScene().name; Debug.LogError($"{sceneName} is missing Pedestrian NavMesh"); gameObject.SetActive(false); } }
private void Awake() { RigidBody = GetComponentInParent <Rigidbody>(); Actions = GetComponentInParent <VehicleActions>(); Dynamics = GetComponentInParent <IVehicleDynamics>(); MapOrigin = MapOrigin.Find(); }
public void Execute(JSONNode args) { var api = ApiManager.Instance; var map = MapOrigin.Find(); if (map == null) { api.SendError(this, "MapOrigin not found. Is the scene loaded?"); return; } var position = args["transform"]["position"].ReadDouble3(); var rotation = args["transform"]["rotation"].ReadDouble3(); double northing, easting; map.PositionToNorthingEasting(position, out northing, out easting); double latitude, longitude; map.NorthingEastingToLatLong(northing, easting, out latitude, out longitude); var result = new JSONObject(); result.Add("latitude", new JSONNumber(latitude)); result.Add("longitude", new JSONNumber(longitude)); result.Add("northing", new JSONNumber(northing)); result.Add("easting", new JSONNumber(easting)); result.Add("altitude", new JSONNumber(position.y + map.AltitudeOffset)); result.Add("orientation", new JSONNumber(-rotation.y)); api.SendResult(this, result); }
private void Start() { MapOrigin = MapOrigin.Find(); spawnsManager = GetComponent <SpawnsManager>(); PedSpawnCheckBitmask = LayerMask.GetMask("Pedestrian", "Agent", "NPC"); PedMaxCount = MapOrigin.PedMaxCount; SimCameraManager = SimulatorManager.Instance.CameraManager; SimulatorCamera = SimCameraManager.SimulatorCamera; MapManager = SimulatorManager.Instance.MapManager; SpawnInfo[] spawnInfos = FindObjectsOfType <SpawnInfo>(); Loader.Instance.Network.MessagesManager?.RegisterObject(this); var pt = Vector3.zero; if (spawnInfos.Length > 0) { pt = spawnInfos[0].transform.position; } if (Loader.Instance.Network.IsClient) { return; } if (NavMesh.SamplePosition(pt, out NavMeshHit hit, 1f, NavMesh.AllAreas)) { if (!SimulatorManager.Instance.IsAPI && !Loader.Instance.Network.IsClient) { SpawnPedPool(); if (PedestriansActive) { SetPedOnMap(true); } } }
private void Start() { MapOrigin = MapOrigin.Find(); PedSpawnCheckBitmask = LayerMask.GetMask("Pedestrian", "Agent", "NPC"); SpawnBoundsSize = new Vector3(MapOrigin.PedSpawnBoundSize, 50f, MapOrigin.PedSpawnBoundSize); PedMaxCount = MapOrigin.PedMaxCount; SimulatorCamera = SimulatorManager.Instance.CameraManager.SimulatorCamera; SpawnInfo[] spawnInfos = FindObjectsOfType <SpawnInfo>(); Loader.Instance.Network.MessagesManager?.RegisterObject(this); var pt = Vector3.zero; if (spawnInfos.Length > 0) { pt = spawnInfos[0].transform.position; } if (Loader.Instance.Network.IsClient) { return; } if (NavMesh.SamplePosition(pt, out NavMeshHit hit, 1f, NavMesh.AllAreas)) { InitPedestrians(); if (PedestriansActive) { SetPedOnMap(); } }
public void Start() { RigidBody = GetComponentInParent <Rigidbody>(); MapOrigin = MapOrigin.Find(); Task.Run(Publisher); }
private void Start() { MapOrigin = MapOrigin.Find(); spawnsManager = GetComponent <SpawnsManager>(); NPCMaxCount = MapOrigin.NPCMaxCount; SimCameraManager = SimulatorManager.Instance.CameraManager; SimulatorCamera = SimCameraManager.SimulatorCamera; MapManager = SimulatorManager.Instance.MapManager; InitSpawn = true; NPCVehicles.Clear(); if (Loader.Instance.CurrentSimulation == null) { return; } if (Loader.Instance.CurrentSimulation.NPCs == null) { Loader.Instance.CurrentSimulation.NPCs = Simulator.Web.Config.NPCVehicles.Values.ToArray(); } foreach (var data in Loader.Instance.CurrentSimulation.NPCs) { if (data.Enabled) { GameObject obj = null; foreach (var item in Simulator.Web.Config.NPCVehicles.Values) { if (item.Name == data.Name) { obj = item.Prefab; } } NPCVehicles.Add(new NPCAssetData { NPCType = data.NPCType, Prefab = obj, }); if (NPCColorData.Count(d => d.Type == data.NPCType) == 0) { Debug.LogWarning($"NPC of type {data.NPCType} loaded but no colors to pick configured for this type"); } } } var network = Loader.Instance.Network; network.MessagesManager?.RegisterObject(this); if (!SimulatorManager.Instance.IsAPI && !network.IsClient) { SpawnNPCPool(); if (NPCActive) { SetNPCOnMap(true); } } }
void Start() { MapOrigin = MapOrigin.Find(); WireframeBoxes = SimulatorManager.Instance.WireframeBoxes; rangeTrigger.SetCallbacks(WhileInRange); rangeTrigger.transform.localScale = MaxDistance * UnityEngine.Vector3.one; nextSend = Time.time + 1.0f / Frequency; }
public void Execute(JSONNode argsArray) { var api = ApiManager.Instance; var map = MapOrigin.Find(); if (map == null) { api.SendError(this, "MapOrigin not found. Is the scene loaded?"); return; } var results = new JSONArray(); var arr = argsArray.AsArray; foreach (var args in arr.Children) { Vector3 position; if (args["latitude"] == null) { var northing = args["northing"].AsDouble; var easting = args["easting"].AsDouble; position = map.NorthingEastingToPosition(northing, easting); } else { var latitude = args["latitude"].AsDouble; var longitude = args["longitude"].AsDouble; double northing, easting; map.LatLongToNorthingEasting(latitude, longitude, out northing, out easting); position = map.NorthingEastingToPosition(northing, easting); } var altitude = args["altitude"]; if (altitude != null) { position.y = altitude.AsFloat - map.AltitudeOffset; } Vector3 rotation = Vector3.zero; var orientation = args["orientation"]; if (orientation != null) { rotation.y = -orientation.AsFloat; } var result = new JSONObject(); result.Add("position", position); result.Add("rotation", rotation); results.Add(result); } api.SendResult(this, results); }
public override void OnBridgeSetup(IBridge bridge) { Bridge = bridge; Writer = bridge.AddWriter <CanBusData>(Topic); RigidBody = GetComponentInParent <Rigidbody>(); Actions = GetComponentInParent <VehicleActions>(); Dynamics = GetComponentInParent <VehicleDynamics>(); MapOrigin = MapOrigin.Find(); }
void Start() { WireframeBoxes = SimulatorManager.Instance.WireframeBoxes; rangeTrigger.SetCallbacks(WhileInRange); rangeTrigger.transform.localScale = MaxDistance * Vector3.one; nextSend = SimulatorManager.Instance.CurrentTime + 1.0f / Frequency; MapOrigin = MapOrigin.Find(); startTime = SimulatorManager.Instance.CurrentTime; prevTimes = new Dictionary <string, double>(); isToRecord = false; }
public void Execute(JSONNode args) { var api = ApiManager.Instance; var map = MapOrigin.Find(); if (map == null) { api.SendError("MapOrigin not found. Is the scene loaded?"); return; } Vector3 position; if (args["latitude"] == null) { var northing = args["northing"].AsDouble; var easting = args["easting"].AsDouble; position = map.FromNorthingEasting(northing, easting); } else { var latitude = args["latitude"].AsDouble; var longitude = args["longitude"].AsDouble; double northing, easting; map.FromLatitudeLongitude(latitude, longitude, out northing, out easting); position = map.FromNorthingEasting(northing, easting); } var altitude = args["altitude"]; if (altitude != null) { position.y = altitude.AsFloat - map.AltitudeOffset; } Vector3 rotation = Vector3.zero; var orientation = args["orientation"]; if (orientation != null) { rotation.y = -orientation.AsFloat; } var result = new JSONObject(); result.Add("position", position); result.Add("rotation", rotation); api.SendResult(result); }
protected virtual void Start() { MapOrigin = MapOrigin.Find(); SpawnsManager = GetComponent <SpawnsManager>(); NPCMaxCount = MapOrigin.NPCMaxCount; NPCVehicles.Clear(); InitialSpawn = false; if (Loader.Instance.CurrentSimulation == null) { return; } if (Loader.Instance.CurrentSimulation.NPCs == null) { Loader.Instance.CurrentSimulation.NPCs = Simulator.Web.Config.NPCVehicles.Values.ToArray(); } foreach (var data in Loader.Instance.CurrentSimulation.NPCs) { if (data.Enabled) { GameObject obj = null; foreach (var item in Simulator.Web.Config.NPCVehicles.Values) { if (item.Name == data.Name) { obj = item.Prefab; } } NPCVehicles.Add(new NPCAssetData { NPCType = data.NPCType, Prefab = obj, Name = data.Name, AssetGuid = data.AssetGuid }); if (NPCColorData.Count(d => d.Type == data.NPCType) == 0) { Debug.LogWarning($"NPC of type {data.NPCType} loaded but no colors to pick configured for this type"); } } } var network = Loader.Instance.Network; network.MessagesManager?.RegisterObject(this); if (!SimulatorManager.Instance.IsAPI && !network.IsClient) // TODO API mode always remove need to pool check { SpawnNPCPool(); } }
protected virtual void Initialize() { if (IsInitialized) { return; } MapOrigin = MapOrigin.Find(); SpawnBoundsSize = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize); VisibleLM = LayerMask.GetMask("Default", "NPC", "Pedestrian", "Obstacle"); NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent", "Pedestrian"); CacheSpawnPoints(); IsInitialized = true; }
private void Start() { MapOrigin = MapOrigin.Find(); NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent"); SpawnBoundsSize = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize); NPCMaxCount = MapOrigin.NPCMaxCount; SimulatorCamera = SimulatorManager.Instance.CameraManager.SimulatorCamera; if (!SimulatorManager.Instance.IsAPI) { SpawnNPCPool(); if (NPCActive) { SetNPCOnMap(); } } }
void Start() { WireframeBoxes = SimulatorManager.Instance.WireframeBoxes; if (RangeTrigger == null) { RangeTrigger = GetComponentInChildren <RangeTrigger>(); } RangeTrigger.SetCallbacks(WhileInRange); RangeTrigger.transform.localScale = MaxDistance * Vector3.one; MapOrigin = MapOrigin.Find(); Detected = new Dictionary <uint, Tuple <Detected3DObject, Collider> >(); CurrentIDs = new HashSet <uint>(); StartCoroutine(OnPublish()); }
private void Start() { MapOrigin = MapOrigin.Find(); NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent"); SpawnBoundsSize = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize); NPCMaxCount = MapOrigin.NPCMaxCount; SimulatorCamera = SimulatorManager.Instance.CameraManager.SimulatorCamera; var network = Loader.Instance.Network; network.MessagesManager?.RegisterObject(this); if (!SimulatorManager.Instance.IsAPI && !network.IsClient) { SpawnNPCPool(); if (NPCActive) { SetNPCOnMap(); } } }
bool ImportApolloMapCalculate(string filePath) { using (var fs = File.OpenRead(filePath)) { ApolloMap = ProtoBuf.Serializer.Deserialize <Map>(fs); } var mapName = "Map" + "_" + Encoding.UTF8.GetString(ApolloMap.header.vendor) + "_" + Encoding.UTF8.GetString(ApolloMap.header.district); if (!CreateMapHolders(filePath, mapName)) { return(false); } MapOrigin = MapOrigin.Find(); // get or create a map origin if (!CreateOrUpdateMapOrigin(ApolloMap, MapOrigin)) { Debug.LogWarning("Could not find latitude or/and longitude in map header Or not supported projection, mapOrigin is not updated."); } ImportJunctions(); ImportLanes(); ImportRoads(); ConnectLanes(); ImportOverlaps(); ImportStopSigns(); ImportSignals(); SetIntersectionTriggerBounds(); ImportYields(); UpdateStopLines(); // Update stoplines using intersecting lanes end points // SetLaneYieldLanes(); // ImportCrossWalks(); // ImportParkingSpaces(); // ImportSpeedBumps(); // ImportClearAreas(); return(true); }
protected override void Initialize() { WireframeBoxes = SimulatorManager.Instance.WireframeBoxes; MapOrigin = MapOrigin.Find(); }
public void Start() { MapOrigin = MapOrigin.Find(); Task.Run(Publisher); }
private void Awake() { MapOrigin = MapOrigin.Find(); startPosition = transform.position; startRotation = transform.rotation; }
private void Start() { MapOrigin = MapOrigin.Find(); spawnsManager = GetComponent<SpawnsManager>(); PedSpawnCheckBitmask = LayerMask.GetMask("Pedestrian", "Agent", "NPC"); PedMaxCount = MapOrigin.PedMaxCount; SimCameraManager = SimulatorManager.Instance.CameraManager; SimulatorCamera = SimCameraManager.SimulatorCamera; MapManager = SimulatorManager.Instance.MapManager; PedestrianData.Clear(); if (Loader.Instance.CurrentSimulation == null) { return; } if (Loader.Instance.CurrentSimulation.Peds == null) { Loader.Instance.CurrentSimulation.Peds = Simulator.Web.Config.Pedestrians.Values.ToArray(); } foreach (var data in Loader.Instance.CurrentSimulation.Peds) { if (data.Enabled) { GameObject obj = null; foreach (var item in Simulator.Web.Config.Pedestrians.Values) { if (item.Name == data.Name) { obj = item.Prefab; } } PedestrianData.Add(new PedAssetData { Prefab = obj, Name = obj.name, }); } } SpawnInfo[] spawnInfos = FindObjectsOfType<SpawnInfo>(); Loader.Instance.Network.MessagesManager?.RegisterObject(this); var pt = Vector3.zero; if (spawnInfos.Length > 0) { pt = spawnInfos[0].transform.position; } if (Loader.Instance.Network.IsClient) { return; } if (NavMesh.SamplePosition(pt, out NavMeshHit hit, 1f, NavMesh.AllAreas)) { if (!SimulatorManager.Instance.IsAPI && !Loader.Instance.Network.IsClient) { var pool = SpawnPedPool(); if (pool != null) { if (PedestriansActive) { SetPedOnMap(true); } } else { Debug.Log("No pedestrian pool, disabled pedestrian manager "); gameObject.SetActive(false); } } }
private void Awake() { MapOrigin = MapOrigin.Find(); GPSLocation = MapOrigin.PositionToGpsLocation(Vector3.zero); }
private void Awake() { mapOrigin = MapOrigin.Find(); gpsLocation = mapOrigin.GetGpsLocation(Vector3.zero); }
private void Awake() { MapOrigin = MapOrigin.Find(); }
private void Awake() { RigidBody = GetComponentInParent <Rigidbody>(); MapOrigin = MapOrigin.Find(); }