diff --git a/Assets/Materials/GroundMat.mat b/Assets/Materials/GroundMat.mat index fa61685..3387cbb 100644 --- a/Assets/Materials/GroundMat.mat +++ b/Assets/Materials/GroundMat.mat @@ -9,12 +9,13 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: GroundMat m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _EMISSION + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _EMISSION m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent disabledShaderPasses: [] m_SavedProperties: serializedVersion: 3 @@ -59,19 +60,19 @@ Material: - _BumpScale: 1 - _Cutoff: 0.5 - _DetailNormalMapScale: 1 - - _DstBlend: 0 + - _DstBlend: 10 - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1 - _Metallic: 0 - - _Mode: 0 + - _Mode: 3 - _OcclusionStrength: 1 - _Parallax: 0.02 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 - _UVSec: 0 - - _ZWrite: 1 + - _ZWrite: 0 m_Colors: - - _Color: {r: 0.2509804, g: 0.2627451, b: 0.29803923, a: 1} + - _Color: {r: 0.2509804, g: 0.28235295, b: 0.39607844, a: 0.57254905} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Plugins/Android/AppInfo.java b/Assets/Plugins/Android/AppInfo.java index 35b22d7..1f7b12c 100644 --- a/Assets/Plugins/Android/AppInfo.java +++ b/Assets/Plugins/Android/AppInfo.java @@ -19,6 +19,8 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; import java.util.Calendar; import java.util.Map; import java.util.zip.ZipEntry; @@ -27,7 +29,9 @@ import java.util.zip.ZipOutputStream; import android.os.Bundle; import android.util.Log; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; +import android.graphics.Color; import java.util.List; import java.util.LinkedList; @@ -36,6 +40,12 @@ class AppInfoInternal { public long lastTimeUsed; } +class DecodedBitmap { + int width; + int height; + byte[] rawImage; +} + public class AppInfo extends UnityPlayerActivity { private static final String TAG = "AppInfo"; @@ -263,6 +273,56 @@ public class AppInfo extends UnityPlayerActivity { } } + public static DecodedBitmap loadRawImage(String imagePath, int maxWidth, int maxHeight) { + Log.v(TAG, "Decoding image at " + imagePath); + + try { + // Decode bitmap with inJustDecodeBounds=true to check dimensions + final BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeFile(imagePath, options); + + // Calculate inSampleSize + int height = options.outHeight; + int width = options.outWidth; + Log.v(TAG, "Image dimensions: " + height + "x" + width); + + // Calculate the largest inSampleSize value that is a power of 2 and keeps both + // height and width smaller than the requested height and width. + options.inSampleSize = 1; + while ((height / options.inSampleSize) >= maxHeight + || (width / options.inSampleSize) >= maxWidth) { + options.inSampleSize *= 2; + } + Log.v(TAG, "Image sample size: " + options.inSampleSize); + + // Decode bitmap with inSampleSize set + options.inJustDecodeBounds = false; + options.inPremultiplied = false; + options.inPreferredConfig = Bitmap.Config.ARGB_8888; + options.inPreferQualityOverSpeed = true; + Bitmap bmp = BitmapFactory.decodeFile(imagePath, options); + if (null == bmp) { + Log.v(TAG, "Failed to decode image at " + imagePath); + return null; + } + + DecodedBitmap decodedBmp = new DecodedBitmap(); + decodedBmp.width = bmp.getWidth(); + decodedBmp.height = bmp.getHeight(); + ByteBuffer byteBuffer = ByteBuffer.allocate(bmp.getByteCount()); + bmp.copyPixelsToBuffer(byteBuffer); + decodedBmp.rawImage = byteBuffer.array(); + + Log.v(TAG, "Done decoding image at " + imagePath); + return decodedBmp; + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + private static void createDirIfNotExist(File path) { if (!path.exists()) { path.mkdirs(); diff --git a/Assets/Prefabs/AppEntry.prefab b/Assets/Prefabs/AppEntry.prefab index 0c3fa48..3058fcc 100644 --- a/Assets/Prefabs/AppEntry.prefab +++ b/Assets/Prefabs/AppEntry.prefab @@ -398,8 +398,12 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sprite: {fileID: 4032891918720229799} + text: {fileID: 6771208205116626490} packageId: appName: + externalIconPath: + installedApkIndex: 0 + isRenameMode: 0 --- !u!1 &5252017818009209086 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/SkyboxEntry.prefab b/Assets/Prefabs/SkyboxEntry.prefab new file mode 100644 index 0000000..99b70e2 --- /dev/null +++ b/Assets/Prefabs/SkyboxEntry.prefab @@ -0,0 +1,309 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2718414468714522334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3876971168137039905} + - component: {fileID: 7606802177034282429} + - component: {fileID: 6771208205116626490} + m_Layer: 0 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3876971168137039905 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2718414468714522334} + 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: 2187993270055489575} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7606802177034282429 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2718414468714522334} + m_CullTransparentMesh: 0 +--- !u!114 &6771208205116626490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2718414468714522334} + 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_text: + 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_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 96 + m_fontStyle: 1 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 6771208205116626490} + characterCount: 0 + spriteCount: 0 + spaceCount: 0 + wordCount: 0 + linkCount: 0 + lineCount: 0 + pageCount: 0 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &4824380111246446992 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2187993270055489575} + - component: {fileID: 4582160310205455797} + - component: {fileID: 5153811987148017347} + - component: {fileID: 4106709632587049678} + m_Layer: 0 + m_Name: SkyboxEntry + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2187993270055489575 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824380111246446992} + 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: + - {fileID: 3876971168137039905} + - {fileID: 3061537210812862376} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4582160310205455797 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824380111246446992} + m_CullTransparentMesh: 0 +--- !u!65 &5153811987148017347 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824380111246446992} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 780, y: 60, z: 0.06} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4106709632587049678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824380111246446992} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6e773b6a61a5a604388f69b6f343f8db, type: 3} + m_Name: + m_EditorClassIdentifier: + text: {fileID: 6771208205116626490} + path: +--- !u!1 &5252017818009209086 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3061537210812862376} + - component: {fileID: 165040609097649856} + - component: {fileID: 8280379170912847942} + m_Layer: 0 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3061537210812862376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5252017818009209086} + 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: 2187993270055489575} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &165040609097649856 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5252017818009209086} + m_CullTransparentMesh: 0 +--- !u!114 &8280379170912847942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5252017818009209086} + 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.14097543, g: 0.8301887, b: 0.22752704, a: 0.8117647} + m_RaycastTarget: 1 + 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: b6bb78fcd6b3a574191fd2967990903b, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Prefabs/SkyboxEntry.prefab.meta b/Assets/Prefabs/SkyboxEntry.prefab.meta new file mode 100644 index 0000000..277dda4 --- /dev/null +++ b/Assets/Prefabs/SkyboxEntry.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8da3d69c2a551d241a0760dd57d7a671 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/QuestAppLauncher.unity b/Assets/Scenes/QuestAppLauncher.unity index 4aa7795..46d8c77 100644 --- a/Assets/Scenes/QuestAppLauncher.unity +++ b/Assets/Scenes/QuestAppLauncher.unity @@ -451,6 +451,260 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 34138275} m_CullTransparentMesh: 0 +--- !u!1 &49821814 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 49821815} + - component: {fileID: 49821821} + - component: {fileID: 49821820} + - component: {fileID: 49821819} + - component: {fileID: 49821818} + - component: {fileID: 49821817} + - component: {fileID: 49821816} + - component: {fileID: 49821822} + m_Layer: 5 + m_Name: Skyview_List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &49821815 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + 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: + - {fileID: 336007694} + - {fileID: 2050228444} + - {fileID: 2130504546} + m_Father: {fileID: 691642881} + m_RootOrder: 1 + 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: 1000, y: 600} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &49821816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30eacec5c6a73a14894eea6fafe7a53a, type: 3} + m_Name: + m_EditorClassIdentifier: + skyviewListContainer: {fileID: 691642880} + prefabSkyboxEntry: {fileID: 4824380111246446992, guid: 8da3d69c2a551d241a0760dd57d7a671, + type: 3} + contentTransform: {fileID: 1113432056} +--- !u!114 &49821817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 472cd28b041d447a4b0f2b5c603034aa, type: 3} + m_Name: + m_EditorClassIdentifier: + trackingSpace: {fileID: 881994610} + primaryButton: 8192 + secondaryButton: 0 + tertiaryButton: 0 + excludeLayers: + serializedVersion: 2 + m_Bits: 0 + raycastDistance: 500 + onHoverEnter: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 49821816} + m_MethodName: OnHoverEnter + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHoverExit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 49821816} + m_MethodName: OnHoverExit + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHover: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onPrimarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 49821816} + m_MethodName: OnSelected + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onSecondarySelect: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onTertiarySelect: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + activeController: 0 +--- !u!65 &49821818 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1000, y: 600, z: 0} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &49821819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c51693ac45aa2d4480f322a70ef9a67, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1113432056} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 2050228444} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + trackingSpace: {fileID: 0} +--- !u!114 &49821820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + 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.010234957, g: 0.09975823, b: 0.21698111, a: 1} + m_RaycastTarget: 1 + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &49821821 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + m_CullTransparentMesh: 0 +--- !u!114 &49821822 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49821814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 --- !u!1 &61603938 GameObject: m_ObjectHideFlags: 0 @@ -493,7 +747,7 @@ Light: serializedVersion: 9 m_Type: 2 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1.1 + m_Intensity: 1.07 m_Range: 41.97 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 @@ -1823,7 +2077,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 150, y: -775} + m_AnchoredPosition: {x: 150, y: -650} m_SizeDelta: {x: 100, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &240885096 @@ -2223,6 +2477,163 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 259498116} m_CullTransparentMesh: 0 +--- !u!1 &281343927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 281343928} + - component: {fileID: 281343930} + - component: {fileID: 281343929} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &281343928 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 281343927} + 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: 2130504546} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 490, y: -22.5} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &281343929 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 281343927} + 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_text: Cancel + 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_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: 0 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 281343929} + characterCount: 6 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &281343930 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 281343927} + m_CullTransparentMesh: 0 --- !u!1 &284714161 GameObject: m_ObjectHideFlags: 0 @@ -2291,12 +2702,12 @@ RectTransform: m_Children: - {fileID: 987583755} - {fileID: 87081339} - m_Father: {fileID: 883330324} - m_RootOrder: 3 + m_Father: {fileID: 949458750} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 500, y: -1025} + m_AnchoredPosition: {x: 2300, y: -75} m_SizeDelta: {x: 800, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &302656574 @@ -2543,6 +2954,163 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 314582732} m_CullTransparentMesh: 0 +--- !u!1 &336007693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 336007694} + - component: {fileID: 336007696} + - component: {fileID: 336007695} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &336007694 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336007693} + 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: 49821815} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 500, y: -30.833332} + m_SizeDelta: {x: 980, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &336007695 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336007693} + 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_text: Choose Background + 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_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 336007695} + characterCount: 17 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &336007696 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336007693} + m_CullTransparentMesh: 0 --- !u!1 &340813588 GameObject: m_ObjectHideFlags: 0 @@ -4491,11 +5059,11 @@ RectTransform: - {fileID: 4342933} - {fileID: 2063273159} m_Father: {fileID: 883330324} - m_RootOrder: 5 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 500, y: -1525} + m_AnchoredPosition: {x: 500, y: -1150} m_SizeDelta: {x: 800, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &585330017 @@ -5047,6 +5615,8 @@ GameObject: - component: {fileID: 686608800} - component: {fileID: 686608801} - component: {fileID: 686608802} + - component: {fileID: 686608804} + - component: {fileID: 686608803} m_Layer: 5 m_Name: Rename_Container m_TagString: Untagged @@ -5107,6 +5677,177 @@ MonoBehaviour: renameScrollContainer: {fileID: 1045416981} renameLabel: {fileID: 249785787} gridPopulation: {fileID: 1860838375} +--- !u!114 &686608803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 686608799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 472cd28b041d447a4b0f2b5c603034aa, type: 3} + m_Name: + m_EditorClassIdentifier: + trackingSpace: {fileID: 881994610} + primaryButton: 8192 + secondaryButton: 10 + tertiaryButton: 5 + excludeLayers: + serializedVersion: 2 + m_Bits: 0 + raycastDistance: 500 + onHoverEnter: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 686608804} + m_MethodName: OnHoverEnter + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHoverExit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 686608804} + m_MethodName: OnHoverExit + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHover: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onPrimarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 686608804} + m_MethodName: OnSelected + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onSecondarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 686608804} + m_MethodName: OnSelectedPressedBorY + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onTertiarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 686608804} + m_MethodName: OnSelectedPressedAorX + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + activeController: 0 +--- !u!114 &686608804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 686608799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 054c7813b6beaab439c025873fec9b94, type: 3} + m_Name: + m_EditorClassIdentifier: + hideAppHandler: {fileID: 519013809} + renameHandler: {fileID: 686608802} +--- !u!1 &691642880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 691642881} + - component: {fileID: 691642882} + m_Layer: 5 + m_Name: Skyview_List_Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &691642881 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691642880} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -4} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 766539585} + - {fileID: 49821815} + m_Father: {fileID: 1213035640} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!65 &691642882 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691642880} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2802, y: 2000, z: 0} + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &696398112 GameObject: m_ObjectHideFlags: 0 @@ -5501,6 +6242,69 @@ MonoBehaviour: m_CallState: 2 m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!1 &726467102 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 726467103} + - component: {fileID: 726467104} + m_Layer: 5 + m_Name: Background_Settings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &726467103 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726467102} + 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: + - {fileID: 1764737581} + - {fileID: 2120155537} + m_Father: {fileID: 883330324} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 150, y: -1400} + m_SizeDelta: {x: 100, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &726467104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726467102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 --- !u!1 &730856369 GameObject: m_ObjectHideFlags: 0 @@ -5576,6 +6380,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 730856369} m_CullTransparentMesh: 0 +--- !u!1 &766539584 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 766539585} + - component: {fileID: 766539587} + - component: {fileID: 766539586} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &766539585 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 766539584} + 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: 691642881} + 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: 0} + m_SizeDelta: {x: 1010, y: 610} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &766539586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 766539584} + 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, g: 0.68235296, b: 0.9372549, a: 1} + m_RaycastTarget: 1 + 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: eb604cc485e242f47964afd8b57c3352, type: 3} + m_Type: 1 + 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 &766539587 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 766539584} + m_CullTransparentMesh: 0 --- !u!1 &780346999 GameObject: m_ObjectHideFlags: 0 @@ -6343,9 +7222,9 @@ RectTransform: - {fileID: 1133097218} - {fileID: 2027300713} - {fileID: 240885095} - - {fileID: 302656573} - {fileID: 949458750} - {fileID: 585330016} + - {fileID: 726467103} - {fileID: 1993578281} m_Father: {fileID: 1213035640} m_RootOrder: 2 @@ -6370,8 +7249,8 @@ MonoBehaviour: m_Padding: m_Left: 100 m_Right: 100 - m_Top: 200 - m_Bottom: 100 + m_Top: 75 + m_Bottom: 75 m_ChildAlignment: 0 m_Spacing: 100 m_ChildForceExpandWidth: 0 @@ -6441,7 +7320,9 @@ MonoBehaviour: gridPopulation: {fileID: 1860838374} show2DToggle: {fileID: 302656572} autoUpdateToggle: {fileID: 4342929} + skyBoxButton: {fileID: 2120155536} downloadStatusIndicator: {fileID: 397261751} + skyboxHandler: {fileID: 49821816} tabsAutoOff: {fileID: 455930358} tabsAutoTop: {fileID: 103848543} tabsAutoLeft: {fileID: 1349177903} @@ -6812,12 +7693,13 @@ RectTransform: - {fileID: 1170891611} - {fileID: 1398590894} - {fileID: 604462432} + - {fileID: 302656573} m_Father: {fileID: 883330324} - m_RootOrder: 4 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 500, y: -1275} + m_AnchoredPosition: {x: 500, y: -900} m_SizeDelta: {x: 800, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &949458751 @@ -8299,6 +9181,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1107460991} m_CullTransparentMesh: 0 +--- !u!1 &1113432055 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1113432056} + - component: {fileID: 1113432058} + - component: {fileID: 1113432057} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1113432056 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113432055} + 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: 2050228444} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1113432057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113432055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &1113432058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113432055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 980, y: 50} + m_Spacing: {x: 0, y: 10} + m_Constraint: 1 + m_ConstraintCount: 1 --- !u!1 &1113839878 GameObject: m_ObjectHideFlags: 0 @@ -8310,8 +9267,6 @@ GameObject: - component: {fileID: 1113839879} - component: {fileID: 1113839882} - component: {fileID: 1113839881} - - component: {fileID: 1113839883} - - component: {fileID: 1113839884} m_Layer: 5 m_Name: Canvas m_TagString: Untagged @@ -8384,126 +9339,6 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 ---- !u!114 &1113839883 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1113839878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 054c7813b6beaab439c025873fec9b94, type: 3} - m_Name: - m_EditorClassIdentifier: - hideAppHandler: {fileID: 519013809} - renameHandler: {fileID: 686608802} ---- !u!114 &1113839884 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1113839878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 472cd28b041d447a4b0f2b5c603034aa, type: 3} - m_Name: - m_EditorClassIdentifier: - trackingSpace: {fileID: 881994610} - primaryButton: 8192 - secondaryButton: 10 - tertiaryButton: 5 - excludeLayers: - serializedVersion: 2 - m_Bits: 0 - raycastDistance: 500 - onHoverEnter: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1113839883} - m_MethodName: OnHoverEnter - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - onHoverExit: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1113839883} - m_MethodName: OnHoverExit - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - onHover: - m_PersistentCalls: - m_Calls: [] - m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - onPrimarySelect: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1113839883} - m_MethodName: OnSelected - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - onSecondarySelect: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1113839883} - m_MethodName: OnSelectedPressedBorY - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - onTertiarySelect: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1113839883} - m_MethodName: OnSelectedPressedAorX - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - activeController: 0 --- !u!1 &1119529390 GameObject: m_ObjectHideFlags: 0 @@ -8618,7 +9453,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 300, y: -275} + m_AnchoredPosition: {x: 300, y: -150} m_SizeDelta: {x: 400, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1133097219 @@ -9536,6 +10371,7 @@ RectTransform: - {fileID: 684313057} - {fileID: 397261754} - {fileID: 883330324} + - {fileID: 691642881} m_Father: {fileID: 1113839879} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -14096,6 +14932,163 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1748840623} m_CullTransparentMesh: 0 +--- !u!1 &1764737580 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1764737581} + - component: {fileID: 1764737583} + - component: {fileID: 1764737582} + m_Layer: 5 + m_Name: Background_Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1764737581 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1764737580} + 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: 726467103} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -75} + m_SizeDelta: {x: 550, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1764737582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1764737580} + 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_text: Background + 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_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 86 + m_fontSizeBase: 86 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 1764737582} + characterCount: 10 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1764737583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1764737580} + m_CullTransparentMesh: 0 --- !u!1 &1779503884 GameObject: m_ObjectHideFlags: 0 @@ -15450,6 +16443,7 @@ MonoBehaviour: m_EditorClassIdentifier: panelContainer: {fileID: 1950750521} scrollContainer: {fileID: 673732997} + skyboxHandler: {fileID: 49821816} topTabContainer: {fileID: 1608941300} leftTabContainer: {fileID: 1585122602} rightTabContainer: {fileID: 870628887} @@ -15742,7 +16736,7 @@ Transform: m_GameObject: {fileID: 1890535731} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: -0.1, z: 0} - m_LocalScale: {x: 12, y: 0.19999999, z: 12} + m_LocalScale: {x: 6, y: 0.19999999, z: 6} m_Children: [] m_Father: {fileID: 432675594} m_RootOrder: 0 @@ -16135,6 +17129,8 @@ GameObject: m_Component: - component: {fileID: 1950750522} - component: {fileID: 1950750523} + - component: {fileID: 1950750525} + - component: {fileID: 1950750524} m_Layer: 5 m_Name: Panel_Container m_TagString: Untagged @@ -16181,6 +17177,126 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_AllowSwitchOff: 0 +--- !u!114 &1950750524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950750521} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 472cd28b041d447a4b0f2b5c603034aa, type: 3} + m_Name: + m_EditorClassIdentifier: + trackingSpace: {fileID: 881994610} + primaryButton: 8192 + secondaryButton: 10 + tertiaryButton: 5 + excludeLayers: + serializedVersion: 2 + m_Bits: 0 + raycastDistance: 500 + onHoverEnter: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1950750525} + m_MethodName: OnHoverEnter + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHoverExit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1950750525} + m_MethodName: OnHoverExit + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHover: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onPrimarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1950750525} + m_MethodName: OnSelected + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onSecondarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1950750525} + m_MethodName: OnSelectedPressedBorY + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onTertiarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1950750525} + m_MethodName: OnSelectedPressedAorX + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + activeController: 0 +--- !u!114 &1950750525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950750521} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 054c7813b6beaab439c025873fec9b94, type: 3} + m_Name: + m_EditorClassIdentifier: + hideAppHandler: {fileID: 519013809} + renameHandler: {fileID: 686608802} --- !u!1 &1962314895 GameObject: m_ObjectHideFlags: 0 @@ -16418,7 +17534,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -1800} + m_AnchoredPosition: {x: 100, y: -1675} m_SizeDelta: {x: 0, y: 200} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1993578282 @@ -16892,7 +18008,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -525} + m_AnchoredPosition: {x: 100, y: -400} m_SizeDelta: {x: 0, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2027300714 @@ -17326,6 +18442,96 @@ PrefabInstance: objectReference: {fileID: 1644749160} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 411c0b99f954d1d4884fa0d6256933cf, type: 3} +--- !u!1 &2050228443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2050228444} + - component: {fileID: 2050228447} + - component: {fileID: 2050228446} + - component: {fileID: 2050228445} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2050228444 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2050228443} + 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: + - {fileID: 1113432056} + m_Father: {fileID: 49821815} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -69.99999} + m_SizeDelta: {x: 1000, y: 460} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2050228445 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2050228443} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &2050228446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2050228443} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + 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: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &2050228447 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2050228443} + m_CullTransparentMesh: 0 --- !u!1 &2057963232 GameObject: m_ObjectHideFlags: 0 @@ -17401,6 +18607,163 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2057963232} m_CullTransparentMesh: 0 +--- !u!1 &2062144641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2062144642} + - component: {fileID: 2062144644} + - component: {fileID: 2062144643} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2062144642 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2062144641} + 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: 2120155537} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 1010, y: -75} + m_SizeDelta: {x: 2000, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2062144643 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2062144641} + 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_text: Default + 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_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 86 + m_fontSizeBase: 86 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 2062144643} + characterCount: 7 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &2062144644 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2062144641} + m_CullTransparentMesh: 0 --- !u!1 &2063273158 GameObject: m_ObjectHideFlags: 0 @@ -18417,6 +19780,179 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2120155536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2120155537} + - component: {fileID: 2120155542} + - component: {fileID: 2120155541} + - component: {fileID: 2120155540} + - component: {fileID: 2120155539} + - component: {fileID: 2120155538} + m_Layer: 5 + m_Name: Background_Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2120155537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120155536} + 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: + - {fileID: 2062144642} + m_Father: {fileID: 726467103} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 1550, y: -75} + m_SizeDelta: {x: 2000, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2120155538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120155536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!65 &2120155539 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120155536} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2000, y: 150, z: 0.05} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &2120155540 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120155536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.25490198, g: 0.44313726, b: 0.6901961, a: 1} + m_HighlightedColor: {r: 0.38875046, g: 0.66205376, b: 0.8584906, a: 1} + m_PressedColor: {r: 0.22352941, g: 0.5568628, b: 0.8392157, a: 1} + m_SelectedColor: {r: 0.29307583, g: 0.58710396, b: 0.8396226, 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: 2120155541} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 883330328} + m_MethodName: ShowSkyboxList + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2120155541 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120155536} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &2120155542 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120155536} + m_CullTransparentMesh: 0 --- !u!1 &2124784239 GameObject: m_ObjectHideFlags: 0 @@ -18563,3 +20099,176 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2124784239} m_CullTransparentMesh: 0 +--- !u!1 &2130504545 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2130504546} + - component: {fileID: 2130504551} + - component: {fileID: 2130504550} + - component: {fileID: 2130504549} + - component: {fileID: 2130504548} + - component: {fileID: 2130504547} + m_Layer: 5 + m_Name: Button_Cancel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2130504546 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2130504545} + 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: + - {fileID: 281343928} + m_Father: {fileID: 49821815} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 500, y: -569.1666} + m_SizeDelta: {x: 980, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2130504547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2130504545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!65 &2130504548 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2130504545} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 980, y: 45, z: 0.07} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &2130504549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2130504545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.25490198, g: 0.44313726, b: 0.6901961, a: 1} + m_HighlightedColor: {r: 0.38875046, g: 0.66205376, b: 0.8584906, a: 1} + m_PressedColor: {r: 0.22352941, g: 0.5568628, b: 0.8392157, a: 1} + m_SelectedColor: {r: 0.29307583, g: 0.58710396, b: 0.8396226, 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: 2130504550} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 49821816} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2130504550 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2130504545} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &2130504551 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2130504545} + m_CullTransparentMesh: 0 diff --git a/Assets/Scripts/AppEntry.cs b/Assets/Scripts/AppEntry.cs index e21c3d7..8127ba6 100644 --- a/Assets/Scripts/AppEntry.cs +++ b/Assets/Scripts/AppEntry.cs @@ -1,11 +1,17 @@ using System.Collections; using System.Collections.Generic; +using TMPro; using UnityEngine; public class AppEntry : MonoBehaviour { + // Sprite gameobject public GameObject sprite; + // TMP text + public TextMeshProUGUI text; + + // App entry contents public string packageId; public string appName; public string externalIconPath; diff --git a/Assets/Scripts/Config.cs b/Assets/Scripts/Config.cs index 9023d1c..3e5a30f 100644 --- a/Assets/Scripts/Config.cs +++ b/Assets/Scripts/Config.cs @@ -28,6 +28,9 @@ namespace QuestAppLauncher public const string DownloadRepo_Type_GitHub = "github"; public const string DownloadRepo_Default = @"tverona1/QuestAppLauncher_Assets/releases/latest"; + // Background + public const string Background_Default = "default"; + /// /// Grid size /// @@ -66,6 +69,9 @@ namespace QuestAppLauncher // Whether to auto-download updates public bool autoUpdate = false; + // Background image path + public string background = Background_Default; + // Github download repos public List downloadRepos = new List(); diff --git a/Assets/Scripts/GridPopulation.cs b/Assets/Scripts/GridPopulation.cs index ba29924..47cd434 100644 --- a/Assets/Scripts/GridPopulation.cs +++ b/Assets/Scripts/GridPopulation.cs @@ -34,6 +34,9 @@ namespace QuestAppLauncher // Scroll container game object public GameObject scrollContainer; + // SKybox handler + public SkyboxHandler skyboxHandler; + // Tab containers public GameObject topTabContainer; public GameObject leftTabContainer; @@ -101,6 +104,12 @@ namespace QuestAppLauncher // Load configuration var config = ConfigPersistence.LoadConfig(); + // Set skybox + if (!isRenameMode) + { + this.skyboxHandler.SetSkybox(config.background); + } + // Process apps in background var apps = await Task.Run(() => { @@ -377,7 +386,7 @@ namespace QuestAppLauncher var newObj = (GameObject)Instantiate(this.prefabCell, transform); // Set app entry info - var appEntry = newObj.GetComponent("AppEntry") as AppEntry; + var appEntry = newObj.GetComponent(); appEntry.packageId = app.PackageName; appEntry.appName = app.AppName; appEntry.isRenameMode = isRenameMode; @@ -401,8 +410,7 @@ namespace QuestAppLauncher } // Set app name in text - var text = newObj.transform.Find("AppName").GetComponentInChildren(); - text.text = app.AppName; + appEntry.text.text = app.AppName; } } #endregion diff --git a/Assets/Scripts/SettingsHandler.cs b/Assets/Scripts/SettingsHandler.cs index f3d85f2..3ae70df 100644 --- a/Assets/Scripts/SettingsHandler.cs +++ b/Assets/Scripts/SettingsHandler.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.IO; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; @@ -21,7 +22,9 @@ namespace QuestAppLauncher public GameObject gridPopulation; public GameObject show2DToggle; public GameObject autoUpdateToggle; + public GameObject skyBoxButton; public DownloadStatusIndicator downloadStatusIndicator; + public SkyboxHandler skyboxHandler; public Toggle tabsAutoOff; public Toggle tabsAutoTop; @@ -57,6 +60,9 @@ namespace QuestAppLauncher // Load config this.config = ConfigPersistence.LoadConfig(); + // Skybox callback + this.skyboxHandler.OnSkyboxSelected = OnSkyboxSelected; + // Set current cols & rows var colsSlider = this.gridCols.GetComponent(); colsSlider.value = this.config.gridSize.cols; @@ -75,6 +81,9 @@ namespace QuestAppLauncher // Set 2D toggle this.show2DToggle.GetComponent().SetIsOnWithoutNotify(this.config.show2D); + // Set skybox button text + this.skyBoxButton.GetComponentInChildren().text = SkyboxHandler.GetSkyboxNameFromPath(this.config.background); + // Set auto-update toggle this.autoUpdateToggle.GetComponent().SetIsOnWithoutNotify(this.config.autoUpdate); @@ -142,6 +151,19 @@ namespace QuestAppLauncher } } + public void OnSkyboxSelected(string skyboxPath) + { + // Update text + this.skyBoxButton.GetComponentInChildren().text = SkyboxHandler.GetSkyboxNameFromPath(skyboxPath); + + // Save config with new skybox selection + if (!this.config.background.Equals(skyboxPath, StringComparison.OrdinalIgnoreCase)) + { + this.config.background = skyboxPath; + ConfigPersistence.SaveConfig(this.config); + } + } + public void DeleteRenameFiles() { Debug.Log("Delete Rename files"); @@ -166,6 +188,11 @@ namespace QuestAppLauncher rowsText.text = string.Format("{0} Rows", rows); } + public void ShowSkyboxList() + { + this.skyboxHandler.ShowList(); + } + private bool HasUsageStatsPermissions() { // Check if we have UsageStats permission diff --git a/Assets/Scripts/SkyboxEntry.cs b/Assets/Scripts/SkyboxEntry.cs new file mode 100644 index 0000000..ba481a4 --- /dev/null +++ b/Assets/Scripts/SkyboxEntry.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; + +public class SkyboxEntry : MonoBehaviour +{ + // TMP text + public TextMeshProUGUI text; + + // Relative path to skybox + public string path; +} diff --git a/Assets/Scripts/SkyboxEntry.cs.meta b/Assets/Scripts/SkyboxEntry.cs.meta new file mode 100644 index 0000000..457866f --- /dev/null +++ b/Assets/Scripts/SkyboxEntry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e773b6a61a5a604388f69b6f343f8db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/SkyboxHandler.cs b/Assets/Scripts/SkyboxHandler.cs new file mode 100644 index 0000000..d20bfd0 --- /dev/null +++ b/Assets/Scripts/SkyboxHandler.cs @@ -0,0 +1,383 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using TMPro; +using UnityEngine; + +namespace QuestAppLauncher +{ + public class SkyboxHandler : MonoBehaviour + { + // Max width and height of skybox image. + // Anything larger we'll scale down. We restrict it primarily due to memory constraints. + const int MaxWidth = 4096; + const int MaxHeight = 4096; + + // Skybox selected callback + public Action OnSkyboxSelected; + + // Skyview List Container + public GameObject skyviewListContainer; + + // Skybox list entry prefab + public GameObject prefabSkyboxEntry; + + // Content transform + public Transform contentTransform; + + // Default skybox + private Material defaultSkybox; + + // Skybox folder + private const string SkyboxFolder = "backgrounds"; + + // Extension search for images + const string JpgExtSearch = "*.jpg"; + const string PngExtSearch = "*.png"; + + /// + /// Show the skybox list dialog + /// + public async void ShowList() + { + // Show the dialog + this.skyviewListContainer.SetActive(true); + + // Populate the list + await PopulateAsync(); + } + + public void OnCancel() + { + // Hide the dialog + this.skyviewListContainer.SetActive(false); + } + + public void OnHoverEnter(Transform t) + { + var appEntry = t.gameObject.GetComponent("SkyboxEntry") as SkyboxEntry; + if (null != appEntry) + { + // Enable border + EnableBorder(t, true); + } + } + + public void OnHoverExit(Transform t) + { + var appEntry = t.gameObject.GetComponent("SkyboxEntry") as SkyboxEntry; + if (null != appEntry) + { + // Disable border + EnableBorder(t, false); + } + } + + public async void OnSelected(Transform t) + { + var entry = t.gameObject.GetComponent("SkyboxEntry") as SkyboxEntry; + if (null != entry) + { + // Set the skybox + SetSkybox(entry.path); + this.skyviewListContainer.SetActive(false); + + // Callback if registered + if (null != OnSkyboxSelected) + { + OnSkyboxSelected(entry.path); + } + } + } + + /// + /// Return skybox name given its path (i.e. filename w/o extension) + /// + /// Path to skybox image + /// + public static string GetSkyboxName(string skyboxPath) + { + try + { + return Path.GetFileNameWithoutExtension(skyboxPath); + } + catch (Exception e) + { + Debug.LogFormat("Error trying to get filename of skybox: {0} ({1})", skyboxPath, e.Message); + } + + // Fall back to default + return Config.Background_Default; + } + + /// + /// Sets the skybox. Supports either equirectangular or cubemap, auto chosen based on aspect ratio. + /// + /// Path to skybox image + /// + public async Task SetSkybox(string skyboxPath) + { + Debug.LogFormat("Setting skybox to '{0}'", skyboxPath); + + if (null == this.defaultSkybox) + { + // Save off the default skybox + this.defaultSkybox = RenderSettings.skybox; + } + + if (IsDefaultSkybox(skyboxPath)) + { + if (RenderSettings.skybox == this.defaultSkybox) + { + // Skip if skybox is already the default + Debug.LogFormat("Skybox already default, skipping."); + return; + } + + // Set default skybox + SetDefaultSkybox(); + return; + } + + // Read the image + int imageHeight = 0; + int imageWidth = 0; + var image = await Task.Run(() => + { + AndroidJNI.AttachCurrentThread(); + + try + { + using (AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) + using (AndroidJavaObject currentActivity = unity.GetStatic("currentActivity")) + { + // Call Android plugin to load the raw image. + var jo = currentActivity.CallStatic("loadRawImage", MakeAbsoluteSkymapPath(skyboxPath), MaxHeight, MaxWidth); + if (null == jo) + { + return null; + } + + // Get the width, height and raw image data. + imageWidth = jo.Get("width"); + imageHeight = jo.Get("height"); + var rawImage = (byte[])(Array)jo.Get("rawImage"); + + // The image is in ARGB_8888 format (Alpha, Red, Green, Blue - each 1 byte). In addition, (0, 0) coordinates are bottom-left. + // Unity expects RGBA (with Alpha as the last byte) and origin at top-left. So we need to compensate for both. + + // Shift alpha + for (var i = 0; i < rawImage.Length / 4; i++) + { + var tmp = rawImage[i * 4 + 3]; + rawImage[i * 4 + 3] = rawImage[i * 4 + 2]; + rawImage[i * 4 + 2] = rawImage[i * 4 + 1]; + rawImage[i * 4 + 1] = rawImage[i * 4]; + rawImage[i * 4] = tmp; + } + + // Swap rows + var row = new byte[imageWidth * 4]; + for (var i = 0; i < imageHeight / 2; i++) + { + Buffer.BlockCopy(rawImage, i * imageWidth * 4, row, 0, imageWidth * 4); + Buffer.BlockCopy(rawImage, (imageHeight - i - 1) * imageWidth * 4, rawImage, i * imageWidth * 4, imageWidth * 4); + Buffer.BlockCopy(row, 0, rawImage, (imageHeight - i - 1) * imageWidth * 4, imageWidth * 4); + } + + return rawImage; + } + } + catch (Exception e) + { + // Fall back to using the apk icon + Debug.LogFormat("Error decoding image [{0}]: {1}", skyboxPath, e.Message); + return null; + } + finally + { + AndroidJNI.DetachCurrentThread(); + } + }); + + if (null == image) + { + // Fall back to default skybox + SetDefaultSkybox(); + return; + } + + try + { + // Load the image into a 2D texture. We decode in background thread (above) in Java and load the raw image here + // because Texture2D.LoadImage on the main thread can cause significant freezes since it is not async. + var texture = new Texture2D(imageWidth, imageHeight, TextureFormat.ARGB32, false); + texture.filterMode = FilterMode.Trilinear; + texture.anisoLevel = 16; + texture.LoadRawTextureData(image); + texture.Apply(); + + Material material; + if (4 * texture.height == 3 * texture.width) + { + // Texture is a cube map (4:3 aspect ratio). + // Load cubemap shader. Also rotate x-axis by 180 degrees to compensate for platform-specific rendering differences + // (see https://docs.unity3d.com/Manual/SL-PlatformDifferences.html). + Debug.LogFormat("Setting cubemap skybox"); + material = new Material(Shader.Find("skybox/cube")); + material.SetFloat("_RotationX", 180); + material.SetTexture("_Tex", CubemapFromTexture2D(texture)); + } + else + { + // Texture is equirectangular + Debug.LogFormat("Setting equirectangular skybox"); + material = new Material(Shader.Find("skybox/equirectangular")); + material.SetTexture("_Tex", texture); + } + + RenderSettings.skybox = material; + DynamicGI.UpdateEnvironment(); + } + catch (Exception e) + { + // Fall back to default skybox + Debug.LogFormat("Exception: {0}", e.Message); + SetDefaultSkybox(); + } + } + + /// + /// Gets cubemap from a 2D texture (which represents 6-sided cube) + /// + /// + /// + private static Cubemap CubemapFromTexture2D(Texture2D texture) + { + int cubedim = texture.width / 4; + Cubemap cube = new Cubemap(cubedim, TextureFormat.ARGB32, false); + cube.SetPixels(texture.GetPixels(0, cubedim, cubedim, cubedim), CubemapFace.NegativeX); + cube.SetPixels(texture.GetPixels(cubedim, cubedim, cubedim, cubedim), CubemapFace.PositiveZ); + cube.SetPixels(texture.GetPixels(2 * cubedim, cubedim, cubedim, cubedim), CubemapFace.PositiveX); + cube.SetPixels(texture.GetPixels(3 * cubedim, cubedim, cubedim, cubedim), CubemapFace.NegativeZ); + cube.SetPixels(texture.GetPixels(cubedim, 0, cubedim, cubedim), CubemapFace.PositiveY); + cube.SetPixels(texture.GetPixels(cubedim, 2 * cubedim, cubedim, cubedim), CubemapFace.NegativeY); + cube.Apply(); + return cube; + } + + public void SetDefaultSkybox() + { + Debug.LogFormat("Setting default skybox"); + RenderSettings.skybox = this.defaultSkybox; + DynamicGI.UpdateEnvironment(); + } + + /// + /// Populates the list of skybox images available for pick from + /// + /// + private async Task PopulateAsync() + { + // Get list of skyboxes in background + var skyboxes = await Task.Run(() => + { + return EnumerateSkyboxFiles(); + }); + + // Clear existing list + foreach (Transform child in this.contentTransform) + { + GameObject.Destroy(child.gameObject); + } + + // Populate list of skyboxes + foreach(var skybox in skyboxes.OrderBy(key => key.Key)) + { + var newObj = (GameObject)Instantiate(this.prefabSkyboxEntry, this.contentTransform); + var entry = newObj.GetComponent(); + entry.text.text = skybox.Key; + entry.path = skybox.Value; + } + } + + /// + /// Construct map of backgrond name -> path + /// + /// Returned map + private Dictionary EnumerateSkyboxFiles() + { + var skyboxes = new Dictionary(); + + // Add default + skyboxes[Config.Background_Default] = Config.Background_Default; + + // Enumerate jpg files + foreach (var filePath in Directory.GetFiles( + GetOrCreateSkymapPath(), JpgExtSearch)) + { + skyboxes[Path.GetFileNameWithoutExtension(filePath)] = MakeRelativeSkymapPath(filePath); + } + + // Enumerate png files + foreach (var filePath in Directory.GetFiles( + GetOrCreateSkymapPath(), PngExtSearch)) + { + skyboxes[Path.GetFileNameWithoutExtension(filePath)] = MakeRelativeSkymapPath(filePath); + } + + return skyboxes; + } + + private void EnableBorder(Transform t, bool enable) + { + var border = t.Find("Border"); + border?.gameObject.SetActive(enable); + } + + static private string GetOrCreateSkymapPath() + { + string path = Path.Combine(UnityEngine.Application.persistentDataPath, SkyboxFolder); + Directory.CreateDirectory(path); + return path; + } + + static private string MakeRelativeSkymapPath(string path) + { + return path.Substring(UnityEngine.Application.persistentDataPath.Length + 1); + } + + static private string MakeAbsoluteSkymapPath(string path) + { + return Path.Combine(UnityEngine.Application.persistentDataPath, path); + } + + static public bool IsDefaultSkybox(string path) + { + return Config.Background_Default.Equals(path, StringComparison.OrdinalIgnoreCase); + } + + static public string GetSkyboxNameFromPath(string path) + { + if (IsDefaultSkybox(path)) + { + return Config.Background_Default; + } + + try + { + return Path.GetFileNameWithoutExtension(path); + } + catch (Exception e) + { + // Fall back to default + Debug.LogFormat("Error trying to get filename of path: {0} ({1})", path, e.Message); + } + + return Config.Background_Default; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/SkyboxHandler.cs.meta b/Assets/Scripts/SkyboxHandler.cs.meta new file mode 100644 index 0000000..c86ae4e --- /dev/null +++ b/Assets/Scripts/SkyboxHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 30eacec5c6a73a14894eea6fafe7a53a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders.meta b/Assets/Shaders.meta new file mode 100644 index 0000000..2dcccbc --- /dev/null +++ b/Assets/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 726d81a23d411f7499ccbe375f149915 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Cube.shader b/Assets/Shaders/Cube.shader new file mode 100644 index 0000000..e45ab9c --- /dev/null +++ b/Assets/Shaders/Cube.shader @@ -0,0 +1,97 @@ +Shader "skybox/cube" { +Properties { + _Tint ("Tint Color", Color) = (.5, .5, .5, .5) + [Gamma] _Exposure ("Exposure", Range(0, 8)) = 1.0 + _RotationX ("RotationX", Range(0, 360)) = 0 + _RotationY ("RotationY", Range(0, 360)) = 0 + _RotationZ ("RotationZ", Range(0, 360)) = 0 + [NoScaleOffset] _Tex ("Cubemap (HDR)", Cube) = "grey" {} +} + +SubShader { + Tags { "Queue"="Background" "RenderType"="Background" "PreviewType"="Skybox" } + Cull Off ZWrite Off + + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + + samplerCUBE _Tex; + half4 _Tex_HDR; + half4 _Tint; + half _Exposure; + float _RotationX; + float _RotationY; + float _RotationZ; + + float3 RotateAroundXInDegrees (float3 vertex, float degrees) + { + float alpha = degrees * UNITY_PI / 180.0; + float sina, cosa; + sincos(alpha, sina, cosa); + float2x2 m = float2x2(cosa, -sina, sina, cosa); + return float3(vertex.x, mul(m, vertex.yz)).xyz; //yzx + } + + float3 RotateAroundYInDegrees (float3 vertex, float degrees) + { + float alpha = degrees * UNITY_PI / 180.0; + float sina, cosa; + sincos(alpha, sina, cosa); + float2x2 m = float2x2(cosa, -sina, sina, cosa); + return float3(mul(m, vertex.xz), vertex.y).xzy; + } + + float3 RotateAroundZInDegrees (float3 vertex, float degrees) + { + float alpha = degrees * UNITY_PI / 180.0; + float sina, cosa; + sincos(alpha, sina, cosa); + float2x2 m = float2x2(cosa, -sina, sina, cosa); + return float3(mul(m, vertex.xy), vertex.z).zxy; + } + + struct appdata_t { + float4 vertex : POSITION; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f { + float4 vertex : SV_POSITION; + float3 texcoord : TEXCOORD0; + UNITY_VERTEX_OUTPUT_STEREO + }; + + v2f vert (appdata_t v) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + // Only rotate on X-axis. Can add othere axes later if needed. + float3 rotated = RotateAroundXInDegrees(v.vertex, _RotationX); + o.vertex = UnityObjectToClipPos(rotated); + o.texcoord = v.vertex.xyz; + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + half4 tex = texCUBE (_Tex, i.texcoord); + half3 c = DecodeHDR (tex, _Tex_HDR); + c = c * _Tint.rgb * unity_ColorSpaceDouble.rgb; + c *= _Exposure; + return half4(c, 1); + } + ENDCG + } +} + + +Fallback Off + +} \ No newline at end of file diff --git a/Assets/Shaders/Cube.shader.meta b/Assets/Shaders/Cube.shader.meta new file mode 100644 index 0000000..96dae56 --- /dev/null +++ b/Assets/Shaders/Cube.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9b9fb5719097baa4ea45fe71d1241070 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Equirectangular.shader b/Assets/Shaders/Equirectangular.shader new file mode 100644 index 0000000..8af8c62 --- /dev/null +++ b/Assets/Shaders/Equirectangular.shader @@ -0,0 +1,72 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "skybox/equirectangular" { + Properties { + _Tint ("Tint Color", Color) = (.5, .5, .5, .5) + [Gamma] _Exposure ("Exposure", Range(0, 8)) = 1.0 + _Rotation ("Rotation", Range(0, 360)) = 0 + [NoScaleOffset] _Tex ("Panorama (HDR)", 2D) = "grey" {} + } + + SubShader { + Tags { "Queue"="Background" "RenderType"="Background" "PreviewType"="Skybox" } + Cull Off ZWrite Off + + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + sampler2D _Tex; + half4 _Tex_HDR; + half4 _Tint; + half _Exposure; + float _Rotation; + + float4 RotateAroundYInDegrees (float4 vertex, float degrees) + { + float alpha = degrees * UNITY_PI / 180.0; + float sina, cosa; + sincos(alpha, sina, cosa); + float2x2 m = float2x2(cosa, -sina, sina, cosa); + return float4(mul(m, vertex.xz), vertex.yw).xzyw; + } + + struct appdata_t { + float4 vertex : POSITION; + }; + + struct v2f { + float4 vertex : SV_POSITION; + float3 texcoord : TEXCOORD0; + }; + + v2f vert (appdata_t v) + { + v2f o; + o.vertex = UnityObjectToClipPos(RotateAroundYInDegrees(v.vertex, _Rotation)); + o.texcoord = v.vertex.xyz; + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + float3 dir = normalize(i.texcoord); + float2 longlat = float2(atan2(dir.x, dir.z) + UNITY_PI, acos(-dir.y)); + float2 uv = longlat / float2(2.0 * UNITY_PI, UNITY_PI); + half4 tex = tex2D (_Tex, uv); + half3 c = DecodeHDR (tex, _Tex_HDR); + c = c * _Tint.rgb * unity_ColorSpaceDouble.rgb; + c *= _Exposure; + + return half4(c, 1); + } + ENDCG + } + } + + Fallback Off +} \ No newline at end of file diff --git a/Assets/Shaders/Equirectangular.shader.meta b/Assets/Shaders/Equirectangular.shader.meta new file mode 100644 index 0000000..bba74b7 --- /dev/null +++ b/Assets/Shaders/Equirectangular.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ee5d41dde463f084da6749a67e1f4c18 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/BorderSpriteThin.png b/Assets/Sprites/BorderSpriteThin.png new file mode 100644 index 0000000..19cb905 Binary files /dev/null and b/Assets/Sprites/BorderSpriteThin.png differ diff --git a/Assets/Sprites/BorderSpriteThin.png.meta b/Assets/Sprites/BorderSpriteThin.png.meta new file mode 100644 index 0000000..8fba5b1 --- /dev/null +++ b/Assets/Sprites/BorderSpriteThin.png.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: b6bb78fcd6b3a574191fd2967990903b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 4, y: 4, z: 4, w: 4} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 82c7d12..df689b1 100644 --- a/ProjectSettings/GraphicsSettings.asset +++ b/ProjectSettings/GraphicsSettings.asset @@ -39,6 +39,9 @@ GraphicsSettings: - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 4800000, guid: ee5d41dde463f084da6749a67e1f4c18, type: 3} + - {fileID: 4800000, guid: 9b9fb5719097baa4ea45fe71d1241070, type: 3} + - {fileID: 108, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}