| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430 |
- /*
- * File Name: ZwnAmlogicHolistic
- * 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 ZwnAmlogicHolistic : MonoBehaviour
- {
- private AndroidJavaClass javaClass;
- List<GameObject> showHolisticChangePoseList = new List<GameObject>();
- List<GameObject> showHolisticChangeLeftHandList = new List<GameObject>();
- List<GameObject> showHolisticChangeRightHnadList = new List<GameObject>();
- List<GameObject> showHolisticChangeFaceList = new List<GameObject>();
- List<GameObject> showHolisticOriginalPoseList = new List<GameObject>();
- List<GameObject> showHolisticOriginalLeftHandList = new List<GameObject>();
- List<GameObject> showHolisticOriginalRightHnadList = new List<GameObject>();
- List<GameObject> showHolisticOriginalFaceList = new List<GameObject>();
- public GameObject showPrefabs;
- public Transform showPointParent;
- List<Vector3> holisticPoseData = new List<Vector3>();
- List<Vector3> holisticLeftHandData = new List<Vector3>();
- List<Vector3> holisticRightHandData = new List<Vector3>();
- List<Vector3> holisticFaceData = new List<Vector3>();
- List<Vector3> holisticOriginalPoseData = new List<Vector3>();
- List<Vector3> holisticOriginalLeftHandData = new List<Vector3>();
- List<Vector3> holisticOriginalRightHandData = new List<Vector3>();
- List<Vector3> holisticOriginalFaceData = new List<Vector3>();
- 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.InitHolistic(ZwnAmlogicHelperData.landmarkType, ZwnAmlogicHelperData.trackNum, ZwnAmlogicHelperData.deviceType);
- if (ZwnAmlogicHelperData.initPersonPoseNum == 0)
- {
- ZwnAmLogicSDK.SetHolisticTrackFrameThreshold(30);
- ZwnAmLogicSDK.SetHolisticBodyLandmarkStatus(true);
- ZwnAmLogicSDK.SetHolisticFaceLandmarkStatus(true);
- ZwnAmLogicSDK.SetHolisticHandLandmarkNum(2);
- ZwnAmLogicSDK.SetHolisticSmoothnessStatus(true);
- }
- }
- if (ZwnAmlogicHelperData.initPersonPoseNum == 0)
- {
- ZwnAmlogicHelperData.isOpenCamera = false;
- GetHolisticPoseData();
- GetHolisticLeftHandData();
- GetHolisticRightHandData();
- GetHolisticFaceData();
- //GetOriginalHolisticPoseData();
- //GetOriginalHolisticLeftHandData();
- //GetOriginalHolisticRightHandData();
- //GetOriginalHolisticFaceData();
- }
- ShowHolisticChangePosePoint();
- ShowHolisticChangeLeftHandPoint();
- ShowHolisticChangeRightHandPoint();
- ShowHolisticChangeFacePoint();
- //ShowHolisticOriginalPosePoint();
- //ShowHolisticOriginalLeftHandPoint();
- //ShowHolisticOriginalRightHandPoint();
- //ShowHolisticOriginalFacePoint();
- }
- /// <summary>
- /// 获取转换后Holistic身体点
- /// </summary>
- void GetHolisticPoseData()
- {
- holisticPoseData = ZwnAmLogicSDK.GetHolisticPoseInfo();
- }
- /// <summary>
- /// 获取转换后Holistic左手点
- /// </summary>
- void GetHolisticLeftHandData()
- {
- holisticLeftHandData = ZwnAmLogicSDK.GetHolisticLeftHandInfo();
- }
- /// <summary>
- /// 获取转换后Holistic右手点
- /// </summary>
- void GetHolisticRightHandData()
- {
- holisticRightHandData = ZwnAmLogicSDK.GetHolisticRightHandInfo();
- }
- /// <summary>
- ///获取转换后脸部点
- /// </summary>
- void GetHolisticFaceData()
- {
- holisticFaceData = ZwnAmLogicSDK.GetHolisticFaceInfo();
- }
- /// <summary>
- /// 获取原始Holistic身体点
- /// </summary>
- void GetOriginalHolisticPoseData()
- {
- holisticOriginalPoseData = ZwnAmLogicSDK.GetOriginalHolisticPoseInfo();
- }
- /// <summary>
- /// 获取原始Holistic左手点
- /// </summary>
- void GetOriginalHolisticLeftHandData()
- {
- holisticOriginalLeftHandData = ZwnAmLogicSDK.GetOriginalHolisticLeftHandInfo();
- }
- /// <summary>
- /// 获取原始Holistic右手点
- /// </summary>
- void GetOriginalHolisticRightHandData()
- {
- holisticOriginalRightHandData = ZwnAmLogicSDK.GetOriginalHolisticRightHandInfo();
- }
- /// <summary>
- ///获取原始脸部点
- /// </summary>
- void GetOriginalHolisticFaceData()
- {
- holisticOriginalFaceData = ZwnAmLogicSDK.GetOriginalHolisticFaceInfo();
- }
- /// <summary>
- /// 显示Holistic的身体点转换后点的位置
- /// </summary>
- public void ShowHolisticChangePosePoint()
- {
- if (holisticPoseData.Count > 0&& holisticPoseData != null)
- {
- for (int i = 0; i < holisticPoseData.Count; i++)
- {
- if (i >= showHolisticChangePoseList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticChangePoseList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticChangePoseList[i].transform.localPosition = holisticPoseData[i];
- }
- }
- else
- {
- if (showHolisticChangePoseList.Count > 0)
- {
- for (int i = 0; i < showHolisticChangePoseList.Count; i++)
- {
- showHolisticChangePoseList[i].transform.localPosition = default_vec;
- }
- }
- }
-
- }
- /// <summary>
- /// 显示Holistic的左手转换后点的位置
- /// </summary>
- public void ShowHolisticChangeLeftHandPoint()
- {
- if (holisticLeftHandData.Count > 0 && holisticLeftHandData != null)
- {
- for (int i = 0; i < holisticLeftHandData.Count; i++)
- {
- if (i >= showHolisticChangeLeftHandList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticChangeLeftHandList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticChangeLeftHandList[i].transform.localPosition = holisticLeftHandData[i];
- }
- }
- else
- {
- if (showHolisticChangeLeftHandList.Count > 0)
- {
- for (int i = 0; i < showHolisticChangeLeftHandList.Count; i++)
- {
- showHolisticChangeLeftHandList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- /// <summary>
- /// 显示Holistic的右手转换后点的位置
- /// </summary>
- public void ShowHolisticChangeRightHandPoint()
- {
- if (holisticRightHandData.Count > 0 && holisticRightHandData != null)
- {
- for (int i = 0; i < holisticRightHandData.Count; i++)
- {
- if (i >= showHolisticChangeRightHnadList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticChangeRightHnadList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticChangeRightHnadList[i].transform.localPosition = holisticRightHandData[i];
- }
- }
- else
- {
- if (showHolisticChangeRightHnadList.Count > 0)
- {
- for (int i = 0; i < showHolisticChangeRightHnadList.Count; i++)
- {
- showHolisticChangeRightHnadList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- /// <summary>
- /// 显示Holistic的右手转换后点的位置
- /// </summary>
- public void ShowHolisticChangeFacePoint()
- {
- if (holisticFaceData.Count > 0 && holisticFaceData != null)
- {
- for (int i = 0; i < holisticFaceData.Count; i++)
- {
- if (i >= showHolisticChangeFaceList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticChangeFaceList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticChangeFaceList[i].transform.localPosition = holisticFaceData[i];
- }
- }
- else
- {
- if (showHolisticChangeFaceList.Count > 0)
- {
- for (int i = 0; i < showHolisticChangeFaceList.Count; i++)
- {
- showHolisticChangeFaceList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- /// <summary>
- /// 显示Holistic的身体点原始点的位置
- /// </summary>
- public void ShowHolisticOriginalPosePoint()
- {
- if (holisticOriginalPoseData.Count > 0 && holisticOriginalPoseData != null)
- {
- for (int i = 0; i < holisticOriginalPoseData.Count; i++)
- {
- if (i >= showHolisticOriginalPoseList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticOriginalPoseList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticOriginalPoseList[i].transform.localPosition = holisticOriginalPoseData[i];
- }
- }
- else
- {
- if (showHolisticOriginalPoseList.Count > 0)
- {
- for (int i = 0; i < showHolisticOriginalPoseList.Count; i++)
- {
- showHolisticOriginalPoseList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- /// <summary>
- /// 显示Holistic的左手原始点的位置
- /// </summary>
- public void ShowHolisticOriginalLeftHandPoint()
- {
- if (holisticOriginalLeftHandData.Count > 0 && holisticOriginalLeftHandData != null)
- {
- for (int i = 0; i < holisticOriginalLeftHandData.Count; i++)
- {
- if (i >= showHolisticOriginalLeftHandList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticOriginalLeftHandList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticOriginalLeftHandList[i].transform.localPosition = holisticOriginalLeftHandData[i];
- }
- }
- else
- {
- if (showHolisticOriginalLeftHandList.Count > 0)
- {
- for (int i = 0; i < showHolisticOriginalLeftHandList.Count; i++)
- {
- showHolisticOriginalLeftHandList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- /// <summary>
- /// 显示Holistic的右手转换后点的位置
- /// </summary>
- public void ShowHolisticOriginalRightHandPoint()
- {
- if (holisticOriginalRightHandData.Count > 0 && holisticOriginalRightHandData != null)
- {
- for (int i = 0; i < holisticOriginalRightHandData.Count; i++)
- {
- if (i >= showHolisticOriginalRightHnadList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticOriginalRightHnadList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticOriginalRightHnadList[i].transform.localPosition = holisticOriginalRightHandData[i];
- }
- }
- else
- {
- if (showHolisticOriginalRightHnadList.Count > 0)
- {
- for (int i = 0; i < showHolisticOriginalRightHnadList.Count; i++)
- {
- showHolisticOriginalRightHnadList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- /// <summary>
- /// 显示Holistic的右手转换后点的位置
- /// </summary>
- public void ShowHolisticOriginalFacePoint()
- {
- if (holisticOriginalFaceData.Count > 0 && holisticOriginalFaceData != null)
- {
- for (int i = 0; i < holisticOriginalFaceData.Count; i++)
- {
- if (i >= showHolisticOriginalFaceList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showHolisticOriginalFaceList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showHolisticOriginalFaceList[i].transform.localPosition = holisticOriginalFaceData[i];
- }
- }
- else
- {
- if (showHolisticOriginalFaceList.Count > 0)
- {
- for (int i = 0; i < showHolisticOriginalFaceList.Count; i++)
- {
- showHolisticOriginalFaceList[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- private void OnDestroy()
- {
- ZwnAmLogicSDK.ReleaseZeePose();
- ZwnAmLogicSDK.CloseCamera();
- }
- }
|