init commit
commit
1bf6ce0f8f
|
|
@ -0,0 +1 @@
|
||||||
|
.DS_Store
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1e668c30d2b5441319892df260a461c3
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 86f3aa8f033904d33b51791a596a13a2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
|
||||||
|
namespace Guru.Editor
|
||||||
|
{
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class GuruUIKitManager
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 83dd96b84b388468cb4495456777eb88
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6ed3e7feb6b345509729043f53362200
|
||||||
|
timeCreated: 1705375326
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2c16a0b4ca94643b587f134ab177ebec
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8e615bcd21ad42649f3a3d925930c77c
|
||||||
|
timeCreated: 1704872501
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f8f09b88c50184ce0bccc2bd84a5dcb4
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,21 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ce62a292e655c479ebcb55b0d2096d06
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Arial
|
||||||
|
fallbackFontReferences: []
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3c521c1144fc43eca5ce0d6b6a49c1a
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 01108c44563ae463a890f962b34502b7
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,31 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bf74045e2ab2f457891455b718ed77ba
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: 688b4b07b213545a8b732406301800b4, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 3ef596c41d454424a985096955aae626, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 7ed78d5bd4a544e58b98ec83953e5972, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e43a0cf3f5283438fa24bb366b16432a, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 17e515bef00ab406bb90433be24950b8, type: 3}
|
||||||
|
- {fileID: 12800000, guid: a670730b6abd2459cbe52e05e9c5959f, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 01108c44563ae463a890f962b34502b7, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,26 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a670730b6abd2459cbe52e05e9c5959f
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: e43a0cf3f5283438fa24bb366b16432a, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 01108c44563ae463a890f962b34502b7, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,29 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3ef596c41d454424a985096955aae626
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: 688b4b07b213545a8b732406301800b4, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e43a0cf3f5283438fa24bb366b16432a, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 17e515bef00ab406bb90433be24950b8, type: 3}
|
||||||
|
- {fileID: 12800000, guid: a670730b6abd2459cbe52e05e9c5959f, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 01108c44563ae463a890f962b34502b7, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,27 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 17e515bef00ab406bb90433be24950b8
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: e43a0cf3f5283438fa24bb366b16432a, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: a670730b6abd2459cbe52e05e9c5959f, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 01108c44563ae463a890f962b34502b7, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,28 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 688b4b07b213545a8b732406301800b4
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: e43a0cf3f5283438fa24bb366b16432a, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 17e515bef00ab406bb90433be24950b8, type: 3}
|
||||||
|
- {fileID: 12800000, guid: a670730b6abd2459cbe52e05e9c5959f, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 01108c44563ae463a890f962b34502b7, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,23 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e0747024c7d2c4bf281295de30056948
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,30 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7ed78d5bd4a544e58b98ec83953e5972
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: 688b4b07b213545a8b732406301800b4, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 3ef596c41d454424a985096955aae626, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e43a0cf3f5283438fa24bb366b16432a, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 17e515bef00ab406bb90433be24950b8, type: 3}
|
||||||
|
- {fileID: 12800000, guid: a670730b6abd2459cbe52e05e9c5959f, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 01108c44563ae463a890f962b34502b7, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,25 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e43a0cf3f5283438fa24bb366b16432a
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Encode Sans Expanded
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: 1b3d1f322cd5a4cb7b6da5df4dbcae91, type: 3}
|
||||||
|
- {fileID: 12800000, guid: e0747024c7d2c4bf281295de30056948, type: 3}
|
||||||
|
- {fileID: 12800000, guid: 01108c44563ae463a890f962b34502b7, type: 3}
|
||||||
|
- {fileID: 12800000, guid: eb1c0f8b448344b4e9e78f1718855edf, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 44c47347adefa46c68f272e2d4e12e10
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,289 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!28 &-3218021044117043789
|
||||||
|
Texture2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: EncodeSansExpanded-Bold Atlas
|
||||||
|
m_ImageContentsHash:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 00000000000000000000000000000000
|
||||||
|
m_ForcedFallbackFormat: 4
|
||||||
|
m_DownscaleFallback: 0
|
||||||
|
m_IsAlphaChannelOptional: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Width: 0
|
||||||
|
m_Height: 0
|
||||||
|
m_CompleteImageSize: 0
|
||||||
|
m_MipsStripped: 0
|
||||||
|
m_TextureFormat: 1
|
||||||
|
m_MipCount: 1
|
||||||
|
m_IsReadable: 1
|
||||||
|
m_IsPreProcessed: 0
|
||||||
|
m_IgnoreMasterTextureLimit: 0
|
||||||
|
m_StreamingMipmaps: 0
|
||||||
|
m_StreamingMipmapsPriority: 0
|
||||||
|
m_VTOnly: 0
|
||||||
|
m_AlphaIsTransparency: 0
|
||||||
|
m_ImageCount: 1
|
||||||
|
m_TextureDimension: 2
|
||||||
|
m_TextureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_FilterMode: 1
|
||||||
|
m_Aniso: 1
|
||||||
|
m_MipBias: 0
|
||||||
|
m_WrapU: 0
|
||||||
|
m_WrapV: 0
|
||||||
|
m_WrapW: 0
|
||||||
|
m_LightmapFormat: 0
|
||||||
|
m_ColorSpace: 0
|
||||||
|
m_PlatformBlob:
|
||||||
|
image data: 0
|
||||||
|
_typelessdata:
|
||||||
|
m_StreamData:
|
||||||
|
serializedVersion: 2
|
||||||
|
offset: 0
|
||||||
|
size: 0
|
||||||
|
path:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
|
||||||
|
m_Name: EncodeSansExpanded-Bold SDF
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
hashCode: -1095770185
|
||||||
|
material: {fileID: 0}
|
||||||
|
materialHashCode: 138061367
|
||||||
|
m_Version: 1.1.0
|
||||||
|
m_SourceFontFileGUID: bf74045e2ab2f457891455b718ed77ba
|
||||||
|
m_SourceFontFile_EditorRef: {fileID: 0}
|
||||||
|
m_SourceFontFile: {fileID: 12800000, guid: bf74045e2ab2f457891455b718ed77ba, type: 3}
|
||||||
|
m_AtlasPopulationMode: 1
|
||||||
|
m_FaceInfo:
|
||||||
|
m_FaceIndex: 0
|
||||||
|
m_FamilyName: Encode Sans Expanded
|
||||||
|
m_StyleName: Bold
|
||||||
|
m_PointSize: 90
|
||||||
|
m_Scale: 1
|
||||||
|
m_UnitsPerEM: 0
|
||||||
|
m_LineHeight: 112.50001
|
||||||
|
m_AscentLine: 92.700005
|
||||||
|
m_CapLine: 67
|
||||||
|
m_MeanLine: 49
|
||||||
|
m_Baseline: 0
|
||||||
|
m_DescentLine: -19.800001
|
||||||
|
m_SuperscriptOffset: 92.700005
|
||||||
|
m_SuperscriptSize: 0.5
|
||||||
|
m_SubscriptOffset: -19.800001
|
||||||
|
m_SubscriptSize: 0.5
|
||||||
|
m_UnderlineOffset: -4.5
|
||||||
|
m_UnderlineThickness: 2.25
|
||||||
|
m_StrikethroughOffset: 19.6
|
||||||
|
m_StrikethroughThickness: 2.25
|
||||||
|
m_TabWidth: 26
|
||||||
|
m_GlyphTable: []
|
||||||
|
m_CharacterTable: []
|
||||||
|
m_AtlasTextures:
|
||||||
|
- {fileID: -3218021044117043789}
|
||||||
|
m_AtlasTextureIndex: 0
|
||||||
|
m_IsMultiAtlasTexturesEnabled: 0
|
||||||
|
m_ClearDynamicDataOnBuild: 1
|
||||||
|
m_UsedGlyphRects: []
|
||||||
|
m_FreeGlyphRects:
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 1023
|
||||||
|
m_Height: 1023
|
||||||
|
m_fontInfo:
|
||||||
|
Name:
|
||||||
|
PointSize: 0
|
||||||
|
Scale: 0
|
||||||
|
CharacterCount: 0
|
||||||
|
LineHeight: 0
|
||||||
|
Baseline: 0
|
||||||
|
Ascender: 0
|
||||||
|
CapHeight: 0
|
||||||
|
Descender: 0
|
||||||
|
CenterLine: 0
|
||||||
|
SuperscriptOffset: 0
|
||||||
|
SubscriptOffset: 0
|
||||||
|
SubSize: 0
|
||||||
|
Underline: 0
|
||||||
|
UnderlineThickness: 0
|
||||||
|
strikethrough: 0
|
||||||
|
strikethroughThickness: 0
|
||||||
|
TabWidth: 0
|
||||||
|
Padding: 0
|
||||||
|
AtlasWidth: 0
|
||||||
|
AtlasHeight: 0
|
||||||
|
atlas: {fileID: 0}
|
||||||
|
m_AtlasWidth: 1024
|
||||||
|
m_AtlasHeight: 1024
|
||||||
|
m_AtlasPadding: 9
|
||||||
|
m_AtlasRenderMode: 4165
|
||||||
|
m_glyphInfoList: []
|
||||||
|
m_KerningTable:
|
||||||
|
kerningPairs: []
|
||||||
|
m_FontFeatureTable:
|
||||||
|
m_GlyphPairAdjustmentRecords: []
|
||||||
|
fallbackFontAssets: []
|
||||||
|
m_FallbackFontAssetTable:
|
||||||
|
- {fileID: 11400000, guid: c76c74f50c1dd40fcb6cf1427679cb46, type: 2}
|
||||||
|
m_CreationSettings:
|
||||||
|
sourceFontFileName:
|
||||||
|
sourceFontFileGUID: bf74045e2ab2f457891455b718ed77ba
|
||||||
|
pointSizeSamplingMode: 0
|
||||||
|
pointSize: 90
|
||||||
|
padding: 9
|
||||||
|
packingMode: 0
|
||||||
|
atlasWidth: 1024
|
||||||
|
atlasHeight: 1024
|
||||||
|
characterSetSelectionMode: 7
|
||||||
|
characterSequence:
|
||||||
|
referencedFontAssetGUID:
|
||||||
|
referencedTextAssetGUID:
|
||||||
|
fontStyle: 0
|
||||||
|
fontStyleModifier: 0
|
||||||
|
renderMode: 4165
|
||||||
|
includeFontFeatures: 0
|
||||||
|
m_FontWeightTable:
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
fontWeights: []
|
||||||
|
normalStyle: 0
|
||||||
|
normalSpacingOffset: 0
|
||||||
|
boldStyle: 0.75
|
||||||
|
boldSpacing: 7
|
||||||
|
italicStyle: 35
|
||||||
|
tabSize: 10
|
||||||
|
--- !u!21 &6524006377389618200
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: EncodeSansExpanded-Bold Atlas Material
|
||||||
|
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3}
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Cube:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _FaceTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: -3218021044117043789}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OutlineTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _Ambient: 0.5
|
||||||
|
- _Bevel: 0.5
|
||||||
|
- _BevelClamp: 0
|
||||||
|
- _BevelOffset: 0
|
||||||
|
- _BevelRoundness: 0
|
||||||
|
- _BevelWidth: 0
|
||||||
|
- _BumpFace: 0
|
||||||
|
- _BumpOutline: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _CullMode: 0
|
||||||
|
- _Diffuse: 0.5
|
||||||
|
- _FaceDilate: 0
|
||||||
|
- _FaceUVSpeedX: 0
|
||||||
|
- _FaceUVSpeedY: 0
|
||||||
|
- _GlowInner: 0.05
|
||||||
|
- _GlowOffset: 0
|
||||||
|
- _GlowOuter: 0.05
|
||||||
|
- _GlowPower: 0.75
|
||||||
|
- _GradientScale: 10
|
||||||
|
- _LightAngle: 3.1416
|
||||||
|
- _MaskSoftnessX: 0
|
||||||
|
- _MaskSoftnessY: 0
|
||||||
|
- _OutlineSoftness: 0
|
||||||
|
- _OutlineUVSpeedX: 0
|
||||||
|
- _OutlineUVSpeedY: 0
|
||||||
|
- _OutlineWidth: 0
|
||||||
|
- _PerspectiveFilter: 0.875
|
||||||
|
- _Reflectivity: 10
|
||||||
|
- _ScaleRatioA: 0.9
|
||||||
|
- _ScaleRatioB: 0.73125
|
||||||
|
- _ScaleRatioC: 0.73125
|
||||||
|
- _ScaleX: 1
|
||||||
|
- _ScaleY: 1
|
||||||
|
- _ShaderFlags: 0
|
||||||
|
- _Sharpness: 0
|
||||||
|
- _SpecularPower: 2
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _TextureHeight: 1024
|
||||||
|
- _TextureWidth: 1024
|
||||||
|
- _UnderlayDilate: 0
|
||||||
|
- _UnderlayOffsetX: 0
|
||||||
|
- _UnderlayOffsetY: 0
|
||||||
|
- _UnderlaySoftness: 0
|
||||||
|
- _VertexOffsetX: 0
|
||||||
|
- _VertexOffsetY: 0
|
||||||
|
- _WeightBold: 0.75
|
||||||
|
- _WeightNormal: 0
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||||
|
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||||
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 14fe73bc5e31343c5bcdc67d1102883f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,107 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: EncodeSansExpanded-Regular SDF Bold
|
||||||
|
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3}
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Cube:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _FaceTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 7995524909903448683, guid: 69f41eb363a4c4caba72ecd2e9f113ea, type: 2}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OutlineTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _Ambient: 0.5
|
||||||
|
- _Bevel: 0.5
|
||||||
|
- _BevelClamp: 0
|
||||||
|
- _BevelOffset: 0
|
||||||
|
- _BevelRoundness: 0
|
||||||
|
- _BevelWidth: 0
|
||||||
|
- _BumpFace: 0
|
||||||
|
- _BumpOutline: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _CullMode: 0
|
||||||
|
- _Diffuse: 0.5
|
||||||
|
- _FaceDilate: 0
|
||||||
|
- _FaceUVSpeedX: 0
|
||||||
|
- _FaceUVSpeedY: 0
|
||||||
|
- _GlowInner: 0.05
|
||||||
|
- _GlowOffset: 0
|
||||||
|
- _GlowOuter: 0.05
|
||||||
|
- _GlowPower: 0.75
|
||||||
|
- _GradientScale: 10
|
||||||
|
- _LightAngle: 3.1416
|
||||||
|
- _MaskSoftnessX: 0
|
||||||
|
- _MaskSoftnessY: 0
|
||||||
|
- _OutlineSoftness: 0
|
||||||
|
- _OutlineUVSpeedX: 0
|
||||||
|
- _OutlineUVSpeedY: 0
|
||||||
|
- _OutlineWidth: 0.24
|
||||||
|
- _PerspectiveFilter: 0.875
|
||||||
|
- _Reflectivity: 10
|
||||||
|
- _ScaleRatioA: 0.9
|
||||||
|
- _ScaleRatioB: 0.73125
|
||||||
|
- _ScaleRatioC: 0.73125
|
||||||
|
- _ScaleX: 1
|
||||||
|
- _ScaleY: 1
|
||||||
|
- _ShaderFlags: 0
|
||||||
|
- _Sharpness: 0
|
||||||
|
- _SpecularPower: 2
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _TextureHeight: 1024
|
||||||
|
- _TextureWidth: 1024
|
||||||
|
- _UnderlayDilate: 0
|
||||||
|
- _UnderlayOffsetX: 0
|
||||||
|
- _UnderlayOffsetY: 0
|
||||||
|
- _UnderlaySoftness: 0
|
||||||
|
- _VertexOffsetX: 0
|
||||||
|
- _VertexOffsetY: 0
|
||||||
|
- _WeightBold: 0.75
|
||||||
|
- _WeightNormal: 0
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||||
|
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||||
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8949210efd0774a09bf80311432874fa
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 69f41eb363a4c4caba72ecd2e9f113ea
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c76c74f50c1dd40fcb6cf1427679cb46
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6b68ef7b5531946009a2f1b32235af23
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
1234567890
|
||||||
|
`~!@#$%^A&*()-=_+[]{}\|;:'",.<>?/
|
||||||
|
ABCDEFGHIGKLMNOPQRSTUVWXYZ
|
||||||
|
abcdefghigklmnopqrstuvwxyz
|
||||||
|
测试功能好的不行取消关闭打开标题是否大小上下欢迎你我他它按钮屏幕尺寸:
|
||||||
|
很抱歉听到这个谢谢!
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c6fd678cebef2485f976d117af8d2bdc
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,21 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4cb12b860c05d4fa395f7223626d40cd
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontNames:
|
||||||
|
- Microsoft YaHei
|
||||||
|
fallbackFontReferences: []
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a8c61b5305f2a4f87a3499e983d37da5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d5dab2f335bb04ded9b404fa08c7cc15
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 屏幕方向
|
||||||
|
/// </summary>
|
||||||
|
public enum ScreenOrientation
|
||||||
|
{
|
||||||
|
Portrait = 0,
|
||||||
|
Landscape,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface IDisposable
|
||||||
|
{
|
||||||
|
void Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IContext
|
||||||
|
{
|
||||||
|
//--------- Components -----------------
|
||||||
|
bool RegisterResManager<T>(T manager, string name = "") where T : IResManager, new();
|
||||||
|
T GetResManager<T>(string name = "") where T : IResManager, new();
|
||||||
|
|
||||||
|
bool RegisterModel<T>(T model, string name = "") where T : IModel, new();
|
||||||
|
T GetModel<T>(string name = "") where T : IModel, new();
|
||||||
|
|
||||||
|
bool RegisterController<T>(T controller, string name = "") where T : IController, new();
|
||||||
|
T GetController<T>(string name = "") where T : IController, new();
|
||||||
|
|
||||||
|
bool RegisterHelper<T>(T controller, string name = "") where T : IHelper, new();
|
||||||
|
T GetHelper<T>(string name = "") where T : IHelper, new();
|
||||||
|
|
||||||
|
|
||||||
|
void RegisterUpdater(IUpdater updater);
|
||||||
|
void UnregisterUpdater(IUpdater updater);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 消息管线
|
||||||
|
/// </summary>
|
||||||
|
public interface IEventPipeline
|
||||||
|
{
|
||||||
|
//--------- Event Bus ------------------
|
||||||
|
public void Subscribe<T>(Action<T> onReceiveMessage) where T : struct;
|
||||||
|
public void Unsubscribe<T>(Action<T> onReceiveMessage) where T : struct;
|
||||||
|
public void Send<T>(T message) where T : struct;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 控制器接口
|
||||||
|
/// </summary>
|
||||||
|
public interface IController
|
||||||
|
{
|
||||||
|
string Name { get;}
|
||||||
|
Context Context { get; set;}
|
||||||
|
void Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IModel
|
||||||
|
{
|
||||||
|
string Name { get;}
|
||||||
|
void Update(); // 数据刷新
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IView
|
||||||
|
{
|
||||||
|
string Name { get;}
|
||||||
|
void Refresh(); // UI 刷新
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IHelper
|
||||||
|
{
|
||||||
|
string Name { get;}
|
||||||
|
Context Context { get; set;}
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IResManager
|
||||||
|
{
|
||||||
|
string Name { get;}
|
||||||
|
Context Context { get; set;}
|
||||||
|
void Init();
|
||||||
|
T Load<T>(string resUri) where T : UnityEngine.Object;
|
||||||
|
void LoadAsync(string resUri, Action<ResLoadInfo> onLoaded);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 资源加载器
|
||||||
|
/// </summary>
|
||||||
|
public interface IResLoader
|
||||||
|
{
|
||||||
|
void LoadAsync(string resUri, Action<ResLoadInfo> onLoaded);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新器
|
||||||
|
/// </summary>
|
||||||
|
public interface IUpdater
|
||||||
|
{
|
||||||
|
void OnUpdate();
|
||||||
|
bool IsStopped { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 资源加载信息
|
||||||
|
/// </summary>
|
||||||
|
public class ResLoadInfo
|
||||||
|
{
|
||||||
|
public string uri = "";
|
||||||
|
|
||||||
|
public bool success = false; // 加载是否成功
|
||||||
|
|
||||||
|
public string bundleName = ""; // bundle包的名称
|
||||||
|
|
||||||
|
public object target = null;
|
||||||
|
|
||||||
|
public ResLoadInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResLoadInfo(string uri)
|
||||||
|
{
|
||||||
|
this.uri = uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GameObject AsGameObject() => target as GameObject;
|
||||||
|
public Texture AsTexture() => target as Texture;
|
||||||
|
public T AsObject<T>() where T : UnityEngine.Object => (T)target;
|
||||||
|
public string AsString() => (target as TextAsset)?.text ?? "";
|
||||||
|
public byte[] AsBinary() => (byte[])target;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 64b927914fca4610ac2f0ad9f858f5ed
|
||||||
|
timeCreated: 1707107986
|
||||||
|
|
@ -0,0 +1,194 @@
|
||||||
|
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
|
||||||
|
public class Context : IContext, IEventPipeline, IDisposable
|
||||||
|
{
|
||||||
|
protected ContextObject _contextObj;
|
||||||
|
private EventBus _eventBus;
|
||||||
|
private Dictionary<string, IModel> _models;
|
||||||
|
private Dictionary<string, IController> _controllers;
|
||||||
|
private Dictionary<string, IResManager> _resManagers;
|
||||||
|
private Dictionary<string, IHelper> _helpers;
|
||||||
|
|
||||||
|
|
||||||
|
public static T Create<T> (string name = "") where T : Context, new()
|
||||||
|
{
|
||||||
|
var context = new T();
|
||||||
|
context.Init();
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Init()
|
||||||
|
{
|
||||||
|
_contextObj = ContextObject.Create("guru_context");
|
||||||
|
_contextObj.OnDestroyed = OnDestroyHandler;
|
||||||
|
_contextObj.OnStart = OnStart;
|
||||||
|
|
||||||
|
_eventBus = new EventBus();
|
||||||
|
_models = new Dictionary<string, IModel>(10);
|
||||||
|
_controllers = new Dictionary<string, IController>(10);
|
||||||
|
_resManagers = new Dictionary<string, IResManager>(10);
|
||||||
|
_helpers = new Dictionary<string, IHelper>(10);
|
||||||
|
|
||||||
|
OnCreated();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnCreated()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnStart()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public virtual void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroyHandler()
|
||||||
|
{
|
||||||
|
OnDestroyed();
|
||||||
|
Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnDestroyed()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 注册组件
|
||||||
|
|
||||||
|
|
||||||
|
private static string GetInstanceName<T>(string instName = "")
|
||||||
|
{
|
||||||
|
if(string.IsNullOrEmpty(instName)) instName = nameof(T);
|
||||||
|
return instName;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool TryAddUpdater(object obj)
|
||||||
|
{
|
||||||
|
if (obj is IUpdater a)
|
||||||
|
{
|
||||||
|
RegisterUpdater(a);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool RegisterResManager<T>(T manager, string name = "") where T : IResManager, new()
|
||||||
|
{
|
||||||
|
TryAddUpdater(manager);
|
||||||
|
if (_resManagers.TryAdd(GetInstanceName<T>(name), manager))
|
||||||
|
{
|
||||||
|
manager.Context = this;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T GetResManager<T>(string name = "") where T : IResManager, new()
|
||||||
|
{
|
||||||
|
return _resManagers.TryGetValue(GetInstanceName<T>(name), out var m) ? (T)m : default(T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 注册数据模型
|
||||||
|
/// </summary>
|
||||||
|
/// <param instName="model"></param>
|
||||||
|
/// <param name="name"></param>
|
||||||
|
/// <typeparam instName="T"></typeparam>
|
||||||
|
public bool RegisterModel<T>(T model, string name = "") where T : IModel, new()
|
||||||
|
{
|
||||||
|
TryAddUpdater(model);
|
||||||
|
return _models.TryAdd(GetInstanceName<T>(name), model);
|
||||||
|
}
|
||||||
|
|
||||||
|
public T GetModel<T>(string name = "") where T : IModel, new()
|
||||||
|
{
|
||||||
|
return _models.TryGetValue(GetInstanceName<T>(name), out var m) ? (T)m : default(T);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 注册辅助工具
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="helper"></param>
|
||||||
|
/// <param name="name"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool RegisterHelper<T>(T helper, string name = "") where T : IHelper, new()
|
||||||
|
{
|
||||||
|
TryAddUpdater(helper);
|
||||||
|
return _helpers.TryAdd(GetInstanceName<T>(name), helper);
|
||||||
|
}
|
||||||
|
|
||||||
|
public T GetHelper<T>(string name = "") where T : IHelper, new()
|
||||||
|
{
|
||||||
|
return _helpers.TryGetValue(GetInstanceName<T>(name), out var m) ? (T)m : default(T);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 注册控制器
|
||||||
|
/// </summary>
|
||||||
|
/// <param instName="controller"></param>
|
||||||
|
/// <typeparam instName="T"></typeparam>
|
||||||
|
public bool RegisterController<T>(T controller, string name = "") where T : IController, new()
|
||||||
|
{
|
||||||
|
TryAddUpdater(controller);
|
||||||
|
if (_controllers.TryAdd(GetInstanceName<T>(name), controller))
|
||||||
|
{
|
||||||
|
controller.Context = this;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public T GetController<T>(string name = "") where T : IController, new()
|
||||||
|
{
|
||||||
|
return _controllers.TryGetValue(GetInstanceName<T>(name), out var c) ? (T)c : default(T);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 事件管理
|
||||||
|
|
||||||
|
public void Subscribe<T>(Action<T> onReceiveMessage) where T : struct
|
||||||
|
{
|
||||||
|
_eventBus.Subscribe(onReceiveMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Unsubscribe<T>(Action<T> onReceiveMessage) where T : struct
|
||||||
|
{
|
||||||
|
_eventBus.Unsubscribe(onReceiveMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Send<T>(T message) where T : struct
|
||||||
|
{
|
||||||
|
_eventBus.Send(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 更新挂载
|
||||||
|
|
||||||
|
|
||||||
|
public void RegisterUpdater(IUpdater updater)
|
||||||
|
{
|
||||||
|
_contextObj.AddUpdater(updater);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UnregisterUpdater(IUpdater updater)
|
||||||
|
{
|
||||||
|
_contextObj.RemoveUpdater(updater);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e04392ec6b0045e99cc840d18e6b46bb
|
||||||
|
timeCreated: 1707098801
|
||||||
|
|
@ -0,0 +1,90 @@
|
||||||
|
|
||||||
|
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class ContextObject: MonoBehaviour
|
||||||
|
{
|
||||||
|
private const string InstanceName = "app_context";
|
||||||
|
|
||||||
|
private HashSet<IUpdater> _updaters;
|
||||||
|
private HashSet<IUpdater> _updatersWillRemove;
|
||||||
|
|
||||||
|
public Action OnDestroyed;
|
||||||
|
public Action OnStart;
|
||||||
|
|
||||||
|
public static ContextObject Create(string name = "" )
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(name)) name = InstanceName;
|
||||||
|
var go = new GameObject(name);
|
||||||
|
DontDestroyOnLoad(go);
|
||||||
|
return go.AddComponent<ContextObject>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddUpdater(IUpdater updater)
|
||||||
|
{
|
||||||
|
_updaters.Add(updater);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveUpdater(IUpdater updater)
|
||||||
|
{
|
||||||
|
updater.IsStopped = true;
|
||||||
|
_updatersWillRemove.Add(updater);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#region 生命周期
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_updaters = new HashSet<IUpdater>();
|
||||||
|
_updatersWillRemove = new HashSet<IUpdater>();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
OnStart?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
OnDestroyed?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SelfDestroy()
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if(_updaters.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var updater in _updaters)
|
||||||
|
{
|
||||||
|
if(updater != null &&
|
||||||
|
!updater.IsStopped &&
|
||||||
|
!_updatersWillRemove.Contains(updater))
|
||||||
|
{
|
||||||
|
updater.OnUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_updatersWillRemove.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var d in _updatersWillRemove)
|
||||||
|
{
|
||||||
|
_updaters.Remove(d);
|
||||||
|
}
|
||||||
|
_updatersWillRemove.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b7952cd3aec24f84b57ab292a82055e9
|
||||||
|
timeCreated: 1707121139
|
||||||
|
|
@ -0,0 +1,122 @@
|
||||||
|
|
||||||
|
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 事件管线基类
|
||||||
|
/// </summary>
|
||||||
|
public class EventBus
|
||||||
|
{
|
||||||
|
|
||||||
|
private Dictionary<string, HashSet<Delegate>> _eventDict;
|
||||||
|
protected Dictionary<string, HashSet<Delegate>> EventDict
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_eventDict == null)
|
||||||
|
{
|
||||||
|
_eventDict = new Dictionary<string, HashSet<Delegate>>(20);
|
||||||
|
}
|
||||||
|
return _eventDict;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 发送事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventBody"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool Send<T>(T eventBody) where T : struct
|
||||||
|
{
|
||||||
|
return Trigger<T>(eventBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 订阅消息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="onReceiveMessage"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
public void Subscribe<T>(Action<T> onReceiveMessage) where T : struct
|
||||||
|
{
|
||||||
|
AddListener(onReceiveMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Unsubscribe<T>(Action<T> onReceiveMessage) where T : struct
|
||||||
|
{
|
||||||
|
RemoveListener(onReceiveMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
if (_eventDict != null)
|
||||||
|
{
|
||||||
|
foreach (var actions in _eventDict.Values)
|
||||||
|
{
|
||||||
|
actions.Clear();
|
||||||
|
}
|
||||||
|
_eventDict.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool HasEvent<T>() where T : struct
|
||||||
|
{
|
||||||
|
return EventDict.ContainsKey(nameof(T));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void AddListener<T>(Action<T> onReceiveMessage) where T : struct
|
||||||
|
{
|
||||||
|
if (!HasEvent<T>())
|
||||||
|
{
|
||||||
|
EventDict[nameof(T)] = new HashSet<Delegate>();
|
||||||
|
}
|
||||||
|
|
||||||
|
EventDict[nameof(T)].Add(onReceiveMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void RemoveListener<T>(Action<T> onReceiveMessage) where T : struct
|
||||||
|
{
|
||||||
|
if (HasEvent<T>())
|
||||||
|
{
|
||||||
|
if (EventDict[nameof(T)].Contains(onReceiveMessage))
|
||||||
|
{
|
||||||
|
EventDict[nameof(T)].Remove(onReceiveMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="message"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected bool Trigger<T>(T message) where T : struct
|
||||||
|
{
|
||||||
|
if (HasEvent<T>())
|
||||||
|
{
|
||||||
|
HashSet<Delegate> newActions = new HashSet<Delegate>(EventDict[nameof(T)].Count);
|
||||||
|
foreach (var d in EventDict[nameof(T)])
|
||||||
|
{
|
||||||
|
if (d.Target != null)
|
||||||
|
{
|
||||||
|
(d as Action<T>)?.Invoke(message);
|
||||||
|
newActions.Add(d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EventDict[nameof(T)] = newActions; // 过滤掉不存在的时间
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4b2ee0da42eb449facddde6b938a7f6e
|
||||||
|
timeCreated: 1707096820
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2526f3ebe9b743918a4133394d01f150
|
||||||
|
timeCreated: 1707099361
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批量加载器
|
||||||
|
/// </summary>
|
||||||
|
public interface IBatchLoader
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 批量加载
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="resUriList"></param>
|
||||||
|
/// <param name="onLoadComplete"></param>
|
||||||
|
void LoadQueue(string[] resUriList, Action<List<ResLoadInfo>> onLoadComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: df551e2b5ddb44b28a98a1ac027fa3c2
|
||||||
|
timeCreated: 1707099820
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
// 对象池
|
||||||
|
public interface IPool<T>
|
||||||
|
{
|
||||||
|
int PreSpawnCount { get; set; }
|
||||||
|
string Name { get; }
|
||||||
|
T Get();
|
||||||
|
T Create();
|
||||||
|
void Recycle(T obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1642ab73dc4741c091f8fd6831bf6057
|
||||||
|
timeCreated: 1707113780
|
||||||
|
|
@ -0,0 +1,313 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Networking;
|
||||||
|
using Object = UnityEngine.Object;
|
||||||
|
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
public enum ResType
|
||||||
|
{
|
||||||
|
Unknown = 0,
|
||||||
|
Bundle,
|
||||||
|
Texture,
|
||||||
|
File,
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ResUriHelper
|
||||||
|
{
|
||||||
|
public const string FilePrefix = "file::";
|
||||||
|
public const string BundlePrefix = "bundle::";
|
||||||
|
public const string TexturePrefix = "texture::";
|
||||||
|
public const string HttpPrefix = "http://";
|
||||||
|
public const string HttpsPrefix = "https://";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static string GetFileUri(string url)
|
||||||
|
{
|
||||||
|
return $"{FilePrefix}{url}";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetBundleUri(string url)
|
||||||
|
{
|
||||||
|
return $"{BundlePrefix}{url}";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetTextureUri(string url)
|
||||||
|
{
|
||||||
|
return $"{TexturePrefix}{url}";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UriToType(string uri, out ResType type, out string url)
|
||||||
|
{
|
||||||
|
type = ResType.Unknown;
|
||||||
|
url = uri;
|
||||||
|
if (uri.StartsWith(FilePrefix))
|
||||||
|
{
|
||||||
|
type = ResType.File;
|
||||||
|
url = uri.Substring(FilePrefix.Length);
|
||||||
|
}
|
||||||
|
else if (uri.StartsWith(BundlePrefix))
|
||||||
|
{
|
||||||
|
type = ResType.Bundle;
|
||||||
|
url = uri.Substring(BundlePrefix.Length);
|
||||||
|
}
|
||||||
|
else if (uri.StartsWith(TexturePrefix))
|
||||||
|
{
|
||||||
|
type = ResType.Texture;
|
||||||
|
url = uri.Substring(TexturePrefix.Length);
|
||||||
|
}
|
||||||
|
else if (uri.StartsWith(HttpPrefix) || uri.StartsWith(HttpsPrefix))
|
||||||
|
{
|
||||||
|
type = ResType.File;
|
||||||
|
url = uri;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class ResLoaderBase: IResLoader
|
||||||
|
{
|
||||||
|
public int RetryTimes { get; set; } = 3;
|
||||||
|
private bool _iSBusy = false;
|
||||||
|
public bool IsBusy
|
||||||
|
{
|
||||||
|
get => _iSBusy;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_iSBusy = value;
|
||||||
|
if(!_iSBusy) OnLoaderFree?.Invoke(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Action<ResLoaderBase> OnLoaderFree;
|
||||||
|
|
||||||
|
private Queue<OneResLoadTask> _taskPool = new Queue<OneResLoadTask>(10);
|
||||||
|
|
||||||
|
|
||||||
|
#region 加载逻辑
|
||||||
|
|
||||||
|
internal static OneResLoadTask CreateBundleTask(string url, Action<ResLoadInfo> callback, Action<bool, OneResLoadTask> handler)
|
||||||
|
{
|
||||||
|
return OneResLoadTask.Create(url, callback, handler, UnityWebRequestAssetBundle.GetAssetBundle(url));
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static OneResLoadTask CreateTextureTask(string url, Action<ResLoadInfo> callback, Action<bool, OneResLoadTask> handler)
|
||||||
|
{
|
||||||
|
return OneResLoadTask.Create(url, callback, handler, UnityWebRequestTexture.GetTexture(url, true));;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static OneResLoadTask CreateFileTask(string url, Action<ResLoadInfo> callback, Action<bool, OneResLoadTask> handler)
|
||||||
|
{
|
||||||
|
return OneResLoadTask.Create(url, callback, handler, new UnityWebRequest(url));;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 异步加载
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="resUri"></param>
|
||||||
|
/// <param name="onLoadComplete"></param>
|
||||||
|
public void LoadAsync(string resUri, Action<ResLoadInfo> onLoadComplete)
|
||||||
|
{
|
||||||
|
ResUriHelper.UriToType(resUri, out var type, out var url);
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case ResType.Bundle:
|
||||||
|
LoadBundle(url, onLoadComplete);
|
||||||
|
break;
|
||||||
|
case ResType.Texture:
|
||||||
|
LoadTexture(url, onLoadComplete);
|
||||||
|
break;
|
||||||
|
case ResType.File:
|
||||||
|
LoadFile(url, onLoadComplete);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Debug.LogError($"--- Unknown ResType: {type}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 开始异步加载
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="task"></param>
|
||||||
|
/// <param name="onLoadComplete"></param>
|
||||||
|
private void StartAsyncLoading(OneResLoadTask task)
|
||||||
|
{
|
||||||
|
IsBusy = true;
|
||||||
|
task.www.SendWebRequest().completed += ao =>
|
||||||
|
{
|
||||||
|
if (task.www.result == UnityWebRequest.Result.Success)
|
||||||
|
{
|
||||||
|
task.loadHandler?.Invoke(true, task);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (task.retryTimes < RetryTimes)
|
||||||
|
{
|
||||||
|
task.retryTimes++;
|
||||||
|
StartAsyncLoading(task);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
task.loadHandler?.Invoke(false, task);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddLoadTask(OneResLoadTask task)
|
||||||
|
{
|
||||||
|
if (IsBusy)
|
||||||
|
{
|
||||||
|
_taskPool.Enqueue(task); // 入队等待
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StartAsyncLoading(task); // 直接加载
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 加载 Bundle 资源
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 加载 Bundle
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="url"></param>
|
||||||
|
/// <param name="onLoadComplete"></param>
|
||||||
|
public void LoadBundle(string url, Action<ResLoadInfo> onLoadComplete)
|
||||||
|
{
|
||||||
|
AddLoadTask(CreateBundleTask(url, onLoadComplete, OnBundleLoaded));
|
||||||
|
}
|
||||||
|
private void OnBundleLoaded(bool success, OneResLoadTask task)
|
||||||
|
{
|
||||||
|
|
||||||
|
var info = new ResLoadInfo(task.url);
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
var ab = DownloadHandlerAssetBundle.GetContent(task.www);
|
||||||
|
if(ab != null)
|
||||||
|
{
|
||||||
|
info.success = true;
|
||||||
|
info.target = ab;
|
||||||
|
info.bundleName = ab.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task.callback?.Invoke(info);
|
||||||
|
SetFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 加载二进制文件
|
||||||
|
|
||||||
|
public void LoadFile(string url, Action<ResLoadInfo> onLoadComplete)
|
||||||
|
{
|
||||||
|
if (IsBusy)
|
||||||
|
{
|
||||||
|
Debug.LogError($"--- Loader is busy, canot load this task");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
StartAsyncLoading(CreateFileTask(url, onLoadComplete, OnFileLoaded));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnFileLoaded(bool success, OneResLoadTask task)
|
||||||
|
{
|
||||||
|
var info = new ResLoadInfo(task.url);
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
var bytes = task.www.downloadHandler?.data ?? null;
|
||||||
|
if(bytes != null)
|
||||||
|
{
|
||||||
|
info.success = true;
|
||||||
|
info.target = bytes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task.callback?.Invoke(info);
|
||||||
|
SetFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 加载图片
|
||||||
|
|
||||||
|
|
||||||
|
public void LoadTexture(string url, Action<ResLoadInfo> onLoadComplete)
|
||||||
|
{
|
||||||
|
var request = CreateTextureTask(url, onLoadComplete, OnTextureLoaded);
|
||||||
|
if (!IsBusy)
|
||||||
|
{
|
||||||
|
StartAsyncLoading(request);
|
||||||
|
}
|
||||||
|
_taskPool.Enqueue(request);
|
||||||
|
|
||||||
|
}
|
||||||
|
void OnTextureLoaded(bool success, OneResLoadTask task)
|
||||||
|
{
|
||||||
|
var info = new ResLoadInfo(task.url);
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
var texture = DownloadHandlerTexture.GetContent(task.www);
|
||||||
|
if (texture != null)
|
||||||
|
{
|
||||||
|
info.success = true;
|
||||||
|
info.target = texture;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task.callback?.Invoke(info);
|
||||||
|
SetFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 加载器空闲
|
||||||
|
|
||||||
|
|
||||||
|
private void SetFree()
|
||||||
|
{
|
||||||
|
if (_taskPool.Count > 0)
|
||||||
|
{
|
||||||
|
StartAsyncLoading(_taskPool.Dequeue());
|
||||||
|
}
|
||||||
|
IsBusy = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 单挑加载任务类
|
||||||
|
/// </summary>
|
||||||
|
internal struct OneResLoadTask
|
||||||
|
{
|
||||||
|
public string url;
|
||||||
|
public int retryTimes;
|
||||||
|
public Action<ResLoadInfo> callback;
|
||||||
|
public UnityWebRequest www;
|
||||||
|
public Action<bool, OneResLoadTask> loadHandler;
|
||||||
|
|
||||||
|
|
||||||
|
public static OneResLoadTask Create(string url, Action<ResLoadInfo> callback, Action<bool, OneResLoadTask> handler,
|
||||||
|
UnityWebRequest www)
|
||||||
|
{
|
||||||
|
return new OneResLoadTask()
|
||||||
|
{
|
||||||
|
url = url,
|
||||||
|
callback = callback,
|
||||||
|
loadHandler = handler,
|
||||||
|
www = www,
|
||||||
|
retryTimes = 0,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f6b6c659f919456fbdebe0a306061082
|
||||||
|
timeCreated: 1707113404
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0da7094972b9d45e38cf694574237c64
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2dd97e478d33b4294a62ee9097b3dafe
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 25ab9515525c4d27ab588a38777351f9
|
||||||
|
timeCreated: 1707187018
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &4973367134946982464
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7087308942415154381}
|
||||||
|
- component: {fileID: 3775355190176969404}
|
||||||
|
- component: {fileID: 5216159452735947783}
|
||||||
|
- component: {fileID: 6513792890421400829}
|
||||||
|
- component: {fileID: 2623612401829160794}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: root_canvas
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7087308942415154381
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4973367134946982464}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0, y: 0}
|
||||||
|
--- !u!223 &3775355190176969404
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4973367134946982464}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 0
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 1
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &5216159452735947783
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4973367134946982464}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_UiScaleMode: 1
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 1080, y: 2340}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &6513792890421400829
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4973367134946982464}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!114 &2623612401829160794
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4973367134946982464}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: eaa3735b2d7548e5bb7fe7ae036cbe36, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0ca38236c3e064c30bbd40d47ad1e872
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b2bf33bdf70742a0ab4d103aa1369252
|
||||||
|
timeCreated: 1707098815
|
||||||
|
|
@ -0,0 +1,142 @@
|
||||||
|
|
||||||
|
namespace Guru.UI
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class UIRoot : ViewBase
|
||||||
|
{
|
||||||
|
const string PrefabPath = "guru/ui/root_canvas";
|
||||||
|
private static UIRoot _instance;
|
||||||
|
public static UIRoot Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_instance == null) _instance = LoadInstance();
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CloneObject 对象
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
private static UIRoot LoadInstance()
|
||||||
|
{
|
||||||
|
var ui = CloneResources<UIRoot>(PrefabPath);
|
||||||
|
ui.Init();
|
||||||
|
return ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static T Clone<T>(GameObject prefab, Transform container = null) where T :Component
|
||||||
|
{
|
||||||
|
var go = Instantiate(prefab, container);
|
||||||
|
if (go != null)
|
||||||
|
{
|
||||||
|
go.name = nameof(T).ToLower();
|
||||||
|
return go.GetComponent<T>();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static T CloneResources<T>(string path, Transform container = null) where T : Component
|
||||||
|
{
|
||||||
|
var prefab = Resources.Load<GameObject>(path);
|
||||||
|
if( null != prefab) return Clone<T>(prefab, container);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private Canvas _canvas;
|
||||||
|
private CanvasScaler _canvasScaler;
|
||||||
|
private Transform _rootNode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void Init()
|
||||||
|
{
|
||||||
|
DontDestroyOnLoad(gameObject);
|
||||||
|
gameObject.name = "guru_ui";
|
||||||
|
_rootNode = CreateEmptyNode("root");
|
||||||
|
|
||||||
|
_canvas = gameObject.GetComponent<Canvas>();
|
||||||
|
_canvasScaler = gameObject.GetComponent<CanvasScaler>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 引用分辨率
|
||||||
|
/// </summary>
|
||||||
|
public Vector2 ReferenceResolution
|
||||||
|
{
|
||||||
|
get => _canvasScaler.referenceResolution;
|
||||||
|
set => _canvasScaler.referenceResolution = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 宽高适配
|
||||||
|
/// </summary>
|
||||||
|
public float MatchWidthOrHeight
|
||||||
|
{
|
||||||
|
get => _canvasScaler.matchWidthOrHeight;
|
||||||
|
set => _canvasScaler.matchWidthOrHeight = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 屏幕渲染 Order
|
||||||
|
/// </summary>
|
||||||
|
public int SortingOrder
|
||||||
|
{
|
||||||
|
get => _canvas.sortingOrder;
|
||||||
|
set => _canvas.sortingOrder = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region 节点操作
|
||||||
|
|
||||||
|
|
||||||
|
public RectTransform CreateEmptyNode(string nodeName = "node", Transform parent = null)
|
||||||
|
{
|
||||||
|
if (parent == null) parent = transform;
|
||||||
|
var go = new GameObject(nodeName);
|
||||||
|
go.transform.SetParent(parent, false);
|
||||||
|
go.transform.localScale = Vector3.one;
|
||||||
|
var c = go.AddComponent<RectTransform>();
|
||||||
|
c.anchorMax = Vector2.one;
|
||||||
|
c.anchorMin = Vector2.zero;
|
||||||
|
c.sizeDelta = Vector2.zero;
|
||||||
|
c.anchoredPosition = Vector2.zero;
|
||||||
|
c.pivot = Vector2.one * 0.5f;
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public RectTransform CreateNodeFromPath(string path, Transform parent = null)
|
||||||
|
{
|
||||||
|
var names = path.Split('/');
|
||||||
|
if (parent == null) parent = _rootNode;
|
||||||
|
var node = parent as RectTransform;
|
||||||
|
foreach (var n in names)
|
||||||
|
{
|
||||||
|
node = CreateEmptyNode(n, node);
|
||||||
|
}
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eaa3735b2d7548e5bb7fe7ae036cbe36
|
||||||
|
timeCreated: 1707046536
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Guru.UI
|
||||||
|
{
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class ViewBase: MonoBehaviour, IView, IDisposable
|
||||||
|
{
|
||||||
|
|
||||||
|
private Transform _transform;
|
||||||
|
public Transform Transform
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_transform == null) _transform = gameObject.transform;
|
||||||
|
return _transform;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private RectTransform _rectTransform;
|
||||||
|
public RectTransform RectTransform
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_rectTransform == null) _rectTransform = gameObject.GetComponent<RectTransform>();
|
||||||
|
return _rectTransform;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string Name
|
||||||
|
{
|
||||||
|
get => gameObject.name;
|
||||||
|
set => gameObject.name = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Vector3 LocalPosition
|
||||||
|
{
|
||||||
|
get => Transform.localPosition;
|
||||||
|
set => Transform.localPosition = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Vector3 Position
|
||||||
|
{
|
||||||
|
get => Transform.position;
|
||||||
|
set => Transform.position = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Vector2 AnchoredPos
|
||||||
|
{
|
||||||
|
get => RectTransform.anchoredPosition;
|
||||||
|
set => RectTransform.anchoredPosition = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float Scale
|
||||||
|
{
|
||||||
|
get => _transform.localScale.x;
|
||||||
|
set => _transform.localScale = Vector3.one * value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Active
|
||||||
|
{
|
||||||
|
get => gameObject.activeSelf;
|
||||||
|
set => gameObject.SetActive(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Transform FindChild(string path) => Transform.Find(path);
|
||||||
|
|
||||||
|
|
||||||
|
public virtual void Refresh()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5385c66b73384a43a11801d6c308b2ba
|
||||||
|
timeCreated: 1707046685
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"name": "Guru.UI",
|
||||||
|
"rootNamespace": "",
|
||||||
|
"references": [
|
||||||
|
"I2Localization",
|
||||||
|
"Unity.TextMeshPro",
|
||||||
|
"DOTween.Modules",
|
||||||
|
"GuruSDK"
|
||||||
|
],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c8df175a9a2b742f6b14f114f1caa3bf
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0153d1c4d4664b7ab6344600aac4539d
|
||||||
|
timeCreated: 1707112218
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d083852efee549b8b50596d17dbd3e83
|
||||||
|
timeCreated: 1707112225
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8950fbed73f44f6c91b0e74f3157e60f
|
||||||
|
timeCreated: 1707189542
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
using Guru.UI;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Guru
|
||||||
|
|
||||||
|
{
|
||||||
|
public class GuruApp
|
||||||
|
{
|
||||||
|
private static GuruApp _instance;
|
||||||
|
public static GuruApp Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_instance == null) Install();
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Install()
|
||||||
|
{
|
||||||
|
_instance = new GuruApp();
|
||||||
|
_instance.Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private GuruContext _context;
|
||||||
|
private GuruUIController _uiController;
|
||||||
|
|
||||||
|
|
||||||
|
private void Init()
|
||||||
|
{
|
||||||
|
_context = GuruContext.Instance;
|
||||||
|
_uiController = _context.GetController<GuruUIController>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
_context.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class GuruApp_UI
|
||||||
|
{
|
||||||
|
private static GuruUIController _uiController;
|
||||||
|
|
||||||
|
internal static GuruUIController Controller_
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if(_uiController == null) _uiController = GuruApp.Instance._uiController;
|
||||||
|
return _uiController;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static RectTransform AddNode(string nodePath = "", Transform parent = null)
|
||||||
|
{
|
||||||
|
return Controller_.AddNode(nodePath, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 75f3e447a052442d95272b49ebb11dde
|
||||||
|
timeCreated: 1707189779
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Guru.UI
|
||||||
|
{
|
||||||
|
public class GuruContext: Context
|
||||||
|
{
|
||||||
|
private static GuruContext _instance;
|
||||||
|
public static GuruContext Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_instance == null)
|
||||||
|
_instance = Create<GuruContext>();
|
||||||
|
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private GuruResManager _resMgr;
|
||||||
|
private GuruUIController _uiCtrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化调用
|
||||||
|
/// </summary>
|
||||||
|
protected override void OnCreated()
|
||||||
|
{
|
||||||
|
_resMgr = GuruResManager.Create(this); // 资源控制器
|
||||||
|
_uiCtrl = GuruUIController.Create(this); // UI 控制器
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnStart()
|
||||||
|
{
|
||||||
|
AutoOrientation();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置旋转
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="orientation"></param>
|
||||||
|
public void SetOrientation(ScreenOrientation orientation = ScreenOrientation.Portrait)
|
||||||
|
{
|
||||||
|
_uiCtrl.SetOrientation(orientation);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 自动调整方向
|
||||||
|
/// </summary>
|
||||||
|
private void AutoOrientation()
|
||||||
|
{
|
||||||
|
// 旋转方向
|
||||||
|
var o = Screen.width > Screen.height ? ScreenOrientation.Landscape : ScreenOrientation.Portrait;
|
||||||
|
SetOrientation(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cd6b2523c69f4bb382ce8910392a6aee
|
||||||
|
timeCreated: 1707112232
|
||||||
|
|
@ -0,0 +1,213 @@
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using Object = UnityEngine.Object;
|
||||||
|
using UnityEngine;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
|
||||||
|
public class GuruResManager : IResManager, IUpdater
|
||||||
|
{
|
||||||
|
public const string InstanceName = "guru_res_manager";
|
||||||
|
public static float CheckRequestInterval = 3; // 检查加载队列的频率
|
||||||
|
|
||||||
|
public string Name => "guru_res";
|
||||||
|
|
||||||
|
private bool _isReady;
|
||||||
|
public bool IsReady => _isReady;
|
||||||
|
|
||||||
|
public Context Context { get; set; }
|
||||||
|
|
||||||
|
private LoaderPool _loaderPool;
|
||||||
|
|
||||||
|
private Queue<ResRequest> _requests;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 注册资源管理器
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="context"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static GuruResManager Create(Context context)
|
||||||
|
{
|
||||||
|
var mgr = new GuruResManager();
|
||||||
|
mgr.Init();
|
||||||
|
context.RegisterResManager(mgr, InstanceName);
|
||||||
|
return mgr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
_isReady = true;
|
||||||
|
_loaderPool = LoaderPool.CreatePool();
|
||||||
|
_requests = new Queue<ResRequest>(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
public T CloneObject<T>(GameObject prefab, Transform container = null) where T :Component
|
||||||
|
{
|
||||||
|
var go = GameObject.Instantiate<GameObject>(prefab, container);
|
||||||
|
if (go != null)
|
||||||
|
{
|
||||||
|
go.name = nameof(T).ToLower();
|
||||||
|
return go.GetComponent<T>();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 加载本地资源
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="resUri"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <returns></returns>
|
||||||
|
public T Load<T>(string resUri) where T : Object
|
||||||
|
{
|
||||||
|
return Resources.Load<T>(resUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 异步加载资源
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="resUri"></param>
|
||||||
|
/// <param name="onLoadComplete"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
public void LoadAsync(string resUri, Action<ResLoadInfo> onLoadComplete)
|
||||||
|
{
|
||||||
|
ResRequest req = ResRequest.Create(resUri, onLoadComplete);
|
||||||
|
_requests.Enqueue(req); // 添加任务
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region 帧更新
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 帧更新
|
||||||
|
/// </summary>
|
||||||
|
public void OnUpdate()
|
||||||
|
{
|
||||||
|
CheckLoadingList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsStopped { get; set; } = false;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region 加载队列
|
||||||
|
|
||||||
|
private float _checkLoadingDuration = 0;
|
||||||
|
/// <summary>
|
||||||
|
/// 检查加载队列
|
||||||
|
/// </summary>
|
||||||
|
private void CheckLoadingList()
|
||||||
|
{
|
||||||
|
if (_requests.Count > 0 && _loaderPool.FreeCount > 0)
|
||||||
|
{
|
||||||
|
_checkLoadingDuration = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新检查队列
|
||||||
|
if (_checkLoadingDuration > 0)
|
||||||
|
{
|
||||||
|
_checkLoadingDuration -= Time.deltaTime;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查队列
|
||||||
|
while (_requests.Count > 0 && _loaderPool.FreeCount > 0)
|
||||||
|
{
|
||||||
|
var loader = _loaderPool.Get();
|
||||||
|
if (loader != null)
|
||||||
|
{
|
||||||
|
var req = _requests.Dequeue();
|
||||||
|
loader.LoadAsync(req.resUri, req.callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_checkLoadingDuration = CheckRequestInterval;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 加载器池
|
||||||
|
/// 默认同时持有 3 个加载器
|
||||||
|
/// </summary>
|
||||||
|
internal class LoaderPool: IPool<ResLoaderBase>
|
||||||
|
{
|
||||||
|
public string Name => "loader_pool";
|
||||||
|
public int PreSpawnCount { get; set; } = 3;
|
||||||
|
private Queue<ResLoaderBase> _freeLoaders;
|
||||||
|
|
||||||
|
|
||||||
|
public static LoaderPool CreatePool(int initCount = 3)
|
||||||
|
{
|
||||||
|
if (initCount < 2) initCount = 2; // 最小 2 个
|
||||||
|
var pool = new LoaderPool(initCount);
|
||||||
|
return pool;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LoaderPool(int initCount = 0)
|
||||||
|
{
|
||||||
|
if (initCount > 0) PreSpawnCount = initCount;
|
||||||
|
_freeLoaders = new Queue<ResLoaderBase>();
|
||||||
|
if (PreSpawnCount > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < PreSpawnCount; i++)
|
||||||
|
{
|
||||||
|
_freeLoaders.Enqueue(Create());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResLoaderBase Get()
|
||||||
|
{
|
||||||
|
if(FreeCount > 0)
|
||||||
|
{
|
||||||
|
return _freeLoaders.Dequeue();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResLoaderBase Create()
|
||||||
|
{
|
||||||
|
var loader = new ResLoaderBase();
|
||||||
|
loader.OnLoaderFree = Recycle;
|
||||||
|
return loader;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Recycle(ResLoaderBase obj)
|
||||||
|
{
|
||||||
|
_freeLoaders.Enqueue(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int FreeCount => _freeLoaders.Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 加载需求
|
||||||
|
/// </summary>
|
||||||
|
internal struct ResRequest
|
||||||
|
{
|
||||||
|
public string url;
|
||||||
|
public string resUri;
|
||||||
|
public Action<ResLoadInfo> callback;
|
||||||
|
|
||||||
|
public static ResRequest Create(string resUri, Action<ResLoadInfo> callback)
|
||||||
|
{
|
||||||
|
ResUriHelper.UriToType(resUri, out var type, out var url);
|
||||||
|
return new ResRequest()
|
||||||
|
{
|
||||||
|
url = url,
|
||||||
|
resUri = resUri,
|
||||||
|
callback = callback
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 067c1d30efc74f87877f39141083e735
|
||||||
|
timeCreated: 1707112425
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
using Guru.UI;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Guru
|
||||||
|
{
|
||||||
|
public class GuruUIController: IController
|
||||||
|
{
|
||||||
|
public string Name => "guru_ui";
|
||||||
|
public Context Context { get; set; }
|
||||||
|
|
||||||
|
//----------- 设置分辨率 --------------
|
||||||
|
public static readonly int DefaultDesignSize_1080 = 1080;
|
||||||
|
public static readonly int DefaultDesignSize_2340 = 2340;
|
||||||
|
|
||||||
|
public int designWidth;
|
||||||
|
public int designHeight;
|
||||||
|
private UIRoot _root;
|
||||||
|
|
||||||
|
public static GuruUIController Create(Context context)
|
||||||
|
{
|
||||||
|
var root = new GuruUIController { Context = context };
|
||||||
|
root.Init();
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private GuruResManager _resMgr;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化
|
||||||
|
/// </summary>
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
_resMgr = Context.GetResManager<GuruResManager>();
|
||||||
|
CreateRoot();
|
||||||
|
SetOrientation();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void SetOrientation(ScreenOrientation orientation = ScreenOrientation.Portrait)
|
||||||
|
{
|
||||||
|
if (orientation == ScreenOrientation.Portrait)
|
||||||
|
{
|
||||||
|
designWidth = DefaultDesignSize_1080;
|
||||||
|
designHeight = DefaultDesignSize_2340;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
designWidth = DefaultDesignSize_2340;
|
||||||
|
designHeight = DefaultDesignSize_1080;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void CreateRoot()
|
||||||
|
{
|
||||||
|
_root = UIRoot.Instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public RectTransform AddNode(string nodePath = "", Transform parent = null)
|
||||||
|
{
|
||||||
|
return _root.CreateNodeFromPath(nodePath, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 520fd253d52a4c4e981b7fba15e06540
|
||||||
|
timeCreated: 1707186818
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f1336c7d00754fd086977872699f590d
|
||||||
|
timeCreated: 1707189555
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 89eaf1b11e9f4c8fabb8e2ba4cd4c16e
|
||||||
|
timeCreated: 1707187005
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c86fbbf1ce6a4a399b3e536838dd80a3
|
||||||
|
timeCreated: 1707187011
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 916890d2bdef34d3088fbe463bfeabd6
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1c61b43718571400fa616bb7ad32650e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 711804702c7d4412d9cf75e6aa5af813
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3e20f0681d08a445980f0205a265ef85
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,133 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2ca3d2144769b472cad75373d2d02166
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
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: 60, y: 0, z: 60, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 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: iPhone
|
||||||
|
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: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 744 B |
|
|
@ -0,0 +1,133 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9988fb1149ca649a8a6b1a61adacdf99
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
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
|
||||||
|
vTOnly: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
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: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 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: iPhone
|
||||||
|
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:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
|
|
@ -0,0 +1,133 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 40351ab8256da4bf68e3103b0b9a3264
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
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: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 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: iPhone
|
||||||
|
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:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
|
|
@ -0,0 +1,133 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 16b5786e532ea42f69513fef4f76d6f9
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
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
|
||||||
|
vTOnly: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
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: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 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: iPhone
|
||||||
|
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:
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue