diff --git a/Assets/Common/Interfaces/InterfacesScripts.asmdef b/Assets/Common/Interfaces/InterfacesScripts.asmdef
index c6d0301..7d170b5 100644
--- a/Assets/Common/Interfaces/InterfacesScripts.asmdef
+++ b/Assets/Common/Interfaces/InterfacesScripts.asmdef
@@ -2,7 +2,8 @@
"name": "InterfacesScripts",
"rootNamespace": "",
"references": [
- "GUID:5c2b5ba89f9e74e418232e154bc5cc7a"
+ "GUID:5c2b5ba89f9e74e418232e154bc5cc7a",
+ "GUID:d0b6b39a21908f94fbbd9f2c196a9725"
],
"includePlatforms": [],
"excludePlatforms": [],
diff --git a/Assets/Common/Interfaces/Theme.cs b/Assets/Common/Interfaces/Theme.cs
index 94d7e19..3fa31b5 100644
--- a/Assets/Common/Interfaces/Theme.cs
+++ b/Assets/Common/Interfaces/Theme.cs
@@ -28,6 +28,11 @@ public class Theme : ScriptableObject
///
public NNModel model;
+ ///
+ /// The index of the model you want to use
+ ///
+ public ModelIndex modelIndex;
+
///
/// List of all learnable words/letters
///
diff --git a/Assets/Common/ScriptableObjects/AnimalsTheme.asset b/Assets/Common/ScriptableObjects/AnimalsTheme.asset
index a7817e0..f2e7a3b 100644
--- a/Assets/Common/ScriptableObjects/AnimalsTheme.asset
+++ b/Assets/Common/ScriptableObjects/AnimalsTheme.asset
@@ -16,6 +16,7 @@ MonoBehaviour:
description: Van vis tot leeuw
index: 2
model: {fileID: 0}
+ modelIndex: 1
learnables:
- name: Walvis
image: {fileID: 21300000, guid: 2b01165a5836ab14593d7a5862bd6793, type: 3}
diff --git a/Assets/Common/ScriptableObjects/ClothesTheme.asset b/Assets/Common/ScriptableObjects/ClothesTheme.asset
index bcc40cf..db7d5fa 100644
--- a/Assets/Common/ScriptableObjects/ClothesTheme.asset
+++ b/Assets/Common/ScriptableObjects/ClothesTheme.asset
@@ -15,6 +15,8 @@ MonoBehaviour:
title: Kleren en Kleuren
description: Van rok tot sok
index: 1
+ model: {fileID: 0}
+ modelIndex: 1
learnables:
- name: Blauw
image: {fileID: 21300000, guid: 182fb89eba9c64041bef31ca35c4bcd8, type: 3}
diff --git a/Assets/Common/ScriptableObjects/FamilyTheme.asset b/Assets/Common/ScriptableObjects/FamilyTheme.asset
index 9a804ee..e3c8df7 100644
--- a/Assets/Common/ScriptableObjects/FamilyTheme.asset
+++ b/Assets/Common/ScriptableObjects/FamilyTheme.asset
@@ -15,6 +15,8 @@ MonoBehaviour:
title: Familie
description: Van generatie tot generatie
index: 6
+ model: {fileID: 0}
+ modelIndex: 1
learnables:
- name: Broer
image: {fileID: 21300000, guid: eecf67266f150f1489717049489cf16d, type: 3}
diff --git a/Assets/Common/ScriptableObjects/FoodTheme.asset b/Assets/Common/ScriptableObjects/FoodTheme.asset
index 80a80d8..6d70a39 100644
--- a/Assets/Common/ScriptableObjects/FoodTheme.asset
+++ b/Assets/Common/ScriptableObjects/FoodTheme.asset
@@ -16,6 +16,7 @@ MonoBehaviour:
description: Van kers tot pompoen
index: 3
model: {fileID: 0}
+ modelIndex: 1
learnables:
- name: Aardappel
image: {fileID: 21300000, guid: 2610cdbc24a125f43ada7fed67d8f51b, type: 3}
diff --git a/Assets/Common/ScriptableObjects/HobbyTheme.asset b/Assets/Common/ScriptableObjects/HobbyTheme.asset
index c17ad1d..393ac5c 100644
--- a/Assets/Common/ScriptableObjects/HobbyTheme.asset
+++ b/Assets/Common/ScriptableObjects/HobbyTheme.asset
@@ -15,6 +15,8 @@ MonoBehaviour:
title: Hobbies
description: Van schilderen tot reizen
index: 4
+ model: {fileID: 0}
+ modelIndex: 1
learnables:
- name: Dansen
image: {fileID: 21300000, guid: 6d405f607ae817744b49f921f0611088, type: 3}
diff --git a/Assets/Common/ScriptableObjects/HouseTheme.asset b/Assets/Common/ScriptableObjects/HouseTheme.asset
index 3e9bf20..65b7f0e 100644
--- a/Assets/Common/ScriptableObjects/HouseTheme.asset
+++ b/Assets/Common/ScriptableObjects/HouseTheme.asset
@@ -15,6 +15,8 @@ MonoBehaviour:
title: Huis beschrijven
description: Van zetel tot villa
index: 5
+ model: {fileID: 0}
+ modelIndex: 1
learnables:
- name: Keuken
image: {fileID: 21300000, guid: b17ce5bf59092b847b084d3400e7a1b4, type: 3}
diff --git a/Assets/Courses/Scenes/TemplateCourse.unity b/Assets/Courses/Scenes/TemplateCourse.unity
index 036592f..b64e582 100644
--- a/Assets/Courses/Scenes/TemplateCourse.unity
+++ b/Assets/Courses/Scenes/TemplateCourse.unity
@@ -1301,6 +1301,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 043ccd99cf82b3cc9bf2e00956ce2b93, type: 3}
m_Name:
m_EditorClassIdentifier:
+ modelList: {fileID: 11400000, guid: 39516e4e6e56f0f4f80647d9c4d8034c, type: 2}
model: {fileID: 5022602860645237092, guid: e6d85df707405ad4f97c23b07227ee99, type: 3}
modelInfoFile: {fileID: 4900000, guid: fb8b51022bdcd654a9f29c054832a1b5, type: 3}
configAsset: {fileID: 4900000, guid: 6288c43cdca97374782dac1ea87aa029, type: 3}
diff --git a/Assets/Courses/Scripts/TemplateCourse.cs b/Assets/Courses/Scripts/TemplateCourse.cs
index 6e25232..11a75cb 100644
--- a/Assets/Courses/Scripts/TemplateCourse.cs
+++ b/Assets/Courses/Scripts/TemplateCourse.cs
@@ -128,13 +128,16 @@ public class TemplateCourse : MonoBehaviour
{
// Setting up course
course = courselist.courses[courselist.currentCourseIndex];
- feedback.signPredictor.model = course.theme.model;
+ //feedback.signPredictor.model = course.theme.model;
+ feedback.signPredictor.modelList.SetCurrentModel(course.theme.modelIndex);
+ //feedback.signPredictor.model = feedback.signPredictor.modelList.models[feedback.signPredictor.modelList.currentModelIndex].model;
maxWords = course.theme.learnables.Count;
// vvv TEMPORARY STUFF vvv
feedbackProgressBar.SetActive(course.theme.model != null);
previewMessage.SetActive(course.theme.model == null);
- feedback.signPredictor.model = previewModel;
+ // Instead, the NONE-modelIndex points to Fingerspelling, which gives the same result
+ //feedback.signPredictor.model = previewModel;
// ^^^ TEMPORARY STUFF ^^^
// Create entry in current user for keeping track of progress
diff --git a/Assets/Hangman/Scenes/Hangman.unity b/Assets/Hangman/Scenes/Hangman.unity
index 9209fad..073a6fb 100644
--- a/Assets/Hangman/Scenes/Hangman.unity
+++ b/Assets/Hangman/Scenes/Hangman.unity
@@ -6245,6 +6245,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 043ccd99cf82b3cc9bf2e00956ce2b93, type: 3}
m_Name:
m_EditorClassIdentifier:
+ modelList: {fileID: 11400000, guid: 39516e4e6e56f0f4f80647d9c4d8034c, type: 2}
model: {fileID: 5022602860645237092, guid: e6d85df707405ad4f97c23b07227ee99, type: 3}
modelInfoFile: {fileID: 4900000, guid: fb8b51022bdcd654a9f29c054832a1b5, type: 3}
configAsset: {fileID: 4900000, guid: 6288c43cdca97374782dac1ea87aa029, type: 3}
diff --git a/Assets/Hangman/Scripts/HangmanGameController.cs b/Assets/Hangman/Scripts/HangmanGameController.cs
index 45f9bec..3b83c67 100644
--- a/Assets/Hangman/Scripts/HangmanGameController.cs
+++ b/Assets/Hangman/Scripts/HangmanGameController.cs
@@ -241,6 +241,9 @@ public class HangmanGameController : MonoBehaviour
}
userList.Save();
+ // Hangman always uses fingerspelling
+ feedback.signPredictor.model = feedback.signPredictor.modelList.GetModelByIndex(ModelIndex.FINGERSPELLING);
+
// Set calllbacks
feedback.getSignCallback = () =>
{
diff --git a/Assets/MediaPipeUnity/ScriptableObjects.meta b/Assets/MediaPipeUnity/ScriptableObjects.meta
new file mode 100644
index 0000000..256bc92
--- /dev/null
+++ b/Assets/MediaPipeUnity/ScriptableObjects.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 438a3ced42dd6fc4ab38e3a16c1e43a7
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MediaPipeUnity/ScriptableObjects/ModelList.asset b/Assets/MediaPipeUnity/ScriptableObjects/ModelList.asset
new file mode 100644
index 0000000..12d799c
--- /dev/null
+++ b/Assets/MediaPipeUnity/ScriptableObjects/ModelList.asset
@@ -0,0 +1,20 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 78a3f61c93a08c04496c49ffd10b9021, type: 3}
+ m_Name: ModelList
+ m_EditorClassIdentifier:
+ currentModelIndex: 0
+ models:
+ - index: 0
+ model: {fileID: 5022602860645237092, guid: e6d85df707405ad4f97c23b07227ee99, type: 3}
+ - index: 1
+ model: {fileID: 5022602860645237092, guid: e6d85df707405ad4f97c23b07227ee99, type: 3}
diff --git a/Assets/MediaPipeUnity/ScriptableObjects/ModelList.asset.meta b/Assets/MediaPipeUnity/ScriptableObjects/ModelList.asset.meta
new file mode 100644
index 0000000..6b6b05c
--- /dev/null
+++ b/Assets/MediaPipeUnity/ScriptableObjects/ModelList.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 39516e4e6e56f0f4f80647d9c4d8034c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MediaPipeUnity/Scripts/ModelIndex.cs b/Assets/MediaPipeUnity/Scripts/ModelIndex.cs
new file mode 100644
index 0000000..ec15091
--- /dev/null
+++ b/Assets/MediaPipeUnity/Scripts/ModelIndex.cs
@@ -0,0 +1,9 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public enum ModelIndex
+{
+ FINGERSPELLING,
+ NONE
+}
diff --git a/Assets/MediaPipeUnity/Scripts/ModelIndex.cs.meta b/Assets/MediaPipeUnity/Scripts/ModelIndex.cs.meta
new file mode 100644
index 0000000..2fdf846
--- /dev/null
+++ b/Assets/MediaPipeUnity/Scripts/ModelIndex.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6dbd5e1100bc81648b52206df369d0a1
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MediaPipeUnity/Scripts/ModelList.cs b/Assets/MediaPipeUnity/Scripts/ModelList.cs
new file mode 100644
index 0000000..3a6b759
--- /dev/null
+++ b/Assets/MediaPipeUnity/Scripts/ModelList.cs
@@ -0,0 +1,39 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Unity.Barracuda;
+///
+/// This scriptable will hold tupples of Courseindices and models
+///
+[CreateAssetMenu(menuName = "Create new Scriptable/ModelList")]
+public class ModelList : ScriptableObject
+{
+ ///
+ /// Index of the currently active model
+ ///
+ public int currentModelIndex = 0;
+
+ ///
+ /// A list of all the models
+ ///
+ public List models = new List();
+
+ ///
+ /// Get a model by modelindex
+ ///
+ /// ModelIndex of the model
+ /// Model associated with this index, null if no model was found
+ public NNModel GetModelByIndex(ModelIndex modelIndex)
+ {
+ return models.Find((m) => m.index == modelIndex).model;
+ }
+
+ ///
+ /// Function to find a model-index in the list based on its index
+ ///
+ ///
+ public void SetCurrentModel(ModelIndex index)
+ {
+ currentModelIndex = models.FindIndex((m) => m.index == index);
+ }
+}
diff --git a/Assets/MediaPipeUnity/Scripts/ModelList.cs.meta b/Assets/MediaPipeUnity/Scripts/ModelList.cs.meta
new file mode 100644
index 0000000..e31c7ee
--- /dev/null
+++ b/Assets/MediaPipeUnity/Scripts/ModelList.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 78a3f61c93a08c04496c49ffd10b9021
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MediaPipeUnity/Scripts/ModelTuple.cs b/Assets/MediaPipeUnity/Scripts/ModelTuple.cs
new file mode 100644
index 0000000..439e02e
--- /dev/null
+++ b/Assets/MediaPipeUnity/Scripts/ModelTuple.cs
@@ -0,0 +1,18 @@
+using System;
+using UnityEngine;
+using Unity.Barracuda;
+///
+/// Small class to link a model to a courseIndex irrespective of its position in a list
+///
+[Serializable]
+public class ModelTuple
+{
+ ///
+ /// ModelIndex to which the model corresponds
+ ///
+ public ModelIndex index;
+ ///
+ /// The model itself
+ ///
+ public NNModel model;
+}
diff --git a/Assets/MediaPipeUnity/Scripts/ModelTuple.cs.meta b/Assets/MediaPipeUnity/Scripts/ModelTuple.cs.meta
new file mode 100644
index 0000000..ea41afa
--- /dev/null
+++ b/Assets/MediaPipeUnity/Scripts/ModelTuple.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bce8507dcb30db447b69708ad4f5f962
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/MediaPipeUnity/Scripts/SignPredictor.cs b/Assets/MediaPipeUnity/Scripts/SignPredictor.cs
index b1d8338..6815ae3 100644
--- a/Assets/MediaPipeUnity/Scripts/SignPredictor.cs
+++ b/Assets/MediaPipeUnity/Scripts/SignPredictor.cs
@@ -18,6 +18,9 @@ namespace Mediapipe.Unity.Tutorial
{
public class SignPredictor : MonoBehaviour
{
+
+ public ModelList modelList;
+
///
/// Reference to the model used in the SignPredictor
///
diff --git a/Assets/SpellingBee/Scenes/Game.unity b/Assets/SpellingBee/Scenes/Game.unity
index 0f7aabc..274be82 100644
--- a/Assets/SpellingBee/Scenes/Game.unity
+++ b/Assets/SpellingBee/Scenes/Game.unity
@@ -3900,6 +3900,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 043ccd99cf82b3cc9bf2e00956ce2b93, type: 3}
m_Name:
m_EditorClassIdentifier:
+ modelList: {fileID: 11400000, guid: 39516e4e6e56f0f4f80647d9c4d8034c, type: 2}
model: {fileID: 5022602860645237092, guid: e6d85df707405ad4f97c23b07227ee99, type: 3}
modelInfoFile: {fileID: 4900000, guid: fb8b51022bdcd654a9f29c054832a1b5, type: 3}
configAsset: {fileID: 4900000, guid: 6288c43cdca97374782dac1ea87aa029, type: 3}
diff --git a/Assets/SpellingBee/Scripts/GameController.cs b/Assets/SpellingBee/Scripts/GameController.cs
index 94b5f95..6e22e68 100644
--- a/Assets/SpellingBee/Scripts/GameController.cs
+++ b/Assets/SpellingBee/Scripts/GameController.cs
@@ -182,7 +182,8 @@ public partial class GameController : MonoBehaviour
userList.Save();
currentTheme = minigame.themeList.themes[minigame.themeList.currentThemeIndex];
- feedback.signPredictor.model = currentTheme.model;
+ //feedback.signPredictor.model = currentTheme.model;
+ feedback.signPredictor.model = feedback.signPredictor.modelList.GetModelByIndex(currentTheme.modelIndex);
words.AddRange(currentTheme.learnables);
ShuffleWords();
NextWord();