diff --git a/vr-configurator/.idea/.idea.vr-configurator/.idea/indexLayout.xml b/vr-configurator/.idea/.idea.vr-configurator/.idea/indexLayout.xml index 7b08163..390ba90 100644 --- a/vr-configurator/.idea/.idea.vr-configurator/.idea/indexLayout.xml +++ b/vr-configurator/.idea/.idea.vr-configurator/.idea/indexLayout.xml @@ -1,7 +1,9 @@ - + + ../../vr-configurator + diff --git a/vr-configurator/Assets/Scenes/SampleScene.unity b/vr-configurator/Assets/Scenes/SampleScene.unity index ae76e5f..6aa834f 100644 --- a/vr-configurator/Assets/Scenes/SampleScene.unity +++ b/vr-configurator/Assets/Scenes/SampleScene.unity @@ -181,6 +181,142 @@ Transform: m_Children: [] m_Father: {fileID: 342953591} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &10963624 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 10963625} + - component: {fileID: 10963627} + - component: {fileID: 10963626} + m_Layer: 0 + m_Name: ReturnButtonText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &10963625 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10963624} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 576843183} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &10963626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10963624} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Return to Menu + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &10963627 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10963624} + m_CullTransparentMesh: 1 --- !u!1 &11026905 GameObject: m_ObjectHideFlags: 0 @@ -6286,8 +6422,16 @@ GameObject: m_Component: - component: {fileID: 576843183} - component: {fileID: 576843182} + - component: {fileID: 576843191} + - component: {fileID: 576843190} + - component: {fileID: 576843189} + - component: {fileID: 576843188} + - component: {fileID: 576843187} + - component: {fileID: 576843186} + - component: {fileID: 576843185} + - component: {fileID: 576843184} m_Layer: 0 - m_Name: Return_Button + m_Name: ReturnButton m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -6302,24 +6446,216 @@ MonoBehaviour: m_GameObject: {fileID: 576843181} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6dfe03d329ee2b146b5996454c244769, type: 3} + m_Script: {fileID: 11500000, guid: 6090c3d0202faa84bb7bbf94c1cceec8, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &576843183 -Transform: + bms: {fileID: 624025131} + mm: {fileID: 1519836175} +--- !u!224 &576843183 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 576843181} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.2055113, y: -0.883631, z: 0.82175124} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalRotation: {x: 0.17364816, y: 0, z: 0, w: 0.9848078} + m_LocalPosition: {x: 0, y: 0, z: 1} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 10963625} m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 20, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: 180, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!65 &576843184 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &576843185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 576843186} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &576843186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &576843187 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_CullTransparentMesh: 1 +--- !u!114 &576843188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7aaf960227867044282d921171d2d7ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 + pointer: {fileID: 0} + sortOrder: 0 +--- !u!114 &576843189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &576843190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &576843191 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576843181} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 --- !u!1 &578299011 GameObject: m_ObjectHideFlags: 0 @@ -6650,6 +6986,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: modelManager: {fileID: 1519836175} + returnButton: {fileID: 576843182} --- !u!1 &628967020 GameObject: m_ObjectHideFlags: 0 @@ -15467,7 +15804,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: baseModel: {fileID: 645201570} - baseModelSelector: {fileID: 0} + baseModelSelector: {fileID: 624025131} --- !u!4 &1519836176 Transform: m_ObjectHideFlags: 0 @@ -22686,6 +23023,6 @@ SceneRoots: - {fileID: 1611507763} - {fileID: 4993107373397872358} - {fileID: 1519836176} - - {fileID: 624025130} - {fileID: 645201571} - {fileID: 576843183} + - {fileID: 624025130} diff --git a/vr-configurator/Assets/Scripts/Models/BaseModelBehaviour.cs b/vr-configurator/Assets/Scripts/Models/BaseModelBehaviour.cs index b1d7343..f8da07f 100644 --- a/vr-configurator/Assets/Scripts/Models/BaseModelBehaviour.cs +++ b/vr-configurator/Assets/Scripts/Models/BaseModelBehaviour.cs @@ -18,7 +18,6 @@ public class BaseModelBehaviour : ModelBehaviour set { model = value; - } } diff --git a/vr-configurator/Assets/Scripts/Models/ModelManager.cs b/vr-configurator/Assets/Scripts/Models/ModelManager.cs index 192ab06..d7a7c71 100644 --- a/vr-configurator/Assets/Scripts/Models/ModelManager.cs +++ b/vr-configurator/Assets/Scripts/Models/ModelManager.cs @@ -97,6 +97,7 @@ public class ModelManager : MonoBehaviour public void LoadSelectedModel(BaseModel baseModel) { + //create if doesnt exist if (this.baseModel == null) { // Neues GameObject für das BaseModel erstellen @@ -114,7 +115,15 @@ public class ModelManager : MonoBehaviour this.baseModel.GetComponent().baseModel = baseModel; this.baseModel.name = baseModel.nameId; this.baseModel.SetActive(true); - Debug.Log($"Modell {baseModel.nameHuman} geladen und platziert."); + Debug.Log($"Modell {baseModel.nameHuman} lock and loaded."); + } + + public void openSelector() + { + Debug.Log("Open Selector"); + //TODO: make work + baseModel.SetActive(false); + baseModelSelector.Activate(); //actimel aktiviert ausw'hlkrafte } diff --git a/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs b/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs index 876e073..2403b45 100644 --- a/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs +++ b/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs @@ -14,12 +14,18 @@ public class BaseModelSelector : MonoBehaviour private BaseModel selectedModel = null; // Gemerkte Auswahl! public ModelManager modelManager; // <-- ziehen wir im Inspector rein + + public ReturnButtonBehaviour returnButton; void Start() { SetupEventSystem(); SetupCanvas(); CreatePrefabButtons(); + if(returnButton == null) + { + returnButton = FindAnyObjectByType(); + } } void SetupEventSystem() @@ -34,7 +40,7 @@ public class BaseModelSelector : MonoBehaviour } else { - Debug.Log("EventSystem existiert bereits — neues wird nicht erstellt."); + Debug.Log("EventSystem existiert bereits - neues wird nicht erstellt."); } } @@ -42,6 +48,7 @@ public class BaseModelSelector : MonoBehaviour void SetupCanvas() { GameObject canvasGO = new GameObject("ModelSelectorCanvas"); + canvasGO.transform.SetParent(gameObject.transform); canvas = canvasGO.AddComponent(); canvas.renderMode = RenderMode.WorldSpace; @@ -91,31 +98,30 @@ public class BaseModelSelector : MonoBehaviour // Wenn ein Button geklickt wird public void OnModelButtonClicked(BaseModel model) { - selectedModel = model; - Debug.Log($"Ausgewähltes Modell: {selectedModel.nameHuman}"); + Debug.Log($"Ausgewähltes Modell: {model.nameHuman}"); - if (modelManager != null) - { - modelManager.LoadSelectedModel(selectedModel); - ReturnButtonSpawner.SpawnReturnButton(modelManager.transform, this.canvas.gameObject); - } - else + if (modelManager == null) { Debug.LogError("ModelManager ist nicht zugewiesen!"); + return; } - // --> Canvas unsichtbar machen! - if (canvas != null) + modelManager.LoadSelectedModel(model); + + if (returnButton == null) { - canvas.gameObject.SetActive(false); + Debug.LogError("ReturnButton is null!"); + return; } + returnButton.Activate(); //aktiviere actimel kräfte + + if (canvas == null) + { + Debug.LogError("Canvas doesn't exist"); + return; + } + gameObject.SetActive(false); } - // Öffentliche Funktion: Aktuell gewähltes Modell zurückgeben - public BaseModel GetSelectedModel() - { - return selectedModel; - } - public static GameObject SetupPrefab(BaseModel model) { // Hauptobjekt @@ -166,6 +172,11 @@ public class BaseModelSelector : MonoBehaviour return buttonGO; } + + public void Activate() + { + gameObject.SetActive(true); + } } diff --git a/vr-configurator/Assets/Scripts/UI/ReifenAuswahl.cs b/vr-configurator/Assets/Scripts/UI/ReifenAuswahl.cs deleted file mode 100644 index dc1deb6..0000000 --- a/vr-configurator/Assets/Scripts/UI/ReifenAuswahl.cs +++ /dev/null @@ -1,16 +0,0 @@ -using UnityEngine; - -public class ReifenAuswahl : MonoBehaviour -{ - public GameObject Viewport_Reifen; - public GameObject Viewport_Farbe; - - public void SetVisibility(bool visible) - { - if (Viewport_Reifen != null) - { - Viewport_Reifen.SetActive(visible); - Viewport_Farbe.SetActive(!visible); - } - } -} diff --git a/vr-configurator/Assets/Scripts/UI/ReifenAuswahl.cs.meta b/vr-configurator/Assets/Scripts/UI/ReifenAuswahl.cs.meta deleted file mode 100644 index 3434831..0000000 --- a/vr-configurator/Assets/Scripts/UI/ReifenAuswahl.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 03a7672b5a6935948bf534bfd16ad8b9 \ No newline at end of file diff --git a/vr-configurator/Assets/Scripts/UI/ReturnButtonBehaviour.cs b/vr-configurator/Assets/Scripts/UI/ReturnButtonBehaviour.cs new file mode 100644 index 0000000..fd44996 --- /dev/null +++ b/vr-configurator/Assets/Scripts/UI/ReturnButtonBehaviour.cs @@ -0,0 +1,34 @@ +using TMPro; +using Unity.VisualScripting; +using UnityEngine; +using UnityEngine.UI; + +public class ReturnButtonBehaviour : MonoBehaviour +{ + public BaseModelSelector bms; + public ModelManager mm; + + void Start() + { + gameObject.SetActive(false); + GetComponent