public void OnMainObjectDetected(RecognizeObject recognizeObject) { if (isControlling) { prevDevice = ""; return; } //Debug.Log("Id: " + recognizeObject.name); currFeatures = client.GetFeaturesById(recognizeObject.name); if (currFeatures == null) { Debug.Log("k co Feature"); btnControll.gameObject.SetActive(false); return; } nameDevice.text = "Device: " + recognizeObject.name; btnControll.localPosition = new Vector3(recognizeObject.x + (float)recognizeObject.width / 2, -(recognizeObject.y + (float)recognizeObject.height / 2), btnControll.localPosition.z); btnControll.gameObject.SetActive(true); if (UIEvent.OnUpdateUI != null) { UIEvent.OnUpdateUI(); } //Debug.Log(recognizeObject.x + " : " + recognizeObject.y +" , "+ recognizeObject.width + " : " + recognizeObject.height); //#if !UNITY_EDITOR // if (recognizeObject.name == AppConstant.SPEAKER && prevDevice != AppConstant.SPEAKER) // client.GetSpeakerVolume(); //#endif prevDevice = recognizeObject.name; }
public void Test0() { RecognizeObject testObj = new RecognizeObject(); testObj.name = "laptop"; menuInteraction.OnMainObjectDetected(testObj); Invoke("Test1", 3); }
public void Test1() { RecognizeObject testObj = new RecognizeObject(); testObj.name = "laptop"; menuInteraction.OnMainObjectDetected(testObj); menuInteraction.OnClickCreateMenuInteraction(); Invoke("UpdateListButton", 1f); }
private void FilterMainBoundBox(RecognizeObject[] recognizeObjects) { if (recognizeObjects == null || recognizeObjects.Length == 0) { return; } RecognizeObject bestObj = recognizeObjects[0]; for (int i = 1; i < recognizeObjects.Length; i++) { if (bestObj.score < recognizeObjects[i].score) { bestObj = recognizeObjects[i]; } } recognizeObjects = new RecognizeObject[1]; recognizeObjects[0] = bestObj; }
public void UpdateBoundBox() { RecognizeInputStruct data = fileController.LoadRecorgnizeInput(); CheckTatgetDelay(); if (timeCheckDelay <= 0) { DisableAllChild(boundBoxContainer); timeCheckDelay = timeDelay; if (data == null || data.recognizeObjects.Length == 0) { if (OnNotFoundObject != null) { OnNotFoundObject(); } } } if (data == null) { imgBoundBox.rectTransform.sizeDelta = Vector2.zero; return; } //Select Main Object if (data.recognizeObjects.Length > 0 && isSelectMainObj) { if (isControlling) { data.recognizeObjects = new RecognizeObject[0]; } else { RecognizeObject bestObj = data.recognizeObjects[0]; for (int i = 1; i < data.recognizeObjects.Length; i++) { if (bestObj.score < data.recognizeObjects[i].score) { bestObj = data.recognizeObjects[i]; } } data.recognizeObjects = new RecognizeObject[1]; data.recognizeObjects[0] = bestObj; if (OnMainObjectDetected != null) { OnMainObjectDetected(data.recognizeObjects[0]); } //Debug.Log(data.recognizeObjects[0].x + ":" + (data.recognizeObjects[0].y)); } } for (int i = 0; i < Mathf.Min(data.recognizeObjects.Length, boundBoxContainer.childCount); i++) { Image itemObj = boundBoxContainer.GetChild(i).GetComponent <Image>(); itemObj.rectTransform.localPosition = new Vector3(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), itemObj.rectTransform.localPosition.z); itemObj.rectTransform.sizeDelta = new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height); //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.rectTransform.sizeDelta= new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height); //add list string objectName = data.recognizeObjects[i].name.ToUpper(); if (!listTargets.ContainsKey(objectName)) { listTargets[objectName] = typeTargetCount; typeTargetCount++; } BoundBoxItem boundBoxItem = itemObj.GetComponent <BoundBoxItem>(); boundBoxItem.lbContent.text = string.Format("{0} {1}%", objectName, (int)(data.recognizeObjects[i].score * 100)); //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.color= colors[listTargets[objectName] % colors.Count]; boundBoxItem.lbDesc.text = data.recognizeObjects[i].description; boundBoxItem.UpdateBoundBoxByAnim(boundBoxAnim, data.recognizeObjects[i].width, data.recognizeObjects[i].height); boundBoxItem.OptimizeDes(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), screenWidth, screenHeight); boundBoxItem.panelDes.alpha = (data.recognizeObjects[i].description != "") ? 1 : 0; itemObj.color = colors[listTargets[objectName] % colors.Count]; itemObj.gameObject.SetActive(true); //show anim des if (prevObj != objectName) { boundBoxItem.GetComponent <Animator>().Play(boundBoxAnim.ToString(), -1, 0f); boundBoxItem.panelDesAnim.Play((boundBoxItem.panelBGDes.localPosition.x <= 0) ? AppConstant.ACTIVE_LEFT_ANIM : AppConstant.ACTIVE_RIGHT_ANIM, -1, 0f); prevObj = objectName; } //Set up for every application SetUpForApplication(boundBoxItem); } for (int i = boundBoxContainer.childCount; i < data.recognizeObjects.Length; i++) { Image itemObj = Instantiate(imgBoundBox, boundBoxContainer); itemObj.rectTransform.localPosition = new Vector3(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), itemObj.rectTransform.localPosition.z); itemObj.rectTransform.sizeDelta = new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height); //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.rectTransform.sizeDelta = new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height); //add list string objectName = data.recognizeObjects[i].name.ToUpper(); if (!listTargets.ContainsKey(objectName)) { listTargets[objectName] = typeTargetCount; typeTargetCount++; } BoundBoxItem boundBoxItem = itemObj.GetComponent <BoundBoxItem>(); boundBoxItem.lbContent.text = string.Format("{0} {1}%", objectName, (int)(data.recognizeObjects[i].score * 100)); //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.color = colors[listTargets[objectName] % colors.Count]; boundBoxItem.lbDesc.text = data.recognizeObjects[i].description; boundBoxItem.UpdateBoundBoxByAnim(boundBoxAnim, data.recognizeObjects[i].width, data.recognizeObjects[i].height); boundBoxItem.OptimizeDes(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), screenWidth, screenHeight); boundBoxItem.panelDes.alpha = (data.recognizeObjects[i].description != "") ? 1 : 0; itemObj.color = colors[listTargets[objectName] % colors.Count]; itemObj.gameObject.SetActive(true); //show anim des if (prevObj != objectName) { boundBoxItem.GetComponent <Animator>().Play(boundBoxAnim.ToString(), -1, 0f); boundBoxItem.panelDesAnim.Play((boundBoxItem.panelBGDes.localPosition.x <= 0) ? AppConstant.ACTIVE_LEFT_ANIM : AppConstant.ACTIVE_RIGHT_ANIM, -1, 0f); prevObj = objectName; } //Set up for every application SetUpForApplication(boundBoxItem); } UpdateNumBoundBoxActive(); isDelay = (data.recognizeObjects.Length > 0 && data.recognizeObjects.Length == numBoundBoxActive); //Debug.Log("Update Success"); }