diff --git a/Assets/Resources/UI/ARView.prefab b/Assets/Resources/UI/ARView.prefab index 4ad4ae0..c7f1e99 100644 --- a/Assets/Resources/UI/ARView.prefab +++ b/Assets/Resources/UI/ARView.prefab @@ -145,7 +145,7 @@ GameObject: - component: {fileID: 222883275204112786} - component: {fileID: 114642005439168118} m_Layer: 5 - m_Name: Icon + m_Name: IconLoading m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -183,6 +183,23 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &1330246529418430 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224870609926564584} + - component: {fileID: 222450161345885808} + - component: {fileID: 114566290632908284} + m_Layer: 5 + m_Name: Icon3D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1 &1348036272423586 GameObject: m_ObjectHideFlags: 0 @@ -508,6 +525,23 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &1953035989194346 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224847882730596996} + - component: {fileID: 222761787578298562} + - component: {fileID: 114933178627092868} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1 &1977378795970684 GameObject: m_ObjectHideFlags: 1 @@ -1369,6 +1403,8 @@ MonoBehaviour: DetailsText: {fileID: 114941164005360912} DetailsTextScrollRect: {fileID: 114394030101927196} DetailsModel: {fileID: 114183846072457360} + IconLoading: {fileID: 1298020638438872} + Icon3D: {fileID: 1330246529418430} --- !u!114 &114507205352577392 MonoBehaviour: m_ObjectHideFlags: 1 @@ -1412,6 +1448,33 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 +--- !u!114 &114566290632908284 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1330246529418430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5ebf3714321c5f74784cc76bbde2fb85, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 --- !u!114 &114584917988102786 MonoBehaviour: m_ObjectHideFlags: 1 @@ -1531,7 +1594,7 @@ MonoBehaviour: m_Calls: [] m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 21300000, guid: 8f23181e0a1c78544835bd9301f1eef7, type: 3} + m_Sprite: {fileID: 21300000, guid: 1957047573239854895a9ba2a69c12c8, type: 3} m_Type: 0 m_PreserveAspect: 1 m_FillCenter: 1 @@ -1617,6 +1680,33 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 +--- !u!114 &114933178627092868 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1953035989194346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 8f23181e0a1c78544835bd9301f1eef7, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 --- !u!114 &114941164005360912 MonoBehaviour: m_ObjectHideFlags: 1 @@ -1975,6 +2065,12 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1553995320662558} +--- !u!222 &222450161345885808 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1330246529418430} --- !u!222 &222450742828561450 CanvasRenderer: m_ObjectHideFlags: 1 @@ -2035,6 +2131,12 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1986268301643462} +--- !u!222 &222761787578298562 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1953035989194346} --- !u!222 &222763303872950282 CanvasRenderer: m_ObjectHideFlags: 1 @@ -2128,17 +2230,17 @@ RectTransform: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1298020638438872} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 224632685815868688} + m_Father: {fileID: 224292492441239568} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0.25} - m_AnchorMax: {x: 0.75, y: 0.75} + 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: 0, y: 0} + m_SizeDelta: {x: 50, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &224126681634059420 RectTransform: @@ -2281,6 +2383,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: -1} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 224870609926564584} + - {fileID: 224105959217507050} - {fileID: 224988931619594536} - {fileID: 224457627043515580} - {fileID: 224450108705652292} @@ -2321,7 +2425,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 224292492441239568} - m_RootOrder: 2 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2339,7 +2443,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 224292492441239568} - m_RootOrder: 1 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2415,7 +2519,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 224854469656575046} - - {fileID: 224105959217507050} + - {fileID: 224847882730596996} m_Father: {fileID: 224804495073354866} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2485,6 +2589,24 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!224 &224847882730596996 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1953035989194346} + 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_Children: [] + m_Father: {fileID: 224632685815868688} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0.25} + m_AnchorMax: {x: 0.75, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &224854469656575046 RectTransform: m_ObjectHideFlags: 1 @@ -2503,6 +2625,24 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224870609926564584 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1330246529418430} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224292492441239568} + m_RootOrder: 0 + 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: 75} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &224888481017931948 RectTransform: m_ObjectHideFlags: 1 @@ -2610,7 +2750,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 224292492441239568} - m_RootOrder: 0 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} diff --git a/Assets/RothenburgAR/Scripts/PointOfInterest/PoiData.cs b/Assets/RothenburgAR/Scripts/PointOfInterest/PoiData.cs index 994df5e..eb1a3ab 100644 --- a/Assets/RothenburgAR/Scripts/PointOfInterest/PoiData.cs +++ b/Assets/RothenburgAR/Scripts/PointOfInterest/PoiData.cs @@ -41,27 +41,16 @@ namespace RothenburgAR.PointOfInterest var loader = new OBJLoader(ModelDescription.ModelPath); - //TODO do this in new thread ThreadStart start = new ThreadStart(loader.ParseObjFile); Thread t = new Thread(start); t.Start(); - while (t.ThreadState != ThreadState.Stopped) { - Debug.Log("loading model from subthread"); - yield return null; + yield return new WaitForSecondsRealtime(.1f); } - Debug.Log("loaded model from subthread"); - //TODO wait for thread finish with yield return null var model = loader.BuildUnityObjects(); - if (!model) - { - Debug.LogError("Failed to load Model!"); - } - - model.SetActive(false); _modelPrefab = model; } diff --git a/Assets/RothenburgAR/Scripts/UI/DetailsPanelBehaviour.cs b/Assets/RothenburgAR/Scripts/UI/DetailsPanelBehaviour.cs index 23583dc..d715bad 100644 --- a/Assets/RothenburgAR/Scripts/UI/DetailsPanelBehaviour.cs +++ b/Assets/RothenburgAR/Scripts/UI/DetailsPanelBehaviour.cs @@ -15,6 +15,8 @@ namespace RothenburgAR.UI public TextMeshProUGUI DetailsText; public ScrollRect DetailsTextScrollRect; public DetailsModelBehaviour DetailsModel; + public GameObject IconLoading; + public GameObject Icon3D; private void Start() { @@ -55,17 +57,19 @@ namespace RothenburgAR.UI if (!data.IsModelLoaded) { - Debug.Log("Model not loaded, starting thread..."); StartCoroutine(data.LoadModel()); + DetailsModel.gameObject.SetActive(true); + Icon3D.SetActive(true); + IconLoading.SetActive(true); + while (!data.IsModelLoaded) { // display loading icon or sth idk - Debug.Log("waiting for data to be loaded.."); - yield return null; - } + IconLoading.transform.Rotate(new Vector3(0, 0, 1), -3f); - Debug.Log("exited while loop"); + yield return new WaitForSecondsRealtime(.01f); + } } try @@ -90,6 +94,8 @@ namespace RothenburgAR.UI DetailsModel.CurrentModel = _currentDisplayedModelGo; DetailsModel.gameObject.SetActive(true); + Icon3D.SetActive(false); + IconLoading.SetActive(false); } public void RemoveModel() @@ -101,6 +107,8 @@ namespace RothenburgAR.UI { Destroy(_currentDisplayedModelGo); _currentDisplayedModelGo = null; + Icon3D.SetActive(false); + IconLoading.SetActive(false); } } diff --git a/Assets/RothenburgAR/Sprites/Icons/baseline-3d_rotation-512px.png b/Assets/RothenburgAR/Sprites/Icons/baseline-3d_rotation-512px.png new file mode 100644 index 0000000..9fb8596 Binary files /dev/null and b/Assets/RothenburgAR/Sprites/Icons/baseline-3d_rotation-512px.png differ diff --git a/Assets/RothenburgAR/Sprites/Icons/baseline-3d_rotation-512px.png.meta b/Assets/RothenburgAR/Sprites/Icons/baseline-3d_rotation-512px.png.meta new file mode 100644 index 0000000..003bc03 --- /dev/null +++ b/Assets/RothenburgAR/Sprites/Icons/baseline-3d_rotation-512px.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 5ebf3714321c5f74784cc76bbde2fb85 +timeCreated: 1538072671 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 1 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RothenburgAR/Sprites/Icons/baseline-refresh-512px.png b/Assets/RothenburgAR/Sprites/Icons/baseline-refresh-512px.png new file mode 100644 index 0000000..c03891c Binary files /dev/null and b/Assets/RothenburgAR/Sprites/Icons/baseline-refresh-512px.png differ diff --git a/Assets/RothenburgAR/Sprites/Icons/baseline-refresh-512px.png.meta b/Assets/RothenburgAR/Sprites/Icons/baseline-refresh-512px.png.meta new file mode 100644 index 0000000..25cb6c9 --- /dev/null +++ b/Assets/RothenburgAR/Sprites/Icons/baseline-refresh-512px.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 1957047573239854895a9ba2a69c12c8 +timeCreated: 1538072670 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 1 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: