private void ChangeResolution(int cameraWidth, int cameraHeight, bool grayscale) { CameraSensorComponent cameraSensor = arena.transform.FindChildWithTag("agent").GetComponent <CameraSensorComponent>(); cameraSensor.width = cameraWidth; cameraSensor.height = cameraHeight; cameraSensor.grayscale = grayscale; }
private void Awake() { if (vehicleController == null) { vehicleController = GetComponent <NewCarController>(); } if (agentRigidbody == null) { agentRigidbody = GetComponent <Rigidbody>(); } if (depth == null) { depth = GetComponent <CameraSensorComponent>(); } if (target == null) { target = transform.parent.Find("Target"); } agentStartPosition = transform.position; agentStartRotation = transform.rotation; if (!training) { return; } if (env == null) { env = GetComponentInParent <RandomEnvironment>(); } if (objectSpawner == null) { objectSpawner = transform.parent.Find("Object Spawner").GetComponent <ObjectSpawner>(); } transform.parent = env.transform; transform.localPosition = Vector3.zero; maxDistanceFromStart = Mathf.Max( env.length / 2, env.width / 2 ) * 1.25f; maxDistanceFromStartSq = maxDistanceFromStart * maxDistanceFromStart; }
private void SetCameraSensor() { CameraSensorComponent sensorCamTopView = Cutter.AddComponent <CameraSensorComponent>(); sensorCamTopView.camera = GameObject.Find("Cam_CutterTopView").GetComponent <Camera>(); sensorCamTopView.sensorName = "CameraTopView"; sensorCamTopView.width = sensorCamWidthTopView; sensorCamTopView.height = sensorCamHeightTopView; sensorCamTopView.grayscale = false; sensorCamTopView.compression = SensorCompressionType.PNG; CameraSensorComponent sensorCamTopViewInverse = Cutter.AddComponent <CameraSensorComponent>(); sensorCamTopViewInverse.camera = GameObject.Find("Cam_CutterTopViewInverse").GetComponent <Camera>(); sensorCamTopViewInverse.sensorName = "CameraTopViewInverse"; sensorCamTopViewInverse.width = sensorCamWidthTopViewInverse; sensorCamTopViewInverse.height = sensorCamHeightTopViewInverse; sensorCamTopViewInverse.grayscale = false; sensorCamTopViewInverse.compression = SensorCompressionType.PNG; }
static public void UpdateComponents() { trainingCameras.Clear(); candidatesCameras.Clear(); GameObject cameraContainer = GameObject.Find("CameraContainer"); GameObject agent = GameObject.Find("Agent"); int childs = cameraContainer.transform.childCount; for (int i = childs - 1; i >= 0; i--) { DestroyImmediate(cameraContainer.transform.GetChild(i).gameObject); } GameObject info = GameObject.Find("Info"); childs = info.transform.childCount; string infoTxt = "K:" + numCameraSets.ToString() + "_St:" + numSt.ToString() + "_Sc:" + numSc.ToString() + "_Ft:" + numFt.ToString() + "_Fc:" + numFc.ToString() + "_SC:" + sizeCanvas.ToString() + "_g:" + grayscale.ToString(); UnityEngine.Debug.Log("BUILDING INFO TXT " + infoTxt); info.transform.GetChild(0).name = infoTxt; GameObject.Find("DebugText").GetComponent <Text>().text = infoTxt; List <CameraSensorComponent> camComp = new List <CameraSensorComponent>(agent.GetComponents <CameraSensorComponent>()); foreach (CameraSensorComponent cam in camComp) { DestroyImmediate(cam); } int totIndexT = 0; int totIndexC = 0; for (int k = 0; k < numCameraSets; k++) { GameObject candidateCamera = GameObject.Find("CandidateCamera"); // remember to take this out from the sensorlist for (int sc = 0; sc < numSc; sc++) { for (int fsc = 0; fsc < numFc; fsc++) { candidatesCameras.Add(Instantiate(candidateCamera)); candidatesCameras[totIndexC].transform.parent = cameraContainer.transform; candidatesCameras[totIndexC].name = "C" + k.ToString("D3") + "S" + sc.ToString("D3") + "F" + fsc.ToString("D3"); candidatesCameras[totIndexC].SetActive(false); totIndexC += 1; } } } for (int k = 0; k < numCameraSets; k++) { GameObject trainingCamera = GameObject.Find("TrainingCamera"); // remember to take this out from the sensorlist for (int st = 0; st < numSt; st++) { for (int fst = 0; fst < numFt; fst++) { trainingCameras.Add(Instantiate(trainingCamera)); trainingCameras[totIndexT].transform.parent = cameraContainer.transform; trainingCameras[totIndexT].name = "T" + k.ToString("D3") + "S" + st.ToString("D3") + "F" + fst.ToString("D3"); trainingCameras[totIndexT].SetActive(false); totIndexT += 1; } } } //Add Cameras to Agent Assert.IsTrue(candidatesCameras.Count == numCameraSets * numFc * numSc); Assert.IsTrue(trainingCameras.Count == numCameraSets * numFt * numSt); foreach (GameObject traingCam in trainingCameras) { CameraSensorComponent cmtmp = agent.AddComponent <CameraSensorComponent>(); cmtmp.Camera = traingCam.GetComponent <Camera>(); cmtmp.SensorName = traingCam.name; cmtmp.Width = sizeCanvas; cmtmp.Height = sizeCanvas; cmtmp.Grayscale = grayscale == 1; } foreach (GameObject candidCam in candidatesCameras) // N * K { CameraSensorComponent cmtmp = agent.AddComponent <CameraSensorComponent>(); cmtmp.Camera = candidCam.GetComponent <Camera>(); cmtmp.SensorName = candidCam.name; cmtmp.Width = sizeCanvas; cmtmp.Height = sizeCanvas; cmtmp.Grayscale = grayscale == 1; } // Includes labels, and N*K+K*Q vector3s //UnityEngine.Debug.Log((N * K + K * Q) + 3 * (N * K + K * Q)); // If numSc is 0, then we only send 1 set of labels (the training ones), otherwise we send two (training and the paired one) agent.GetComponent <BehaviorParameters>().BrainParameters.VectorObservationSize = (numCameraSets * (numSc > 0 ? 2 : 1)) + (numFt * numSt + numFc * numSc) * numCameraSets * 3; #if UNITY_EDITOR EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene()); #endif }
static public void UpdateComponents() { testingCameras.Clear(); supportCameras.Clear(); GameObject cameraContainer = GameObject.Find("CameraContainer"); GameObject agent = GameObject.Find("Agent"); UnityEngine.Debug.Log("CAMERA CONTAINER: "); UnityEngine.Debug.Log(cameraContainer); int childs = cameraContainer.transform.childCount; for (int i = childs - 1; i >= 0; i--) { DestroyImmediate(cameraContainer.transform.GetChild(i).gameObject); } GameObject info = GameObject.Find("Info"); childs = info.transform.childCount; for (int i = childs - 1; i >= 0; i--) { DestroyImmediate(info.transform.GetChild(i).gameObject); } string infoTxt = "N:" + N.ToString() + "_K:" + K.ToString() + "_Q:" + Q.ToString() + "_SC:" + sizeCanvas.ToString() + "_d:" + nameDataset.ToString(); var infoObj = new GameObject(infoTxt); infoObj.transform.parent = info.transform; GameObject.Find("DebugText").GetComponent <Text>().text = infoTxt; List <CameraSensorComponent> camComp = new List <CameraSensorComponent>(agent.GetComponents <CameraSensorComponent>()); foreach (CameraSensorComponent cam in camComp) { DestroyImmediate(cam); } // UnityEngine.Debug.Log("CIAO"); int totIndex = 0; for (int k = 0; k < K; k++) { GameObject supportCamera = GameObject.Find("SupportCamera"); // remember to take this out from the sensorlist for (int n = 0; n < N; n++) { supportCameras.Add(Instantiate(supportCamera)); supportCameras[totIndex].transform.parent = cameraContainer.transform; supportCameras[totIndex].name = (n + N * k).ToString("D3") + "_SupportCamera"; supportCameras[totIndex].SetActive(false); totIndex += 1; } } int thisIndex = 0; for (int k = 0; k < K; k++) { GameObject testCamera = GameObject.Find("QueryCamera"); // remember to take this out from the sensorlist for (int q = 0; q < Q; q++) { testingCameras.Add(Instantiate(testCamera)); testingCameras[thisIndex].transform.parent = cameraContainer.transform; // we want the test Cameras to be sent at the end, and since it's sent to python in alph, we prefix with an increasing number testingCameras[thisIndex].name = (totIndex).ToString("D3") + "_QueryCamera"; testingCameras[thisIndex].SetActive(false); totIndex += 1; thisIndex += 1; } } //Add Cameras to Agent Assert.IsTrue(supportCameras.Count == N * K); foreach (GameObject testingCam in testingCameras) { CameraSensorComponent cmtmp = agent.AddComponent <CameraSensorComponent>(); cmtmp.Camera = testingCam.GetComponent <Camera>(); cmtmp.SensorName = testingCam.name; cmtmp.Width = sizeCanvas; cmtmp.Height = sizeCanvas; } foreach (GameObject supportCam in supportCameras) // N * K { CameraSensorComponent cmtmp = agent.AddComponent <CameraSensorComponent>(); cmtmp.Camera = supportCam.GetComponent <Camera>(); cmtmp.SensorName = supportCam.name; cmtmp.Width = sizeCanvas; cmtmp.Height = sizeCanvas; } agent.GetComponent <BehaviorParameters>().BrainParameters.VectorObservationSize = N * K + K * Q; }