| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- /*
- * File Name: ZwnAmlogicPose
- * Author: Guan B
- * Version: 1.0.0
- * Data: 2022.04.08
- * Des: 调用SDK接口Demo
- * Other: Zeewain
- */
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using System.Diagnostics;
- public class ZwnAmlogicPose : MonoBehaviour
- {
- private AndroidJavaClass javaClass;
- List<GameObject> showBestChangePoseList = new List<GameObject>();
- List<GameObject> showOriginalBestChangePoseList = new List<GameObject>();
- List<GameObject> showRectPoseList = new List<GameObject>();
- public GameObject showPrefabs;
- public Transform showPointParent;
- public GameObject showRectfabs;
- private int poseCount = ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN;
- List<Vector3> poseBestData = new List<Vector3>();
- List<Vector3> poseOriginalBestData = new List<Vector3>();
- Vector2 poseWeightHeightData;
- Vector3 poseRectPointData;
- Vector3 default_vec = new Vector3(-Screen.width, -Screen.height, 0);
- private void Start()
- {
- javaClass = new AndroidJavaClass("com.zee.unity.UnityHelper");
- ZwnAmLogicSDK.InitAndroidJavaClass(javaClass);
- }
- private void Update()
- {
- if (ZwnAmlogicHelperData.isCanOpenCamera)
- {
- ZwnAmlogicHelperData.isCanOpenCamera = false;
- ZwnAmLogicSDK.OpenCamera(ZwnAmlogicHelperData.cameraId);
- }
- if (ZwnAmlogicHelperData.isOpenCamera)
- {
- ZwnAmlogicHelperData.initPersonPoseNum = ZwnAmLogicSDK.InitPersonPose(ZwnAmlogicHelperData.landmarkType, ZwnAmlogicHelperData.trackNum, ZwnAmlogicHelperData.deviceType, ZwnAmlogicHelperData.isuseBestPose);
- if (ZwnAmlogicHelperData.initPersonPoseNum == 0)
- {
- ZwnAmLogicSDK.SetUseBestPose(true);
- ZwnAmLogicSDK.SetPoseTrackFrameThreshold(30);
- ZwnAmLogicSDK.SetPoseSmoothnessStatus(true);
- }
- }
- if (ZwnAmlogicHelperData.initPersonPoseNum == 0)
- {
- ZwnAmlogicHelperData.isOpenCamera = false;
- GetZeePoseBestPointData();
- GetZeePoseBestRectData();
- //GetOriginalZeePoseBestPointData();
- }
- ShowBestChangePoint();
- ShowBestRectPint();
- //ShowOriginalBestPoint();
- }
- /// <summary>
- /// 获取转换后BestPose方法
- /// </summary>
- void GetZeePoseBestPointData()
- {
- poseBestData = ZwnAmLogicSDK.GetBestPoseTrackInfo();
- }
- /// <summary>
- /// 获取原始点BestPose方法
- /// </summary>
- void GetOriginalZeePoseBestPointData()
- {
- poseOriginalBestData = ZwnAmLogicSDK.GetOriginalBestPoseTrackInfo();
- }
- /// <summary>
- ///获取转换后BestPose人像框的位置和大小
- /// </summary>
- void GetZeePoseBestRectData()
- {
- poseRectPointData = ZwnAmLogicSDK.GetBestPoseRectInfo();
- poseWeightHeightData = ZwnAmLogicSDK.GetBestPoseRectWeightHeightInfo();
- }
- /// <summary>
- /// 显示Best方法转换后点的位置
- /// </summary>
- public void ShowBestChangePoint()
- {
- if (poseBestData.Count > 0 && poseBestData != null)
- {
- for (int i = 0; i < poseBestData.Count; i++)
- {
- if (i >= showBestChangePoseList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showBestChangePoseList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showBestChangePoseList[i].transform.localPosition = poseBestData[i];
- }
- }
- else
- {
- if (showBestChangePoseList.Count > 0)
- {
- for (int i = 0; i < showBestChangePoseList.Count; i++)
- {
- showBestChangePoseList[i].transform.localPosition = default_vec;
- }
- }
- }
-
- }
- /// <summary>
- /// 显示Best方法原始点的位置
- /// </summary>
- public void ShowOriginalBestPoint()
- {
- if (poseOriginalBestData.Count > 0 && poseOriginalBestData != null)
- {
- for (int i = 0; i < poseOriginalBestData.Count; i++)
- {
- if (i >= showOriginalBestChangePoseList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showOriginalBestChangePoseList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showOriginalBestChangePoseList[i].transform.localPosition = poseOriginalBestData[i];
- }
- }
- else
- {
- if (showOriginalBestChangePoseList.Count > 0)
- {
- for (int i = 0; i < showOriginalBestChangePoseList.Count; i++)
- {
- showOriginalBestChangePoseList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- /// <summary>
- ///显示Best的人像框的位置和大小
- /// </summary>
- public void ShowBestRectPint()
- {
- for (int i = 0; i < 1; i++)
- {
- if (i >= showRectPoseList.Count)
- {
- GameObject go = Instantiate(showRectfabs);
- showRectPoseList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showRectPoseList[i].transform.localPosition = poseRectPointData;
- showRectPoseList[i].GetComponent<RectTransform>().sizeDelta = poseWeightHeightData;
- }
- }
- private void OnDestroy()
- {
- ZwnAmLogicSDK.ReleaseZeePose();
- ZwnAmLogicSDK.CloseCamera();
- }
- }
|