Подергивания на устройствах iOS при использовании плагина Affectiva для Unity

название в основном говорит само за себя, я пытаюсь запустить очень простую игру Unity, которая захватывает 2 эмоции, используя SDK Affectiva для эмоций для Unity. Игра плавно работает даже на недорогих устройствах Android, но не так гладко на устройствах iOS (в настоящее время тестируется на iPhone 6 — iOS 10, 6s — iOS 11, 7). Я прикрепил сценарий ввода детектора и камеры к основной камере в своей игровой сцене, частота дискретизации установлена ​​на 8, целевая ширина — 320, а целевая высота — 240. Но несмотря ни на что, игра не работает гладко. Как только я отключу эти 2 скрипта, игра начнет плавно работать на iOS. Есть предложения по улучшению производительности игры?


person m.umar    schedule 23.09.2017    source источник


Ответы (1)


Существует невыпущенное изменение, улучшающее производительность. Не могли бы вы попробовать это изменение и посмотреть, поможет ли оно:

From 876c21d95eb84759742a4640f9fd30f4c6aa3518 Mon Sep 17 00:00:00 2001
From: Forest Handford <[email protected]>
Date: Mon, 28 Aug 2017 13:21:17 +0200
Subject: [PATCH] SDK-1316: Sofia's performance changes

---
 .../Assets/Affdex/Plugins/Scripts/AndroidNativePlatform.cs       | 2 +-
 UnityPlugin/Assets/Affdex/Plugins/Scripts/Detector.cs            | 1 +
 UnityPlugin/Assets/Affdex/Plugins/Scripts/NativePlatform.cs      | 9 ++++++++-
 UnityPlugin/Assets/Affdex/Plugins/Scripts/OSXNativePlatform.cs   | 2 +-
 .../Assets/Affdex/Plugins/Scripts/WindowsNativePlatform.cs       | 2 +-
 UnityPlugin/Assets/Affdex/Plugins/Scripts/iOSNativePlatform.cs   | 2 +-
 6 files changed, 13 insertions(+), 5 deletions(-)
 mode change 100644 => 100755 UnityPlugin/Assets/Affdex/Plugins/Scripts/AndroidNativePlatform.cs
 mode change 100644 => 100755 UnityPlugin/Assets/Affdex/Plugins/Scripts/Detector.cs
 mode change 100644 => 100755 UnityPlugin/Assets/Affdex/Plugins/Scripts/NativePlatform.cs
 mode change 100644 => 100755 UnityPlugin/Assets/Affdex/Plugins/Scripts/OSXNativePlatform.cs
 mode change 100644 => 100755 UnityPlugin/Assets/Affdex/Plugins/Scripts/WindowsNativePlatform.cs
 mode change 100644 => 100755 UnityPlugin/Assets/Affdex/Plugins/Scripts/iOSNativePlatform.cs

diff --git a/UnityPlugin/Assets/Affdex/Plugins/Scripts/AndroidNativePlatform.cs b/UnityPlugin/Assets/Affdex/Plugins/Scripts/AndroidNativePlatform.cs
old mode 100644
new mode 100755
index 07e9af2..885dfce
--- a/UnityPlugin/Assets/Affdex/Plugins/Scripts/AndroidNativePlatform.cs
+++ b/UnityPlugin/Assets/Affdex/Plugins/Scripts/AndroidNativePlatform.cs
@@ -58,7 +58,7 @@ namespace Affdex

         public override IEnumerator Initialize (Detector detector, int discrete)
         {
-            AndroidNativePlatform.detector = detector;
+            this.detector = detector;

             // assemble the destination path where the data files will go
             affdexDataDir = Path.Combine(Application.persistentDataPath, "affdex-data");
diff --git a/UnityPlugin/Assets/Affdex/Plugins/Scripts/Detector.cs b/UnityPlugin/Assets/Affdex/Plugins/Scripts/Detector.cs
old mode 100644
new mode 100755
index f5f1645..f5b6a41
--- a/UnityPlugin/Assets/Affdex/Plugins/Scripts/Detector.cs
+++ b/UnityPlugin/Assets/Affdex/Plugins/Scripts/Detector.cs
@@ -53,6 +53,7 @@ namespace Affdex
             set
             {
                 listener = value;
+                Debug.Log("Detector listener set");
             }
         }

diff --git a/UnityPlugin/Assets/Affdex/Plugins/Scripts/NativePlatform.cs b/UnityPlugin/Assets/Affdex/Plugins/Scripts/NativePlatform.cs
old mode 100644
new mode 100755
index 610402f..0484f1c
--- a/UnityPlugin/Assets/Affdex/Plugins/Scripts/NativePlatform.cs
+++ b/UnityPlugin/Assets/Affdex/Plugins/Scripts/NativePlatform.cs
@@ -34,9 +34,16 @@ namespace Affdex
         }
     }

