| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- /*
- * File Name: zwn_common_data
- * Author: Guan B
- * Version: 1.0.0
- * Data: 2022.03.14
- * Des: 直接取SDK相应的点(跳转场景不删除)
- * Other: Zeewain
- */
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using System.Threading.Tasks;
- public class zwn_common_data : MonoBehaviour
- {
- public static zwn_common_data single;
- private AndroidJavaClass javaClass;
- //zeepose17个点原始点
- /* 0:鼻子1:左眼2:右眼3:左耳4:右耳5:左肩6:右肩7:左肘
- 8:右肘9:左腕10:右腕11:左臀12:右臀
- 13:左膝14:右膝15:左脚踝16:右脚踝*/
- [HideInInspector]
- public Vector3[] zwn_original_pose;
- //zeepose17个点转换后的点
- [HideInInspector]
- public Vector3[] zwn_transform_pose;
- //zeepose29个点原始点
- [HideInInspector]
- public Vector3[] zwn_original_pose_twentynine;
- //zeepose29个点转换后的点
- [HideInInspector]
- public Vector3[] zwn_transform_pose_twentynine;
- void Awake()
- {
- single = this;
- javaClass = new AndroidJavaClass("com.zee.unity.UnityHelper");
- ZwnAmLogicSDK.InitAndroidJavaClass(javaClass);
- }
- void Start()
- {
- InitZeePose();
- }
-
- void InitZeePose()
- {
- if (ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN == 17)
- {
- zwn_original_pose = new Vector3[17];
- zwn_transform_pose = new Vector3[17];
- }
- else if (ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN == 29)
- {
- zwn_original_pose = new Vector3[17];
- zwn_transform_pose = new Vector3[17];
- zwn_original_pose_twentynine = new Vector3[29];
- zwn_transform_pose_twentynine = new Vector3[29];
- }
- }
- 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.SetTextureViewAlpha(1f); // 默认是黑屏 这个要打开 有画面有点 打开 不要画面 只要点 关闭
- ZwnAmLogicSDK.SetPoseTrackFrameThreshold(30);
- ZwnAmLogicSDK.SetPoseSmoothnessStatus(true);
- }
- }
- if (ZwnAmlogicHelperData.initPersonPoseNum == 0)
- {
- ZwnAmlogicHelperData.isOpenCamera = false;
- GetZeePose();
- IsSomeone();
- }
- }
- void GetZeePose()
- {
- List<Vector3> bestPoseTrackInfoData = ZwnAmLogicSDK.GetBestPoseTrackInfo();
- List<Vector3> bestOriginalPoseTrackInfoData = ZwnAmLogicSDK.GetOriginalBestPoseTrackInfo();
- if(bestPoseTrackInfoData.Count>0 && bestPoseTrackInfoData != null)
- {
- if (ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN == 17)
- {
- for (int i = 0; i < zwn_transform_pose.Length; i++)
- {
- zwn_transform_pose[i] = new Vector3(bestPoseTrackInfoData[i].x, bestPoseTrackInfoData[i].y, 0);
- }
- }
- else if(ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN == 29)
- {
- for (int i = 0; i < zwn_transform_pose_twentynine.Length; i++)
- {
- zwn_transform_pose_twentynine[i] = new Vector3(bestPoseTrackInfoData[i].x, bestPoseTrackInfoData[i].y, 0);
- }
- for (int i = 0; i < 11; i++)
- {
- zwn_transform_pose[i] = new Vector3(bestPoseTrackInfoData[i].x, bestPoseTrackInfoData[i].y, 0);
- }
- zwn_transform_pose[11] = new Vector3(bestPoseTrackInfoData[17].x, bestPoseTrackInfoData[17].y, 0);
- zwn_transform_pose[12] = new Vector3(bestPoseTrackInfoData[18].x, bestPoseTrackInfoData[18].y, 0);
- zwn_transform_pose[13] = new Vector3(bestPoseTrackInfoData[19].x, bestPoseTrackInfoData[19].y, 0);
- zwn_transform_pose[14] = new Vector3(bestPoseTrackInfoData[20].x, bestPoseTrackInfoData[20].y, 0);
- zwn_transform_pose[15] = new Vector3(bestPoseTrackInfoData[21].x, bestPoseTrackInfoData[21].y, 0);
- zwn_transform_pose[16] = new Vector3(bestPoseTrackInfoData[22].x, bestPoseTrackInfoData[22].y, 0);
- }
- }
- else
- {
- for (int i = 0; i < zwn_transform_pose.Length; i++)
- {
- zwn_transform_pose[i] = new Vector3(-1920, -1080, 0);
- }
- for (int i = 0; i < zwn_transform_pose_twentynine.Length; i++)
- {
- zwn_transform_pose_twentynine[i] = new Vector3(-1920, -1080, 0);
- }
- }
- if (bestOriginalPoseTrackInfoData.Count > 0 && bestOriginalPoseTrackInfoData != null)
- {
- if (ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN == 17)
- {
- for (int i = 0; i < zwn_original_pose.Length; i++)
- {
- zwn_original_pose[i] = new Vector3(bestOriginalPoseTrackInfoData[i].x, bestOriginalPoseTrackInfoData[i].y, 0);
- }
- }
- else if (ZwnAmlogicHelperData.ZWN_POSE_KEY_POINTS_DIM_LEN == 29)
- {
- for (int i = 0; i < zwn_original_pose_twentynine.Length; i++)
- {
- zwn_original_pose_twentynine[i] = new Vector3(bestOriginalPoseTrackInfoData[i].x, bestOriginalPoseTrackInfoData[i].y, 0);
- }
- for (int i = 0; i < 11; i++)
- {
- zwn_original_pose[i] = new Vector3(bestOriginalPoseTrackInfoData[i].x, bestOriginalPoseTrackInfoData[i].y, 0);
- }
- zwn_original_pose[11] = new Vector3(bestOriginalPoseTrackInfoData[17].x, bestOriginalPoseTrackInfoData[17].y, 0);
- zwn_original_pose[12] = new Vector3(bestOriginalPoseTrackInfoData[18].x, bestOriginalPoseTrackInfoData[18].y, 0);
- zwn_original_pose[13] = new Vector3(bestOriginalPoseTrackInfoData[19].x, bestOriginalPoseTrackInfoData[19].y, 0);
- zwn_original_pose[14] = new Vector3(bestOriginalPoseTrackInfoData[20].x, bestOriginalPoseTrackInfoData[20].y, 0);
- zwn_original_pose[15] = new Vector3(bestOriginalPoseTrackInfoData[21].x, bestOriginalPoseTrackInfoData[21].y, 0);
- zwn_original_pose[16] = new Vector3(bestOriginalPoseTrackInfoData[22].x, bestOriginalPoseTrackInfoData[22].y, 0);
- }
- }
- else
- {
- for (int i = 0; i < zwn_original_pose.Length; i++)
- {
- zwn_original_pose[i] = new Vector3(-1920, -1080, 0);
- }
- for (int i = 0; i < zwn_original_pose_twentynine.Length; i++)
- {
- zwn_original_pose_twentynine[i] = new Vector3(-1920, -1080, 0);
- }
- }
- }
- void IsSomeone()
- {
- List<Vector3> poseData = ZwnAmLogicSDK.GetBestPoseTrackInfo();
- if(poseData.Count>0 && poseData != null)
- {
- ZwnAmlogicHelperData.isSomeone = true;
- }
- else
- {
- ZwnAmlogicHelperData.isSomeone = false;
- }
- }
- private void OnDestroy()
- {
- ZwnAmLogicSDK.ReleaseZeePose();
- ZwnAmLogicSDK.CloseCamera();
- }
- }
|