| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /*
- * File Name: ZwnAmlogicDoublePose
- * Author: Guan B
- * Version: 1.0.0
- * Data: 2022.04.08
- * Des: 调用SDK接口Demo(pose 多人模块)
- * Other: Zeewain
- */
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using System.Diagnostics;
- public class ZwnAmlogicDoublePose : MonoBehaviour
- {
- private AndroidJavaClass javaClass;
- //保存第一个转换后的
- List<GameObject> showChangePoseList = new List<GameObject>();
- List<GameObject> showChangePoseListTwo = new List<GameObject>();
- public GameObject showPrefabs;
- public Transform showPointParent;
- public GameObject showRectfabs;
- private int poseCount = ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN;
- Dictionary<int, Vector3[]> poseTwoPeopleData = new Dictionary<int, Vector3[]>();
-
- Vector3 default_vec = new Vector3(-Screen.width, -Screen.height, 0);
- int nMaxCount = 2;
- 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(false);
- ZwnAmLogicSDK.SetPoseTrackFrameThreshold(30);
- ZwnAmLogicSDK.SetTwoPersonTrackInfo(1, 2);
- }
- }
- if (ZwnAmlogicHelperData.initPersonPoseNum == 0)
- {
- ZwnAmlogicHelperData.isOpenCamera = false;
- GetTwoPosePointArray();
- }
- ShowChangePosePoint();
- }
- /// <summary>
- /// 获取转换后的多个pose数据
- /// </summary>
- void GetTwoPosePointArray()
- {
- poseTwoPeopleData = ZwnAmLogicSDK.GetTwoPersonTrackInfo();
- }
- /// <summary>
- /// 显示转换后的多个pose数据(显示2个,最多显示10个)
- /// </summary>
- public void ShowChangePosePoint()
- {
- if (poseTwoPeopleData.Count > 0 && poseTwoPeopleData != null)
- {
- if (poseTwoPeopleData.Count == 1)
- {
- if (showChangePoseListTwo.Count > 0)
- {
- for (int i = 0; i < showChangePoseListTwo.Count; i++)
- {
- showChangePoseListTwo[i].transform.localPosition = default_vec;
- }
- }
- for (int i = 0; i < poseCount; i++)
- {
- if (i >= showChangePoseList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showChangePoseList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showChangePoseList[i].transform.localPosition = poseTwoPeopleData[0][i];
- }
- }
- else if(poseTwoPeopleData.Count == 2)
- {
- for (int i = 0; i < poseCount; i++)
- {
- if (i >= showChangePoseList.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showChangePoseList.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showChangePoseList[i].transform.localPosition = poseTwoPeopleData[0][i];
- }
- for (int i = 0; i < poseCount; i++)
- {
- if (i >= showChangePoseListTwo.Count)
- {
- GameObject go = Instantiate(showPrefabs);
- showChangePoseListTwo.Add(go);
- go.transform.SetParent(showPointParent);
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- showChangePoseListTwo[i].transform.localPosition = poseTwoPeopleData[1][i];
- }
- }
- }
- else
- {
- if (showChangePoseList.Count > 0)
- {
- for (int i = 0; i < showChangePoseList.Count; i++)
- {
- showChangePoseList[i].transform.localPosition = default_vec;
- }
- }
- if (showChangePoseListTwo.Count > 0)
- {
- for (int i = 0; i < showChangePoseListTwo.Count; i++)
- {
- showChangePoseListTwo[i].transform.localPosition = default_vec;
- }
- }
- }
- }
- private void OnDestroy()
- {
- ZwnAmLogicSDK.ReleaseZeePose();
- ZwnAmLogicSDK.CloseCamera();
- }
- }
|