/* * 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 bestPoseTrackInfoData = ZwnAmLogicSDK.GetBestPoseTrackInfo(); List 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 poseData = ZwnAmLogicSDK.GetBestPoseTrackInfo(); if(poseData.Count>0 && poseData != null) { ZwnAmlogicHelperData.isSomeone = true; } else { ZwnAmlogicHelperData.isSomeone = false; } } private void OnDestroy() { ZwnAmLogicSDK.ReleaseZeePose(); ZwnAmLogicSDK.CloseCamera(); } }