Beispiel #1
0
        public int[] GetCurrentFeedback(PositionType pos)
        {
            HapticApi.status status;
            HapticApi.TryGetResponseForPosition(pos, out status);

            return(status.values);
        }
Beispiel #2
0
        void Update()
        {
            if (!visualizeFeedback)
            {
                return;
            }

            if (!BhapticsUtils.IsPlayerInstalled())
            {
                return;
            }

            if (Application.platform == RuntimePlatform.Android)
            {
                if (!Monitor.TryEnter(_changedFeedback))
                {
                    Debug.Log("failed to enter");
                    return;
                }
                try
                {
                    foreach (var feedback in _changedFeedback)
                    {
                        foreach (var vis in visualFeedback)
                        {
                            if (vis.Position == feedback.Position)
                            {
                                vis.UpdateFeedback(feedback);
                            }
                        }
                    }
                    _changedFeedback.Clear();
                }
                finally
                {
                    Monitor.Exit(_changedFeedback);
                }
            }
            else
            {
                foreach (var vis in visualFeedback)
                {
                    HapticApi.status status;
                    HapticApi.TryGetResponseForPosition(vis.Position, out status);

                    byte[] result = new byte[20];
                    for (int i = 0; i < result.Length; i++)
                    {
                        result[i] = (byte)status.values[i];
                    }

                    HapticFeedback feedback = new HapticFeedback(vis.Position, result);
                    vis.UpdateFeedback(feedback);
                }
            }
        }