private void EmitEventNewBody(BodyGameObject newBody) { foreach (GameObject g in bodyEventListeners) { g.SendMessage("Kinect_BodyFound", newBody, SendMessageOptions.RequireReceiver); } }
void Kinect_BodyFound(object args) { //Found player, add parts to dictionary BodyGameObject bodyFound = (BodyGameObject)args; bodies.Add(bodyFound); }
void Kinect_BodyFound(object args) { BodyGameObject bodyFound = (BodyGameObject)args; bodies.Add(bodyFound); Debug.Log("Body found: " + bodyFound.ID); Player p = Instantiate(playerPrefab); players.Add(p); p.ID = bodyFound.ID; p.body = bodyFound; }
void Kinect_BodyFound(object args) { BodyGameObject bodyFound = (BodyGameObject)args; bodies.Add(bodyFound); }
void Update() { if (BodySourceManager == null) { return; } _BodyManager = BodySourceManager.GetComponent <BodySourceManager>(); if (_BodyManager == null) { return; } Kinect.Body[] data = _BodyManager.GetData(); if (data == null) { return; } List <ulong> trackedIds = new List <ulong>(); foreach (var body in data) { if (body == null) { continue; } if (body.IsTracked) { trackedIds.Add(body.TrackingId); } } List <ulong> knownIds = new List <ulong>(_Bodies.Keys); // First delete untracked bodies foreach (ulong trackingId in knownIds) { if (!trackedIds.Contains(trackingId)) { //body lost Destroy(_Bodies[trackingId]); _Bodies.Remove(trackingId); bodiesGameObjects.Remove(trackingId); EmitEventBodyLost(trackingId); } } foreach (var body in data) { if (body == null) { continue; } if (body.IsTracked) { if (!_Bodies.ContainsKey(body.TrackingId)) { //new body found GameObject parentBody = CreateBodyObject(body.TrackingId); _Bodies[body.TrackingId] = parentBody; BodyGameObject gameBodyObject = new BodyGameObject(parentBody, body.TrackingId); bodiesGameObjects.Add(gameBodyObject.ID, gameBodyObject); EmitEventNewBody(gameBodyObject); } RefreshBodyObject(body, _Bodies[body.TrackingId]); } } }
public BodyGameObject[] GetBodies() { BodyGameObject[] ret = new BodyGameObject[_Bodies.Values.Count]; bodiesGameObjects.Values.CopyTo(ret, 0); return(ret); }