直播带货源码,附近的人功能是如何实现的
using UnityEngine;
using System.Collections;
using UnityEngine.Video;
using System.Collections.Generic;
public class DisScript : MonoBehaviour
{
[Tooltip ("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")]
public int playerIndex = 0;
// The singleton instance of KinectManager
public static KinectVideoScript instance = null;
//播放器
VideoPlayer _videoPlayer;
void Start ()
{
instance = this;
_videoPlayer = transform.gameObject.GetComponent<VideoPlayer> ();
}
//默认的人与设备之间的距离
float DefaultDistance = 2f;
void Update ()
{
DefaultDistance = zDisMethod ();
VideoCTL (DefaultDistance, _videoPlayer);
}
/// <summary>
/// 返回人们与Kinect设备最近的距离值
/// </summary>
/// <returns>ZDis.</returns>
public float zDisMethod ()
{
KinectManager manager = KinectManager.Instance;
float zDis = 0f;
if (manager && manager.IsInitialized () && manager.IsUserDetected ()) {
List<long> longlong = manager.GetAllUserIds ();
long temp = longlong [0];
if (longlong.Count > 0) {
for (int i = 0; i < longlong.Count - 1; i++) {
if (manager.GetUserPosition (longlong [i]).z > manager.GetUserPosition (longlong [i + 1]).z) {
temp = longlong [i + 1];
} else {
temp = longlong [i];
}
}
Vector3 posUser = manager.GetUserPosition (temp);
zDis = posUser.z;
} else {
zDis = 2f;
}
}
return zDis;
}
/// <summary>
/// 视频控制
/// </summary>
/// <param name="Dis">Dis.</param>
/// <param name="vPlayer">V player.</param>
public void VideoCTL (float Dis, VideoPlayer vPlayer)
{
if ((float)vPlayer.time > 60f) {
print ("可以控制了");
vPlayer.playbackSpeed = Dis - 1f;
} else {
vPlayer.playbackSpeed = 1f;
}
// if (Mathf.Abs ((int)vPlayer.time - (int)(float)vPlayer.clip.length) == 0) {
// vPlayer.frame = (long)vPlayer.frameCount;
// vPlayer.playbackSpeed = 1;
// vPlayer.Play ();
// }
}
}
以上就是 直播带货源码,附近的人功能是如何实现的,更多内容欢迎关注之后的文章
标签:longlong,功能,货源,float,manager,直播,using,public,vPlayer From: https://www.cnblogs.com/yunbaomengnan/p/16707517.html