+   /// internal static class DetectorHelper: Detector
+  ///  {
+        ///code to be inserted here when I figure it out, something about a public void
+        ///
+
+   /// }
+
     public abstract class NativePlatform : MonoBehaviour
     {
-        protected static Detector detector;
+        protected Detector detector;

         //Free these when platform closes!
         protected GCHandle h1, h2, h3; //handles to unmanaged function pointer callbacks
diff --git a/UnityPlugin/Assets/Affdex/Plugins/Scripts/OSXNativePlatform.cs b/UnityPlugin/Assets/Affdex/Plugins/Scripts/OSXNativePlatform.cs
old mode 100644
new mode 100755
index 299dbd1..5e72c44
--- a/UnityPlugin/Assets/Affdex/Plugins/Scripts/OSXNativePlatform.cs
+++ b/UnityPlugin/Assets/Affdex/Plugins/Scripts/OSXNativePlatform.cs
@@ -56,7 +56,7 @@ namespace Affdex

         public override IEnumerator Initialize(Detector detector, int discrete)
         {
-            OSXNativePlatform.detector = detector;
+            this.detector = detector;
             String adP = Application.streamingAssetsPath;
             String affdexDataPath = Path.Combine(adP, "affdex-data-osx"); 
             int status = 0;
diff --git a/UnityPlugin/Assets/Affdex/Plugins/Scripts/WindowsNativePlatform.cs b/UnityPlugin/Assets/Affdex/Plugins/Scripts/WindowsNativePlatform.cs
old mode 100644
new mode 100755
index 47681df..f91f319
--- a/UnityPlugin/Assets/Affdex/Plugins/Scripts/WindowsNativePlatform.cs
+++ b/UnityPlugin/Assets/Affdex/Plugins/Scripts/WindowsNativePlatform.cs
@@ -57,7 +57,7 @@ namespace Affdex

         public override IEnumerator Initialize(Detector detector, int discrete)
         {
-            WindowsNativePlatform.detector = detector;
+            this.detector = detector;

             //load our lib!
             string affdexDataPath = Application.streamingAssetsPath + "/affdex-data-3";
diff --git a/UnityPlugin/Assets/Affdex/Plugins/Scripts/iOSNativePlatform.cs b/UnityPlugin/Assets/Affdex/Plugins/Scripts/iOSNativePlatform.cs
old mode 100644
new mode 100755
index 8a61512..d37a631
--- a/UnityPlugin/Assets/Affdex/Plugins/Scripts/iOSNativePlatform.cs
+++ b/UnityPlugin/Assets/Affdex/Plugins/Scripts/iOSNativePlatform.cs
@@ -88,7 +88,7 @@ namespace Affdex

         public override IEnumerator Initialize(Detector detector, int discrete)
         {
-            iOSNativePlatform.detector = detector;
+            this.detector = detector;
             String adP = Application.streamingAssetsPath;
             String affdexDataPath = Path.Combine(adP, "affdex-data-osx");

-- 
2.7.4.1.g5468f9e
person Forest J. Handford    schedule 26.09.2017
comment
Привет, Лес, это немного улучшило мою игру, хотя игра по-прежнему не так плавна на устройствах iOS, как на устройствах Android. Спасибо за ответ, но есть ли еще какие-нибудь предложения, которые вы можете мне дать? Кроме того, не могли бы вы сказать мне, как называется метод, который будет вносить эти изменения одновременно во все мои файлы вместе, должен быть какой-то способ в формате, который вы предоставили. Просто небольшой толчок к тому, что я ищу, было бы здорово. Спасибо :) - person m.umar; 27.09.2017
comment
Как салам алейкум Мухаммад, вот статья SO, в которой рассказывается о применении различий: stackoverflow. com/questions/12320863/ Основной способ уменьшить использование процессора плагином Affectiva — уменьшить частоту кадров и разрешение. Вы можете попробовать 5 вместо 8, но я бы не опускался ниже. Я спрошу своих коллег, могут ли они придумать что-нибудь еще. Спасибо за обновления. Нам нужно срочно выпустить этот патч! - person Forest J. Handford; 29.09.2017
comment
Валайкумасслам. Я уже пытался уменьшить частоту кадров, и разрешение не имеет большого значения. Я постараюсь и дальше оптимизировать игру везде, где смогу. Спасибо за советы по SDK и ссылку на применение diffs, всегда есть что-то новое для изучения :) - person m.umar; 01.10.2017
comment
Отлично, я полагаю, что один из моих коллег также свяжется с вами, чтобы узнать, сможет ли он воспроизвести обнаруженную вами проблему. Если вы можете дать ему пример кода, это будет очень полезно. شکریہ - person Forest J. Handford; 02.10.2017