diff --git a/vr-configurator/Assets/Scenes/SampleScene.unity b/vr-configurator/Assets/Scenes/SampleScene.unity index 5015059..b9929a2 100644 --- a/vr-configurator/Assets/Scenes/SampleScene.unity +++ b/vr-configurator/Assets/Scenes/SampleScene.unity @@ -12857,6 +12857,7 @@ MonoBehaviour: colliderSurface: {fileID: 163506087} interactable: {fileID: 698127119} rayInteractable: {fileID: 698127110} + PortSelector: {fileID: 1494770816} --- !u!1 &700047848 GameObject: m_ObjectHideFlags: 0 @@ -21748,6 +21749,7 @@ MonoBehaviour: colliderSurface: {fileID: 557957011} interactable: {fileID: 1272917968} rayInteractable: {fileID: 1272917969} + PortSelector: {fileID: 1494770816} --- !u!114 &1272917968 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs b/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs index 75c1249..19b8fb3 100644 --- a/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs +++ b/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs @@ -33,6 +33,9 @@ public class ModelBehaviour : MonoBehaviour, IResettable public RayInteractable rayInteractable; bool lateInited = false; + + public PortSelector PortSelector; + public int Index = -1; Color _color = Color.black; Color Color @@ -171,6 +174,7 @@ public class ModelBehaviour : MonoBehaviour, IResettable child.SetActive(true); ChildModelBehaviour cmb = child.GetComponent(); _children.Add(child); + cmb.Index = i; var childModel = ModelManager.GetById(port.DefaultId); if (childModel.Mesh == null) @@ -180,7 +184,7 @@ public class ModelBehaviour : MonoBehaviour, IResettable continue; } - Debug.Log($"POS {child.transform.gameObject.name} pos {child.transform.localPosition} {child.transform.rotation} {child.transform.localScale}"); + //Debug.Log($"POS {child.transform.gameObject.name} pos {child.transform.localPosition} {child.transform.rotation} {child.transform.localScale}"); cmb.Parent = this; cmb.ChildModel = childModel; port.Apply(child.transform); // move to correct position @@ -267,8 +271,13 @@ public class ModelBehaviour : MonoBehaviour, IResettable //model clicked void OnSelect() { - Debug.Log($"Selected {name}"); - + Debug.Log($"Selected portIndex {Index}"); + if (Index == -1) + { + Debug.LogWarning($"Clicked on Initialized"); + return; + } + PortSelector.mapPSB[Index].OnClick(); } public void ResetThis() diff --git a/vr-configurator/Assets/Scripts/UI/PortSelector.cs b/vr-configurator/Assets/Scripts/UI/PortSelector.cs index 54e0d32..0514bcd 100644 --- a/vr-configurator/Assets/Scripts/UI/PortSelector.cs +++ b/vr-configurator/Assets/Scripts/UI/PortSelector.cs @@ -12,6 +12,7 @@ public class PortSelector : MonoBehaviour, IResettable public List portGOs = new List(); public List listPSB = new List(); + public Dictionary mapPSB = new Dictionary(); //Gets called from BaseModelSelector public void GenerateButtons() @@ -34,7 +35,6 @@ public class PortSelector : MonoBehaviour, IResettable portGOs.Add(go); go.SetActive(true); var text = go.GetComponentInChildren(); - if (text == null) { Debug.LogWarning($"No TextMeshProUGUI found in {go.name}, cannot set text."); @@ -46,6 +46,7 @@ public class PortSelector : MonoBehaviour, IResettable psb.marker = go.GetComponentInChildren(true).gameObject; psb.RemoveOtherMarkers = RemoveOtherMarkers; listPSB.Add(psb); + mapPSB.Add(index, psb); index++; i++; } diff --git a/vr-configurator/Assets/Scripts/UI/PortSelectorButton.cs b/vr-configurator/Assets/Scripts/UI/PortSelectorButton.cs index 6439406..89de4ca 100644 --- a/vr-configurator/Assets/Scripts/UI/PortSelectorButton.cs +++ b/vr-configurator/Assets/Scripts/UI/PortSelectorButton.cs @@ -16,7 +16,7 @@ public class PortSelectorButton : MonoBehaviour { this.GetOrAddComponent