1
This commit is contained in:
45
Assets/Editor/WI/ResourcesFileSizeExporter.cs
Normal file
45
Assets/Editor/WI/ResourcesFileSizeExporter.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using Studio.Manage;
|
||||
|
||||
public class ResourcesFileSizeExporter
|
||||
{
|
||||
[MenuItem("Tools/Export Resources File Sizes to JSON")]
|
||||
public static void ExportFileSizes()
|
||||
{
|
||||
string resourcesPath = Application.dataPath + "/Resources";
|
||||
var sampleAssetPaths = Application.dataPath + "/Resources/Sample";
|
||||
var fileSizeListWrapper = new FileSizeListWrapper();
|
||||
if (!Directory.Exists(sampleAssetPaths))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Dictionary<string, long> fileSizes = new Dictionary<string, long>();
|
||||
|
||||
string[] files = Directory.GetFiles(sampleAssetPaths, "*.prefab", SearchOption.AllDirectories);
|
||||
foreach (string filePath in files)
|
||||
{
|
||||
var fileEntry = new FileSizeEntry();
|
||||
|
||||
long fileByteSize = new FileInfo(filePath).Length;
|
||||
string fileName = Path.GetFileNameWithoutExtension(filePath);
|
||||
|
||||
fileEntry.name = fileName;
|
||||
fileEntry.size = fileByteSize;
|
||||
|
||||
fileSizeListWrapper.files.Add(fileEntry);
|
||||
}
|
||||
|
||||
string json = JsonConvert.SerializeObject(fileSizeListWrapper);
|
||||
|
||||
string outputPath = Path.Combine(resourcesPath, "FileSizes.json");
|
||||
File.WriteAllText(outputPath, json);
|
||||
|
||||
Debug.Log($"파일 이름/크기 정보가 저장되었습니다: {outputPath}");
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
}
|
||||
2
Assets/Editor/WI/ResourcesFileSizeExporter.cs.meta
Normal file
2
Assets/Editor/WI/ResourcesFileSizeExporter.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f5ead7d05f396848bdd5d3a16b3587f
|
||||
BIN
Assets/Image/AssetManager/IMG_Expand.png
Normal file
BIN
Assets/Image/AssetManager/IMG_Expand.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 879 B |
117
Assets/Image/AssetManager/IMG_Expand.png.meta
Normal file
117
Assets/Image/AssetManager/IMG_Expand.png.meta
Normal file
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7e293787c7fd5241a49ea9d28ddee55
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Image/AssetManager/IMG_Fold.png
Normal file
BIN
Assets/Image/AssetManager/IMG_Fold.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 922 B |
117
Assets/Image/AssetManager/IMG_Fold.png.meta
Normal file
117
Assets/Image/AssetManager/IMG_Fold.png.meta
Normal file
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe7dcc3af6509a74cbb1eec04d1e61ba
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Image/DesignGuide/DG_AssetHierarchy.png
Normal file
BIN
Assets/Image/DesignGuide/DG_AssetHierarchy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 351 KiB |
117
Assets/Image/DesignGuide/DG_AssetHierarchy.png.meta
Normal file
117
Assets/Image/DesignGuide/DG_AssetHierarchy.png.meta
Normal file
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f78990e0d2ada041b0c01f173a7d4f0
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -30,7 +30,7 @@ ModelImporter:
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
|
||||
@@ -30,7 +30,7 @@ ModelImporter:
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
|
||||
@@ -30,7 +30,7 @@ ModelImporter:
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
|
||||
@@ -30,7 +30,7 @@ ModelImporter:
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
|
||||
@@ -30,7 +30,7 @@ ModelImporter:
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
|
||||
@@ -30,7 +30,7 @@ ModelImporter:
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
|
||||
@@ -35,7 +35,7 @@ ModelImporter:
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
|
||||
2927
Assets/Prefabs/AAA/Panel_AssetInfo.prefab
Normal file
2927
Assets/Prefabs/AAA/Panel_AssetInfo.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Prefabs/AAA/Panel_AssetInfo.prefab.meta
Normal file
7
Assets/Prefabs/AAA/Panel_AssetInfo.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a7d6be18c97d18541ad12411ce8e5f22
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -112,7 +112,7 @@ RectTransform:
|
||||
m_Father: {fileID: 1685799791316290074}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0.99998707}
|
||||
m_AnchorMax: {x: 1, y: 0.99999106}
|
||||
m_AnchoredPosition: {x: 2, y: 0}
|
||||
m_SizeDelta: {x: 8, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
@@ -1018,7 +1018,7 @@ MonoBehaviour:
|
||||
m_HandleRect: {fileID: 5808496954263173159}
|
||||
m_Direction: 2
|
||||
m_Value: 0
|
||||
m_Size: 0.99998707
|
||||
m_Size: 1
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
@@ -1062,8 +1062,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 210, y: -408.97}
|
||||
m_SizeDelta: {x: 420, y: 817.93}
|
||||
m_AnchoredPosition: {x: 210, y: -431.02136}
|
||||
m_SizeDelta: {x: 420, y: 862.0427}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7966294254755768478
|
||||
CanvasRenderer:
|
||||
@@ -1741,7 +1741,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: -0.00034048597, y: 0.005433774}
|
||||
m_AnchoredPosition: {x: -0.00034048597, y: 0.0035585074}
|
||||
m_SizeDelta: {x: 282.99957, y: 2}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &2780744526690132257
|
||||
@@ -2202,8 +2202,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 210, y: -501.18732}
|
||||
m_SizeDelta: {x: 420, y: 817.9348}
|
||||
m_AnchoredPosition: {x: 210, y: -531.1099}
|
||||
m_SizeDelta: {x: 420, y: 877.78}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &5930958411786542109
|
||||
MonoBehaviour:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -99,35 +99,35 @@ MonoBehaviour:
|
||||
obsoleteHasProbeVolumes:
|
||||
m_Keys: []
|
||||
m_Values:
|
||||
m_PrefilteringModeMainLightShadows: 1
|
||||
m_PrefilteringModeAdditionalLight: 4
|
||||
m_PrefilteringModeAdditionalLightShadows: 1
|
||||
m_PrefilterXRKeywords: 0
|
||||
m_PrefilteringModeForwardPlus: 1
|
||||
m_PrefilteringModeDeferredRendering: 1
|
||||
m_PrefilteringModeScreenSpaceOcclusion: 1
|
||||
m_PrefilterDebugKeywords: 0
|
||||
m_PrefilterWriteRenderingLayers: 0
|
||||
m_PrefilterHDROutput: 0
|
||||
m_PrefilterAlphaOutput: 0
|
||||
m_PrefilterSSAODepthNormals: 0
|
||||
m_PrefilterSSAOSourceDepthLow: 0
|
||||
m_PrefilterSSAOSourceDepthMedium: 0
|
||||
m_PrefilterSSAOSourceDepthHigh: 0
|
||||
m_PrefilterSSAOInterleaved: 0
|
||||
m_PrefilterSSAOBlueNoise: 0
|
||||
m_PrefilterSSAOSampleCountLow: 0
|
||||
m_PrefilterSSAOSampleCountMedium: 0
|
||||
m_PrefilterSSAOSampleCountHigh: 0
|
||||
m_PrefilterDBufferMRT1: 0
|
||||
m_PrefilterDBufferMRT2: 0
|
||||
m_PrefilterDBufferMRT3: 0
|
||||
m_PrefilterSoftShadowsQualityLow: 0
|
||||
m_PrefilterSoftShadowsQualityMedium: 0
|
||||
m_PrefilterSoftShadowsQualityHigh: 0
|
||||
m_PrefilteringModeMainLightShadows: 3
|
||||
m_PrefilteringModeAdditionalLight: 3
|
||||
m_PrefilteringModeAdditionalLightShadows: 0
|
||||
m_PrefilterXRKeywords: 1
|
||||
m_PrefilteringModeForwardPlus: 0
|
||||
m_PrefilteringModeDeferredRendering: 0
|
||||
m_PrefilteringModeScreenSpaceOcclusion: 0
|
||||
m_PrefilterDebugKeywords: 1
|
||||
m_PrefilterWriteRenderingLayers: 1
|
||||
m_PrefilterHDROutput: 1
|
||||
m_PrefilterAlphaOutput: 1
|
||||
m_PrefilterSSAODepthNormals: 1
|
||||
m_PrefilterSSAOSourceDepthLow: 1
|
||||
m_PrefilterSSAOSourceDepthMedium: 1
|
||||
m_PrefilterSSAOSourceDepthHigh: 1
|
||||
m_PrefilterSSAOInterleaved: 1
|
||||
m_PrefilterSSAOBlueNoise: 1
|
||||
m_PrefilterSSAOSampleCountLow: 1
|
||||
m_PrefilterSSAOSampleCountMedium: 1
|
||||
m_PrefilterSSAOSampleCountHigh: 1
|
||||
m_PrefilterDBufferMRT1: 1
|
||||
m_PrefilterDBufferMRT2: 1
|
||||
m_PrefilterDBufferMRT3: 1
|
||||
m_PrefilterSoftShadowsQualityLow: 1
|
||||
m_PrefilterSoftShadowsQualityMedium: 1
|
||||
m_PrefilterSoftShadowsQualityHigh: 1
|
||||
m_PrefilterSoftShadows: 0
|
||||
m_PrefilterScreenCoord: 0
|
||||
m_PrefilterNativeRenderPass: 0
|
||||
m_PrefilterScreenCoord: 1
|
||||
m_PrefilterNativeRenderPass: 1
|
||||
m_PrefilterUseLegacyLightmaps: 0
|
||||
m_ShaderVariantLogLevel: 0
|
||||
m_ShadowCascades: 0
|
||||
|
||||
@@ -56,7 +56,17 @@ MonoBehaviour:
|
||||
- rid: 8640070351411478628
|
||||
- rid: 8640070351411478629
|
||||
m_RuntimeSettings:
|
||||
m_List: []
|
||||
m_List:
|
||||
- rid: 8640070351411478610
|
||||
- rid: 8640070351411478612
|
||||
- rid: 8640070351411478614
|
||||
- rid: 8640070351411478615
|
||||
- rid: 8640070351411478616
|
||||
- rid: 8640070351411478617
|
||||
- rid: 8640070351411478619
|
||||
- rid: 8640070351411478621
|
||||
- rid: 8640070351411478625
|
||||
- rid: 8640070351411478628
|
||||
m_AssetVersion: 8
|
||||
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
||||
m_RenderingLayerNames:
|
||||
|
||||
1
Assets/Resources/FileSizes.json
Normal file
1
Assets/Resources/FileSizes.json
Normal file
@@ -0,0 +1 @@
|
||||
{"files":[{"name":"18TH","size":6262},{"name":"AGV","size":6227},{"name":"Floor","size":2656},{"name":"MPL","size":38590},{"name":"Port","size":14275},{"name":"RKG","size":5389},{"name":"Stacker","size":2675971},{"name":"StackerCrane","size":16296},{"name":"Wall","size":3205}]}
|
||||
7
Assets/Resources/FileSizes.json.meta
Normal file
7
Assets/Resources/FileSizes.json.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de84ca4c6a26d104ebef9819b6530248
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
272
Assets/Resources/Prefabs/UI/PRF_AssetHierarchyFileItem.prefab
Normal file
272
Assets/Resources/Prefabs/UI/PRF_AssetHierarchyFileItem.prefab
Normal file
@@ -0,0 +1,272 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &102715529012169959
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5951700390897484313}
|
||||
- component: {fileID: 4516150584740527297}
|
||||
- component: {fileID: 7841113446800851947}
|
||||
m_Layer: 5
|
||||
m_Name: Text_AssetName
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5951700390897484313
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 102715529012169959}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2062179146838381722}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 180.8, y: -15}
|
||||
m_SizeDelta: {x: 300, y: 17}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4516150584740527297
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 102715529012169959}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7841113446800851947
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 102715529012169959}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: Asset Name
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
|
||||
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 14
|
||||
m_fontSizeBase: 14
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 256
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &548512801249676078
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2062179146838381722}
|
||||
- component: {fileID: 8381326877424072060}
|
||||
- component: {fileID: 7283401773250522798}
|
||||
- component: {fileID: 3209002478171196024}
|
||||
- component: {fileID: 815043479758428699}
|
||||
m_Layer: 5
|
||||
m_Name: PRF_AssetHierarchyFileItem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2062179146838381722
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 548512801249676078}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 5951700390897484313}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 370, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8381326877424072060
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 548512801249676078}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7283401773250522798
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 548512801249676078}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 6ce4c9afe0f40c84288f222f580883d5, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &3209002478171196024
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 548512801249676078}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 69dbe4f926c804947befeb7c9de0f380, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &815043479758428699
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 548512801249676078}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 7283401773250522798}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6d63d21cb96135d428833f5351f4b996
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
596
Assets/Resources/Prefabs/UI/PRF_AssetHierarchyFolderItem.prefab
Normal file
596
Assets/Resources/Prefabs/UI/PRF_AssetHierarchyFolderItem.prefab
Normal file
@@ -0,0 +1,596 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &252445660986721945
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3157082195895231773}
|
||||
- component: {fileID: 4098812721246824191}
|
||||
- component: {fileID: 3500022784909769839}
|
||||
m_Layer: 5
|
||||
m_Name: Text_FolderName
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3157082195895231773
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 252445660986721945}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4369170814888687918}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 180.5, y: -15}
|
||||
m_SizeDelta: {x: 320, y: 17}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4098812721246824191
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 252445660986721945}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3500022784909769839
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 252445660986721945}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: flexing.xr/samsung
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 9a2c7e704ad3e62438526dc8aecaeb56, type: 2}
|
||||
m_sharedMaterial: {fileID: 682561501981441939, guid: 9a2c7e704ad3e62438526dc8aecaeb56, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 14
|
||||
m_fontSizeBase: 14
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 256
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: -1.5
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &641771568301292693
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 508577269123562481}
|
||||
- component: {fileID: 2516614746078785691}
|
||||
- component: {fileID: 6473059881632327762}
|
||||
m_Layer: 5
|
||||
m_Name: Checkmark
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &508577269123562481
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 641771568301292693}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3504009785478294066}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 6, y: -6}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2516614746078785691
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 641771568301292693}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6473059881632327762
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 641771568301292693}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: fe7dcc3af6509a74cbb1eec04d1e61ba, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &3587471037970769080
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6376616067819932159}
|
||||
- component: {fileID: 2038215860680662931}
|
||||
- component: {fileID: 8319324561568148257}
|
||||
m_Layer: 5
|
||||
m_Name: PRF_AssetHierarchyFolderItem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6376616067819932159
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3587471037970769080}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4369170814888687918}
|
||||
- {fileID: 9077978097104377710}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 370, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2038215860680662931
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3587471037970769080}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8319324561568148257
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3587471037970769080}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: accc46350e7e933409215846c3795ebd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &6471810780394336552
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4369170814888687918}
|
||||
- component: {fileID: 5338755847443157427}
|
||||
- component: {fileID: 7648158264391556040}
|
||||
m_Layer: 5
|
||||
m_Name: Title
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4369170814888687918
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6471810780394336552}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3157082195895231773}
|
||||
- {fileID: 9123494394013421800}
|
||||
m_Father: {fileID: 6376616067819932159}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 185, y: -15}
|
||||
m_SizeDelta: {x: 370, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5338755847443157427
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6471810780394336552}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7648158264391556040
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6471810780394336552}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 6ce4c9afe0f40c84288f222f580883d5, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &7084331205838790795
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9077978097104377710}
|
||||
- component: {fileID: 744587351963815865}
|
||||
- component: {fileID: 8723293088769338705}
|
||||
- component: {fileID: 8242005510868357972}
|
||||
m_Layer: 5
|
||||
m_Name: FoldContent
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &9077978097104377710
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7084331205838790795}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6376616067819932159}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 1}
|
||||
--- !u!222 &744587351963815865
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7084331205838790795}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8723293088769338705
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7084331205838790795}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 0
|
||||
m_ChildForceExpandWidth: 0
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildControlWidth: 0
|
||||
m_ChildControlHeight: 0
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!114 &8242005510868357972
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7084331205838790795}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_HorizontalFit: 0
|
||||
m_VerticalFit: 2
|
||||
--- !u!1 &7477114861391641920
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9123494394013421800}
|
||||
- component: {fileID: 7354789801490151204}
|
||||
m_Layer: 5
|
||||
m_Name: Toggle_Fold
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &9123494394013421800
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7477114861391641920}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3504009785478294066}
|
||||
m_Father: {fileID: 4369170814888687918}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 168.5, y: 0}
|
||||
m_SizeDelta: {x: 14, y: 14}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &7354789801490151204
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7477114861391641920}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 1804161156326407850}
|
||||
toggleTransition: 1
|
||||
graphic: {fileID: 6473059881632327762}
|
||||
m_Group: {fileID: 0}
|
||||
onValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_IsOn: 0
|
||||
--- !u!1 &8950904475714762765
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3504009785478294066}
|
||||
- component: {fileID: 353695906952837837}
|
||||
- component: {fileID: 1804161156326407850}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3504009785478294066
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8950904475714762765}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 508577269123562481}
|
||||
m_Father: {fileID: 9123494394013421800}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: -6, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &353695906952837837
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8950904475714762765}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1804161156326407850
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8950904475714762765}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: d7e293787c7fd5241a49ea9d28ddee55, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 08fd68bd4ed16f74db2dba0fb06a7b0c
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -39,7 +39,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: -10}
|
||||
m_SizeDelta: {x: 0, y: 35}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!114 &8577872390119345382
|
||||
@@ -621,7 +621,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 420, y: 50}
|
||||
m_SizeDelta: {x: 420, y: 110}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &9006872392457284266
|
||||
CanvasRenderer:
|
||||
@@ -1128,7 +1128,7 @@ MonoBehaviour:
|
||||
m_Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 0
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
|
||||
@@ -367,8 +367,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMax: {x: 0.5, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 110, y: 30}
|
||||
m_AnchoredPosition: {x: 0, y: -15}
|
||||
m_SizeDelta: {x: 110, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &499100886614822048
|
||||
CanvasRenderer:
|
||||
@@ -620,7 +620,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 110, y: 140}
|
||||
m_SizeDelta: {x: 110, y: 110}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &9006872392457284266
|
||||
CanvasRenderer:
|
||||
@@ -1105,8 +1105,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 80, y: 50}
|
||||
m_AnchoredPosition: {x: 0, y: 5}
|
||||
m_SizeDelta: {x: 80, y: 80}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5193183312611458682
|
||||
CanvasRenderer:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -73,7 +73,7 @@ public static class RuntimePreviewGenerator
|
||||
}
|
||||
}
|
||||
|
||||
private const int PREVIEW_LAYER = 22;
|
||||
private static int PREVIEW_LAYER => LayerMask.NameToLayer("ThumbnailObject");
|
||||
private static Vector3 PREVIEW_POSITION = new Vector3( -250f, -250f, -250f );
|
||||
|
||||
private static Camera renderCamera;//모델을 렌더링 하는 카메라
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace Studio.Util
|
||||
public bool isLoading = false;
|
||||
public float progress;
|
||||
public Texture2D thumbnail;
|
||||
public long assetSize;
|
||||
public List<Transform> drawTransforms = new List<Transform>();
|
||||
public UnityEvent<float> onLoadProgress = new UnityEvent<float>();
|
||||
|
||||
|
||||
@@ -1,15 +1,29 @@
|
||||
using Studio.AssetTool;
|
||||
using Newtonsoft.Json;
|
||||
using Studio.AssetTool;
|
||||
using Studio.Command;
|
||||
using Studio.HierarchyTree;
|
||||
using Studio.Services;
|
||||
using Studio.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Studio.Manage
|
||||
{
|
||||
[System.Serializable]
|
||||
public class FileSizeEntry
|
||||
{
|
||||
public string name;
|
||||
public long size;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class FileSizeListWrapper
|
||||
{
|
||||
public List<FileSizeEntry> files = new List<FileSizeEntry>();
|
||||
}
|
||||
public class AssetManager : Manager
|
||||
{
|
||||
public List<string> localAssetPaths = new List<string>();
|
||||
@@ -22,6 +36,16 @@ namespace Studio.Manage
|
||||
|
||||
public Action<AssetManagerData> onSetAssetManager;
|
||||
public Action<AssetManagerData> onSetAssetSetting;
|
||||
public Action<Dictionary<string, List<string>>> onSetAssetHierarchy;
|
||||
public Action<AssetInfo> onSetAssetInfo;
|
||||
public struct AssetInfo
|
||||
{
|
||||
public string assetName;
|
||||
public string size;
|
||||
public string polygons;
|
||||
public string materials;
|
||||
public string textureSize;
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
@@ -33,8 +57,10 @@ namespace Studio.Manage
|
||||
var sceneSettingService = ManagerHub.instance.Get<SceneStartSettingManager>();
|
||||
var projectManager = ManagerHub.instance.Get<ProjectManager>();
|
||||
fbxFileManager.onLoadComplete += OnLoadCustomAsset;
|
||||
onAddSettingPaths += canvas_Popup.panel_assetsetting.SetAssetPathItmes;
|
||||
onSetAssetSetting += canvas_Popup.panel_assetsetting.SetAssetManager;
|
||||
onAddSettingPaths += canvas_Popup.panel_localassets.SetAssetPathItmes;
|
||||
onSetAssetSetting += canvas_Popup.panel_localassets.SetAssetManager;
|
||||
onSetAssetHierarchy += canvas_Popup.panel_assethierarchy.SetLocalAssetHierarchy;
|
||||
onSetAssetInfo += canvas_Popup.panel_assetinfo.SetAssetInfo;
|
||||
}
|
||||
|
||||
public void ClearFolderPathList()
|
||||
@@ -80,8 +106,11 @@ namespace Studio.Manage
|
||||
public void InitRessourceAsset()
|
||||
{
|
||||
var assets = Resources.LoadAll<GameObject>("Sample");
|
||||
var filesSize = Resources.Load<TextAsset>("FileSizes").text;
|
||||
var fileSizeData = JsonConvert.DeserializeObject<FileSizeListWrapper>(filesSize);
|
||||
|
||||
var fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
|
||||
fbxFileManager.LoadResource(assets);
|
||||
fbxFileManager.LoadResource(assets, fileSizeData);
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +118,6 @@ namespace Studio.Manage
|
||||
{
|
||||
var fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
|
||||
fbxFileManager.LoadLocalFBXDirectorys(folderPathList);
|
||||
|
||||
var assetManagerData = new AssetManagerData();
|
||||
assetManagerData.localAssetsPaths.AddRange(folderPathList);
|
||||
}
|
||||
@@ -102,8 +130,9 @@ namespace Studio.Manage
|
||||
{
|
||||
var projectManager = ManagerHub.instance.Get<ProjectManager>();
|
||||
var fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
|
||||
onSetAssetHierarchy?.Invoke(fbxFileManager.fileDatas);
|
||||
|
||||
if (projectManager.curProjectData.assetDatas.Count <= 0)
|
||||
if (projectManager.curProjectData == null || projectManager.curProjectData.assetDatas.Count <= 0)
|
||||
return;
|
||||
|
||||
List<AssetData> assets = projectManager.curProjectData.assetDatas;
|
||||
@@ -142,5 +171,143 @@ namespace Studio.Manage
|
||||
connector.OnRestoreHierarchy(parent, child);
|
||||
}
|
||||
}
|
||||
public void SetAssetInfo(string name)
|
||||
{
|
||||
var fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
|
||||
var selectAsset = fbxFileManager.dataRepo.FindFromName(name);
|
||||
|
||||
if (selectAsset == null)
|
||||
return;
|
||||
|
||||
var assetInfo = new AssetInfo()
|
||||
{
|
||||
assetName = selectAsset.assetName,
|
||||
size = FormatBytes(selectAsset.assetSize),
|
||||
polygons = GetAssetPolygons(selectAsset),
|
||||
materials = GetAssetMaterialsCount(selectAsset),
|
||||
textureSize = GetTextureSize(selectAsset)
|
||||
};
|
||||
|
||||
onSetAssetInfo?.Invoke(assetInfo);
|
||||
}
|
||||
private string GetTextureSize(CustomAssetData asset)
|
||||
{
|
||||
Renderer[] renderers = asset.loadedObject.GetComponentsInChildren<Renderer>(true);
|
||||
HashSet<Texture> allTextures = new HashSet<Texture>();
|
||||
|
||||
long totalTextureSize = 0;
|
||||
|
||||
foreach (var renderer in renderers)
|
||||
{
|
||||
foreach (var mat in renderer.sharedMaterials)
|
||||
{
|
||||
if (mat == null)
|
||||
continue;
|
||||
|
||||
foreach (string textureName in mat.GetTexturePropertyNames())
|
||||
{
|
||||
var tex = mat.GetTexture(textureName);
|
||||
if (tex != null && !allTextures.Contains(tex))
|
||||
{
|
||||
allTextures.Add(tex);
|
||||
var size = CalculateTextureSize(tex);
|
||||
totalTextureSize += size;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return FormatBytes(totalTextureSize);
|
||||
}
|
||||
private string GetAssetMaterialsCount(CustomAssetData asset)
|
||||
{
|
||||
Renderer[] renderers = asset.loadedObject.GetComponentsInChildren<Renderer>(true);
|
||||
HashSet<Material> allMaterials = new HashSet<Material>();
|
||||
|
||||
foreach (var renderer in renderers)
|
||||
{
|
||||
foreach (var mat in renderer.sharedMaterials)
|
||||
{
|
||||
if (mat == null)
|
||||
continue;
|
||||
|
||||
allMaterials.Add(mat);
|
||||
}
|
||||
}
|
||||
return allMaterials.Count.ToString();
|
||||
}
|
||||
private string GetAssetPolygons(CustomAssetData asset)
|
||||
{
|
||||
MeshFilter[] meshFilters = asset.loadedObject.GetComponentsInChildren<MeshFilter>(true);
|
||||
SkinnedMeshRenderer[] skinnedRenderers = asset.loadedObject.GetComponentsInChildren<SkinnedMeshRenderer>(true);
|
||||
|
||||
int totalTriangles = 0;
|
||||
|
||||
foreach (var mf in meshFilters)
|
||||
{
|
||||
if (mf.sharedMesh != null)
|
||||
{
|
||||
int tris = mf.sharedMesh.triangles.Length / 3;
|
||||
totalTriangles += tris;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var smr in skinnedRenderers)
|
||||
{
|
||||
if (smr.sharedMesh != null)
|
||||
{
|
||||
int tris = smr.sharedMesh.triangles.Length / 3;
|
||||
totalTriangles += tris;
|
||||
}
|
||||
}
|
||||
return totalTriangles.ToString();
|
||||
}
|
||||
private long CalculateTextureSize(Texture tex)
|
||||
{
|
||||
if (tex is Texture2D tex2D)
|
||||
{
|
||||
int bpp = GetBitsPerPixel(tex2D.format);
|
||||
return tex2D.width * tex2D.height * bpp / 8;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int GetBitsPerPixel(TextureFormat format)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case TextureFormat.RGBA32:
|
||||
case TextureFormat.ARGB32:
|
||||
return 32;
|
||||
case TextureFormat.RGB24:
|
||||
return 24;
|
||||
case TextureFormat.Alpha8:
|
||||
return 8;
|
||||
case TextureFormat.DXT1:
|
||||
return 4;
|
||||
case TextureFormat.DXT5:
|
||||
return 8;
|
||||
default:
|
||||
return 32;
|
||||
}
|
||||
}
|
||||
private string FormatBytes(long bytes)
|
||||
{
|
||||
if (bytes < 1024)
|
||||
{
|
||||
return $"{bytes} B";
|
||||
}
|
||||
else if (bytes < 1024 * 1024)
|
||||
{
|
||||
return $"{(bytes / 1024f):F2} KB";
|
||||
}
|
||||
else if (bytes < 1024L * 1024L * 1024L)
|
||||
{
|
||||
return $"{(bytes / 1024f / 1024f):F2} MB";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"{(bytes / 1024f / 1024f / 1024f):F2} GB";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@ using Studio.Command;
|
||||
using Studio.Manage;
|
||||
using Studio.AssetLibraryTree;
|
||||
using Studio.Core;
|
||||
using XRLib;
|
||||
using UnityEngine.Profiling;
|
||||
|
||||
namespace Studio.AssetTool
|
||||
{
|
||||
@@ -34,6 +36,7 @@ namespace Studio.AssetTool
|
||||
public Action onLoadComplete;
|
||||
|
||||
private HashSet<string> filePaths = new();
|
||||
public Dictionary<string, List<string>> fileDatas = new();
|
||||
public FBXFileManager()
|
||||
{
|
||||
dataRepo = new CustomAssetDataRepository();
|
||||
@@ -52,7 +55,7 @@ namespace Studio.AssetTool
|
||||
filePaths.Clear();
|
||||
}
|
||||
|
||||
public void LoadResource(GameObject[] assets)
|
||||
public void LoadResource(GameObject[] assets, FileSizeListWrapper fileSizeListWrapper)
|
||||
{
|
||||
foreach (var asset in assets)
|
||||
{
|
||||
@@ -69,6 +72,9 @@ namespace Studio.AssetTool
|
||||
assetData.assetName = assetName;
|
||||
assetData.folderName = "Base Library";
|
||||
|
||||
var fileSzie = fileSizeListWrapper.files.Find(item => item.name == assetName);
|
||||
assetData.assetSize = fileSzie.size;
|
||||
|
||||
assetData.isLoading = true;
|
||||
assetData.isLoadComplete = true;
|
||||
var obj= UnityEngine.GameObject.Instantiate(asset);
|
||||
@@ -76,15 +82,18 @@ namespace Studio.AssetTool
|
||||
obj.gameObject.SetActive(false);
|
||||
assetData.loadedObject = obj;
|
||||
assetData.OnLoadComplete();
|
||||
Texture2D thumbnail = RuntimePreviewGenerator.GenerateModelPreview(assetData.loadedObject.transform, 320, 200);
|
||||
|
||||
RuntimePreviewGenerator.OrthographicMode = true;
|
||||
Texture2D thumbnail = RuntimePreviewGenerator.GenerateModelPreview(assetData.loadedObject.transform, 320, 320);
|
||||
thumbnail = TextureUtil.MakeReadableTexture(thumbnail);
|
||||
assetData.thumbnail = thumbnail;
|
||||
OnLoadComplete(assetData);
|
||||
}
|
||||
|
||||
OnDirectoryLoadComplete();
|
||||
}
|
||||
public void LoadLocalFBXDirectorys(List<string> folderPaths)
|
||||
{
|
||||
fileDatas.Clear();
|
||||
|
||||
foreach (var path in folderPaths)
|
||||
{
|
||||
@@ -101,9 +110,13 @@ namespace Studio.AssetTool
|
||||
}
|
||||
|
||||
var files = Directory.GetFiles(folderPath, "*.fbx", SearchOption.AllDirectories);
|
||||
List<string> fileNames = new List<string>();
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
var fileName = Path.GetFileNameWithoutExtension(file);
|
||||
fileNames.Add(fileName);
|
||||
|
||||
if (filePaths.Contains(NormalizePath(file)))
|
||||
{
|
||||
continue;
|
||||
@@ -118,6 +131,15 @@ namespace Studio.AssetTool
|
||||
|
||||
private void OnDirectoryLoadComplete()
|
||||
{
|
||||
foreach(var asset in dataRepo.assetDatas)
|
||||
{
|
||||
if (!fileDatas.ContainsKey(asset.folderName))
|
||||
{
|
||||
fileDatas[asset.folderName] = new List<string>();
|
||||
}
|
||||
fileDatas[asset.folderName].Add(asset.assetName);
|
||||
}
|
||||
|
||||
onLoadComplete?.Invoke();
|
||||
}
|
||||
|
||||
@@ -145,7 +167,9 @@ namespace Studio.AssetTool
|
||||
|
||||
assetData.OnLoadComplete();
|
||||
|
||||
Texture2D thumbnail = RuntimePreviewGenerator.GenerateModelPreview(assetData.loadedObject.transform, 320, 200);
|
||||
RuntimePreviewGenerator.OrthographicMode = true;
|
||||
Texture2D thumbnail = RuntimePreviewGenerator.GenerateModelPreview(assetData.loadedObject.transform, 320, 320);
|
||||
assetData.assetSize = new FileInfo(assetData.localFBXPath).Length;
|
||||
thumbnail = TextureUtil.MakeReadableTexture(thumbnail);
|
||||
assetData.thumbnail = thumbnail;
|
||||
OnLoadComplete(assetData);
|
||||
|
||||
@@ -31,9 +31,14 @@ namespace Studio.Manage
|
||||
canvas_popup.panel_topmenuopenprojectinfo.onClickOpen += canvas_static.panel_scenetab.Init;
|
||||
canvas_popup.panel_topmenuopenprojectinfo.onClickOpen += canvas_popup.panel_topmenuopenprojectinfo.Close;
|
||||
|
||||
canvas_popup.panel_assethierarchy.onClickAssetItem += canvas_popup.panel_assetinfo.SetPosition;
|
||||
|
||||
canvas_popup.panel_datafiltersetting.onSaveAPIFilterData += canvas_popup.panel_apiconnectmodal.SetFilterData;
|
||||
|
||||
canvas_popup.panel_assetsetting.onClickServerAssets += canvas_popup.panel_serverassets.Active;
|
||||
canvas_popup.panel_assetsetting.onClickLocalAssets += canvas_popup.panel_localassets.Active;
|
||||
canvas_popup.panel_assetsetting.onClickAssetHierarchy += canvas_popup.panel_assethierarchy.Active;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,10 @@ namespace Studio
|
||||
public Panel_APISetting panel_apisetting;
|
||||
public Panel_MQTTSetting panel_mqttsetting;
|
||||
public Panel_AssetSetting panel_assetsetting;
|
||||
public Panel_ServerAssets panel_serverassets;
|
||||
public Panel_LocalAssets panel_localassets;
|
||||
public Panel_AssetHierarchy panel_assethierarchy;
|
||||
public Panel_AssetInfo panel_assetinfo;
|
||||
|
||||
//public Panel_AssetManager panel_assetmanager;
|
||||
public Panel_AccessibilitySettings panel_accessibilitysettings;
|
||||
@@ -79,7 +83,8 @@ namespace Studio
|
||||
|
||||
panel_newprojectinfo.onClickCreate += () => CommandInvoker.instance.Invoke(new NewProjectCommand());
|
||||
panel_openprojectinfo.onClickOpen += () => CommandInvoker.instance.Invoke(new OpenProjectCommand());
|
||||
panel_assetsetting.onSelectedURL += assetManager.LoadAssetSettingFBXDirectorys;
|
||||
panel_localassets.onSelectedURL += assetManager.LoadAssetSettingFBXDirectorys;
|
||||
panel_assethierarchy.onClickFileItem += assetManager.SetAssetInfo;
|
||||
|
||||
panel_saveandnewchecker.onClickSaveAndNew += () => CommandInvoker.instance.Invoke(new SaveAndNewProjectCommand());
|
||||
panel_saveandopenchecker.onClickSaveAndOpen += () => CommandInvoker.instance.Invoke(new SaveAndOpenProjectCommand());
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
public class UI_AssetHierarchyFileItem : UIBase
|
||||
{
|
||||
private TextMeshProUGUI Text_AssetName;
|
||||
public Action<string, UI_AssetHierarchyFileItem> onClickFileItem;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
var button = GetComponent<Button>();
|
||||
button.onClick.AddListener(OnClickButton);
|
||||
}
|
||||
|
||||
public void SetData(string fileName)
|
||||
{
|
||||
Text_AssetName.SetText(fileName);
|
||||
}
|
||||
private void OnClickButton()
|
||||
{
|
||||
onClickFileItem?.Invoke(Text_AssetName.text, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 69dbe4f926c804947befeb7c9de0f380
|
||||
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
public class UI_AssetHierarchyFolderItem : UIBase
|
||||
{
|
||||
private TextMeshProUGUI Text_FolderName;
|
||||
private Toggle Toggle_Fold;
|
||||
private RectTransform FoldContent;
|
||||
|
||||
private UI_AssetHierarchyFileItem prf_assetHierarchyFileItem;
|
||||
public Action updateLayout;
|
||||
public Action<string, UI_AssetHierarchyFileItem> onClickFileItem;
|
||||
public override void AfterAwake()
|
||||
{
|
||||
Toggle_Fold.onValueChanged.AddListener(OnFoldChanged);
|
||||
prf_assetHierarchyFileItem = Resources.Load<UI_AssetHierarchyFileItem>("Prefabs/UI/PRF_AssetHierarchyFileItem");
|
||||
}
|
||||
public void SetData(string folderName, List<string> files)
|
||||
{
|
||||
Text_FolderName.text = folderName;
|
||||
|
||||
foreach (Transform child in FoldContent)
|
||||
Destroy(child.gameObject);
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
var item = Instantiate(prf_assetHierarchyFileItem, FoldContent);
|
||||
item.onClickFileItem += OnClickFileItem;
|
||||
item.SetData(file);
|
||||
}
|
||||
|
||||
FoldContent.gameObject.SetActive(Toggle_Fold.isOn);
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(FoldContent);
|
||||
ResizeSelf();
|
||||
}
|
||||
|
||||
void OnFoldChanged(bool isOn)
|
||||
{
|
||||
FoldContent.gameObject.SetActive(isOn);
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(FoldContent);
|
||||
var color = Toggle_Fold.targetGraphic.color;
|
||||
color.a = isOn ? 0f : 1f;
|
||||
Toggle_Fold.targetGraphic.color = color;
|
||||
ResizeSelf();
|
||||
}
|
||||
|
||||
void ResizeSelf()
|
||||
{
|
||||
float height = 0f;
|
||||
foreach (RectTransform child in transform)
|
||||
{
|
||||
if (child.gameObject.activeSelf)
|
||||
height += child.rect.height;
|
||||
}
|
||||
var rt = (RectTransform)transform;
|
||||
rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height);
|
||||
updateLayout?.Invoke();
|
||||
}
|
||||
private void OnClickFileItem(string name, UI_AssetHierarchyFileItem item)
|
||||
{
|
||||
onClickFileItem?.Invoke(name, item);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: accc46350e7e933409215846c3795ebd
|
||||
@@ -29,7 +29,6 @@ namespace Studio.UI
|
||||
return;
|
||||
|
||||
onEndEditInputFieldURL?.Invoke(this);
|
||||
Debug.Log("action " + onEndEditInputFieldURL.GetInvocationList().Length);
|
||||
}
|
||||
private void OnClickSelectedFolderButton()
|
||||
{
|
||||
|
||||
104
Assets/Scripts/Studio/UI/Panel/Panel_AssetHierarchy.cs
Normal file
104
Assets/Scripts/Studio/UI/Panel/Panel_AssetHierarchy.cs
Normal file
@@ -0,0 +1,104 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
public class Panel_AssetHierarchy : PanelBase
|
||||
{
|
||||
private Toggle Toggle_ServerAssetsFold;
|
||||
private Toggle Toggle_LocalAssetsFold;
|
||||
|
||||
private RectTransform Content_AssetHierarchy;
|
||||
private RectTransform ServerAssets;
|
||||
private RectTransform LocalAssets;
|
||||
private RectTransform ServerAssetsContent;
|
||||
private RectTransform LocalAssetsContent;
|
||||
|
||||
private UI_AssetHierarchyFolderItem prf_assetHierarchyFolderItem;
|
||||
private List<UI_AssetHierarchyFolderItem> assethierarchyFolderItems = new List<UI_AssetHierarchyFolderItem>();
|
||||
|
||||
public Action<string> onClickFileItem;
|
||||
public Action<RectTransform> onClickAssetItem;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
prf_assetHierarchyFolderItem = Resources.Load<UI_AssetHierarchyFolderItem>("Prefabs/UI/PRF_AssetHierarchyFolderItem");
|
||||
Toggle_LocalAssetsFold.onValueChanged.AddListener(OnChangedLocalAssetsFoldToggle);
|
||||
Toggle_ServerAssetsFold.onValueChanged.AddListener(OnChangedServerAssetsFoldToggle);
|
||||
}
|
||||
|
||||
public void Active(bool isOn)
|
||||
{
|
||||
SetActive(isOn);
|
||||
}
|
||||
private void OnChangedServerAssetsFoldToggle(bool isOn)
|
||||
{
|
||||
ToggleStateChanged(Toggle_ServerAssetsFold, isOn);
|
||||
}
|
||||
private void OnChangedLocalAssetsFoldToggle(bool isOn)
|
||||
{
|
||||
LocalAssetsContent.gameObject.SetActive(isOn);
|
||||
ToggleStateChanged(Toggle_LocalAssetsFold, isOn);
|
||||
UpdateLayout();
|
||||
}
|
||||
private void ToggleStateChanged(Toggle toggle, bool isOn)
|
||||
{
|
||||
var color = toggle.targetGraphic.color;
|
||||
color.a = isOn ? 0f : 1f;
|
||||
toggle.targetGraphic.color = color;
|
||||
}
|
||||
public void SetLocalAssetHierarchy(Dictionary<string, List<string>> fileDatas)
|
||||
{
|
||||
foreach(var item in assethierarchyFolderItems)
|
||||
{
|
||||
Destroy(item.gameObject);
|
||||
}
|
||||
assethierarchyFolderItems.Clear();
|
||||
|
||||
foreach (var fileData in fileDatas)
|
||||
{
|
||||
var item = Instantiate(prf_assetHierarchyFolderItem, LocalAssetsContent);
|
||||
item.updateLayout += UpdateLayout;
|
||||
item.onClickFileItem += OnClickFileItem;
|
||||
item.SetData(fileData.Key, fileData.Value);
|
||||
assethierarchyFolderItems.Add(item);
|
||||
}
|
||||
}
|
||||
private void UpdateLayout()
|
||||
{
|
||||
ResizeLocalAssets();
|
||||
ResizeRoot();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(Content_AssetHierarchy);
|
||||
}
|
||||
|
||||
private void ResizeLocalAssets()
|
||||
{
|
||||
float height = 0f;
|
||||
foreach (RectTransform child in LocalAssetsContent)
|
||||
{
|
||||
if (child.gameObject.activeSelf)
|
||||
height += child.rect.height;
|
||||
}
|
||||
LocalAssetsContent.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height);
|
||||
}
|
||||
|
||||
private void ResizeRoot()
|
||||
{
|
||||
float height = 0f;
|
||||
foreach (RectTransform child in LocalAssets)
|
||||
{
|
||||
if (child.gameObject.activeSelf)
|
||||
height += child.rect.height;
|
||||
}
|
||||
LocalAssets.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height);
|
||||
}
|
||||
private void OnClickFileItem(string name, UI_AssetHierarchyFileItem item)
|
||||
{
|
||||
onClickFileItem?.Invoke(name);
|
||||
onClickAssetItem?.Invoke(item.rectTransform);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfaca4ad268f53541aae86a720b4e243
|
||||
56
Assets/Scripts/Studio/UI/Panel/Panel_AssetInfo.cs
Normal file
56
Assets/Scripts/Studio/UI/Panel/Panel_AssetInfo.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
using TMPro;
|
||||
using Studio.Manage;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
public class Panel_AssetInfo : PanelBase
|
||||
{
|
||||
private Button Button_Close;
|
||||
|
||||
private TextMeshProUGUI AssetName;
|
||||
private TextMeshProUGUI AssetSize;
|
||||
private TextMeshProUGUI AssetPolygons;
|
||||
private TextMeshProUGUI AssetMaterials;
|
||||
private TextMeshProUGUI AssetTextureSize;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
Button_Close.onClick.AddListener(Close);
|
||||
}
|
||||
public void SetAssetInfo(AssetManager.AssetInfo assetInfo)
|
||||
{
|
||||
AssetName.SetText(assetInfo.assetName);
|
||||
AssetSize.SetText(assetInfo.size);
|
||||
AssetPolygons.SetText(assetInfo.polygons);
|
||||
AssetMaterials.SetText(assetInfo.materials);
|
||||
AssetTextureSize.SetText(assetInfo.textureSize);
|
||||
}
|
||||
public void SetPosition(RectTransform targetUI)
|
||||
{
|
||||
if (targetUI == null || rectTransform == null)
|
||||
return;
|
||||
|
||||
SetActive(true);
|
||||
|
||||
Vector3[] targetCorners = new Vector3[4];
|
||||
targetUI.GetWorldCorners(targetCorners);
|
||||
|
||||
Vector3 targetTopRight = targetCorners[2];
|
||||
|
||||
float myUIHeight = rectTransform.rect.height;
|
||||
float myUIPivotY = rectTransform.pivot.y;
|
||||
|
||||
Vector3 desiredWorldPos = targetTopRight + new Vector3(rectTransform.sizeDelta.x / 2f, -myUIHeight * (1 - myUIPivotY), 0f);
|
||||
Vector3 localPos = rectTransform.parent.InverseTransformPoint(desiredWorldPos);
|
||||
|
||||
rectTransform.localPosition = localPos;
|
||||
}
|
||||
private void Close()
|
||||
{
|
||||
SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Studio/UI/Panel/Panel_AssetInfo.cs.meta
Normal file
2
Assets/Scripts/Studio/UI/Panel/Panel_AssetInfo.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dcd185934b4f6184b872e9820d994353
|
||||
@@ -17,25 +17,14 @@ namespace Studio.UI
|
||||
private Toggle Toggle_AssetHierarchy;
|
||||
|
||||
private RectTransform TabToggles;
|
||||
private RectTransform ServerAssets;
|
||||
private RectTransform LocalAssets;
|
||||
private RectTransform AssetHierarchy;
|
||||
|
||||
private RectTransform Content_LocalAssets;
|
||||
|
||||
private Button Button_AddFolderPathItem;
|
||||
private Button Button_Close;
|
||||
|
||||
private UI_FolderPathItem prf_folderPathItem;
|
||||
private List<UI_FolderPathItem> folderPathItems = new List<UI_FolderPathItem>();
|
||||
private Dictionary<int, string> selectedURLs = new Dictionary<int, string>();
|
||||
|
||||
public Action<int, string> onSelectedURL;
|
||||
public Action<bool> onClickServerAssets;
|
||||
public Action<bool> onClickLocalAssets;
|
||||
public Action<bool> onClickAssetHierarchy;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
prf_folderPathItem = Resources.Load<UI_FolderPathItem>("Prefabs/UI/PRF_FolderPathItem");
|
||||
|
||||
toggleGroup = TabToggles.GetComponent<ToggleGroup>();
|
||||
Toggle_ServerAssets.onValueChanged.AddListener(OnServerAssetsValueChanged);
|
||||
Toggle_LocalAssets.onValueChanged.AddListener(OnLocalAssetsValueChanged);
|
||||
@@ -45,9 +34,7 @@ namespace Studio.UI
|
||||
Toggle_LocalAssets.group = toggleGroup;
|
||||
Toggle_AssetHierarchy.group = toggleGroup;
|
||||
|
||||
Button_AddFolderPathItem.onClick.AddListener(OnClickAddFolderPathItemButton);
|
||||
Button_Close.onClick.AddListener(Close);
|
||||
folderPathItems.Clear();
|
||||
}
|
||||
|
||||
public void Open()
|
||||
@@ -61,17 +48,17 @@ namespace Studio.UI
|
||||
private void OnServerAssetsValueChanged(bool isOn)
|
||||
{
|
||||
SetToggleChanged(Toggle_ServerAssets, isOn);
|
||||
ServerAssets.gameObject.SetActive(isOn);
|
||||
onClickServerAssets?.Invoke(isOn);
|
||||
}
|
||||
private void OnLocalAssetsValueChanged(bool isOn)
|
||||
{
|
||||
SetToggleChanged(Toggle_LocalAssets, isOn);
|
||||
LocalAssets.gameObject.SetActive(isOn);
|
||||
onClickLocalAssets?.Invoke(isOn);
|
||||
}
|
||||
private void OnAssetHierarchyValueChanged(bool isOn)
|
||||
{
|
||||
SetToggleChanged(Toggle_AssetHierarchy, isOn);
|
||||
AssetHierarchy.gameObject.SetActive(isOn);
|
||||
onClickAssetHierarchy?.Invoke(isOn);
|
||||
}
|
||||
private void SetToggleChanged(Toggle toggle, bool isOn)
|
||||
{
|
||||
@@ -89,80 +76,5 @@ namespace Studio.UI
|
||||
text.color = Color.black;
|
||||
}
|
||||
}
|
||||
private void OnClickAddFolderPathItemButton()
|
||||
{
|
||||
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
|
||||
folderPathItems.Add(item);
|
||||
item.onEndEditInputFieldURL += LoadAsstsPath;
|
||||
selectedURLs.Add(folderPathItems.IndexOf(item), item.GetURL());
|
||||
|
||||
Button_AddFolderPathItem.transform.SetAsLastSibling();
|
||||
}
|
||||
private void LoadAsstsPath(UI_FolderPathItem item)
|
||||
{
|
||||
for (int i = 0; i < folderPathItems.Count; i++)
|
||||
{
|
||||
if (folderPathItems[i] == item)
|
||||
{
|
||||
onSelectedURL?.Invoke(i, item.GetURL());
|
||||
}
|
||||
}
|
||||
}
|
||||
public AssetManagerData GetAssetManagerData()
|
||||
{
|
||||
var assetManagerData = new AssetManagerData();
|
||||
assetManagerData.localAssetsPaths.AddRange(selectedURLs.Values.ToList());
|
||||
|
||||
return assetManagerData;
|
||||
}
|
||||
public void SetAssetPathItmes(Dictionary<int, string> paths)
|
||||
{
|
||||
var keys = paths.Keys.ToList();
|
||||
|
||||
for (int i = 0; i < keys.Count; i++)
|
||||
{
|
||||
int key = keys[i];
|
||||
|
||||
if (selectedURLs.ContainsKey(key))
|
||||
{
|
||||
folderPathItems[i].SetData(paths[key]);
|
||||
selectedURLs[key] = paths[key];
|
||||
}
|
||||
else
|
||||
{
|
||||
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
|
||||
item.onEndEditInputFieldURL += LoadAsstsPath;
|
||||
item.SetData(paths[key]);
|
||||
folderPathItems.Add(item);
|
||||
selectedURLs.Add(key, item.GetURL());
|
||||
|
||||
Button_AddFolderPathItem.transform.SetAsLastSibling();
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SetAssetManager(AssetManagerData assetManagerData)
|
||||
{
|
||||
selectedURLs.Clear();
|
||||
|
||||
foreach (var item in folderPathItems)
|
||||
{
|
||||
Destroy(item.gameObject);
|
||||
}
|
||||
folderPathItems.Clear();
|
||||
|
||||
if (assetManagerData == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < assetManagerData.localAssetsPaths.Count; i++)
|
||||
{
|
||||
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
|
||||
item.onEndEditInputFieldURL += LoadAsstsPath;
|
||||
item.SetData(assetManagerData.localAssetsPaths[i]);
|
||||
folderPathItems.Add(item);
|
||||
selectedURLs.Add(i, item.GetURL());
|
||||
|
||||
Button_AddFolderPathItem.transform.SetAsLastSibling();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
111
Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs
Normal file
111
Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
using Studio.UI;
|
||||
using Studio.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
public class Panel_LocalAssets : PanelBase
|
||||
{
|
||||
private Button Button_AddFolderPathItem;
|
||||
private RectTransform Content_LocalAssets;
|
||||
|
||||
private UI_FolderPathItem prf_folderPathItem;
|
||||
private List<UI_FolderPathItem> folderPathItems = new List<UI_FolderPathItem>();
|
||||
private Dictionary<int, string> selectedURLs = new Dictionary<int, string>();
|
||||
|
||||
public Action<int, string> onSelectedURL;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
prf_folderPathItem = Resources.Load<UI_FolderPathItem>("Prefabs/UI/PRF_FolderPathItem");
|
||||
Button_AddFolderPathItem.onClick.AddListener(OnClickAddFolderPathItemButton);
|
||||
folderPathItems.Clear();
|
||||
}
|
||||
|
||||
public void Active(bool isOn)
|
||||
{
|
||||
SetActive(isOn);
|
||||
}
|
||||
|
||||
private void OnClickAddFolderPathItemButton()
|
||||
{
|
||||
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
|
||||
folderPathItems.Add(item);
|
||||
item.onEndEditInputFieldURL += LoadAsstsPath;
|
||||
selectedURLs.Add(folderPathItems.IndexOf(item), item.GetURL());
|
||||
|
||||
Button_AddFolderPathItem.transform.SetAsLastSibling();
|
||||
}
|
||||
private void LoadAsstsPath(UI_FolderPathItem item)
|
||||
{
|
||||
for (int i = 0; i < folderPathItems.Count; i++)
|
||||
{
|
||||
if (folderPathItems[i] == item)
|
||||
{
|
||||
onSelectedURL?.Invoke(i, item.GetURL());
|
||||
}
|
||||
}
|
||||
}
|
||||
public AssetManagerData GetAssetManagerData()
|
||||
{
|
||||
var assetManagerData = new AssetManagerData();
|
||||
assetManagerData.localAssetsPaths.AddRange(selectedURLs.Values.ToList());
|
||||
|
||||
return assetManagerData;
|
||||
}
|
||||
public void SetAssetPathItmes(Dictionary<int, string> paths)
|
||||
{
|
||||
var keys = paths.Keys.ToList();
|
||||
|
||||
for (int i = 0; i < keys.Count; i++)
|
||||
{
|
||||
int key = keys[i];
|
||||
|
||||
if (selectedURLs.ContainsKey(key))
|
||||
{
|
||||
folderPathItems[i].SetData(paths[key]);
|
||||
selectedURLs[key] = paths[key];
|
||||
}
|
||||
else
|
||||
{
|
||||
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
|
||||
item.onEndEditInputFieldURL += LoadAsstsPath;
|
||||
item.SetData(paths[key]);
|
||||
folderPathItems.Add(item);
|
||||
selectedURLs.Add(key, item.GetURL());
|
||||
|
||||
Button_AddFolderPathItem.transform.SetAsLastSibling();
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SetAssetManager(AssetManagerData assetManagerData)
|
||||
{
|
||||
selectedURLs.Clear();
|
||||
|
||||
foreach (var item in folderPathItems)
|
||||
{
|
||||
Destroy(item.gameObject);
|
||||
}
|
||||
folderPathItems.Clear();
|
||||
|
||||
if (assetManagerData == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < assetManagerData.localAssetsPaths.Count; i++)
|
||||
{
|
||||
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
|
||||
item.onEndEditInputFieldURL += LoadAsstsPath;
|
||||
item.SetData(assetManagerData.localAssetsPaths[i]);
|
||||
folderPathItems.Add(item);
|
||||
selectedURLs.Add(i, item.GetURL());
|
||||
|
||||
Button_AddFolderPathItem.transform.SetAsLastSibling();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs.meta
Normal file
2
Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9775215d46a0570438911f8252d1705f
|
||||
@@ -47,7 +47,7 @@ namespace Studio.UI
|
||||
var projectName = GetProjectName();
|
||||
var projectPath = GetProjectRoute();
|
||||
|
||||
if (!IsProjectNameVaild(projectName) || !IsProjectPathVaild(projectPath))
|
||||
if (!IsProjectNameVaild(projectName) || !IsProjectPathVaild(projectPath) || !IsProjectExistVaild())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -95,6 +95,17 @@ namespace Studio.UI
|
||||
}
|
||||
return true;
|
||||
}
|
||||
private bool IsProjectExistVaild()
|
||||
{
|
||||
var projectPath = InputField_ProjectRoute.text;
|
||||
var projectNameAndExtension = $"{InputField_ProjectName.text}.ocs";
|
||||
|
||||
var filePath = Path.Combine(projectPath, projectNameAndExtension);
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
13
Assets/Scripts/Studio/UI/Panel/Panel_ServerAssets.cs
Normal file
13
Assets/Scripts/Studio/UI/Panel/Panel_ServerAssets.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
public class Panel_ServerAssets : PanelBase
|
||||
{
|
||||
public void Active(bool isOn)
|
||||
{
|
||||
SetActive(isOn);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e9030b3015f5d3349a567a901859ed32
|
||||
@@ -41,7 +41,7 @@ namespace Studio.UI
|
||||
var projectName = GetProjectName();
|
||||
var projectPath = GetProjectRoute();
|
||||
|
||||
if (!IsProjectNameVaild(projectName) || !IsProjectPathVaild(projectPath))
|
||||
if (!IsProjectNameVaild(projectName) || !IsProjectPathVaild(projectPath) || !IsProjectExistVaild())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -87,5 +87,17 @@ namespace Studio.UI
|
||||
}
|
||||
return true;
|
||||
}
|
||||
private bool IsProjectExistVaild()
|
||||
{
|
||||
var projectPath = InputField_ProjectRoute.text;
|
||||
var projectNameAndExtension = $"{InputField_ProjectName.text}.ocs";
|
||||
|
||||
var filePath = Path.Combine(projectPath, projectNameAndExtension);
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ namespace Studio.AssetLibraryTree
|
||||
private AssetLibraryItem lastSelectedItem = null;
|
||||
|
||||
private float itemHeight; // Height of a single item.
|
||||
private float folderHeight;
|
||||
private int visibleItemCount; // Number of visible items that fit in the viewport.
|
||||
private int currentIndex = -1; // The index of the first visible item.
|
||||
|
||||
@@ -42,7 +41,8 @@ namespace Studio.AssetLibraryTree
|
||||
|
||||
public bool isSiblingEditable;
|
||||
|
||||
int rowItemCount = 3;
|
||||
private int rowItemCount = 3;
|
||||
private float scrollViewOffset = 2f;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -85,9 +85,7 @@ namespace Studio.AssetLibraryTree
|
||||
scrollRect.setToNextSiblingItem.AddListener(SetToNextSiblingItem);
|
||||
//아이템 하나당 높이값 저장
|
||||
itemHeight = itemPrefab.GetComponent<RectTransform>().rect.height;
|
||||
folderHeight = folderPrefab.GetComponent<RectTransform>().rect.height;
|
||||
float rowHeight = itemHeight + 10f; // row 간격 포함 (spacingY)
|
||||
visibleItemCount = Mathf.CeilToInt(scrollRect.GetComponent<RectTransform>().sizeDelta.y / rowHeight) + 1;
|
||||
visibleItemCount = Mathf.CeilToInt(scrollRect.GetComponent<RectTransform>().sizeDelta.y / itemHeight) + 1;
|
||||
|
||||
searchInput.onValueChanged.AddListener(SearchData);
|
||||
//searchCancelButton.onClick.RemoveAllListeners();
|
||||
@@ -124,6 +122,39 @@ namespace Studio.AssetLibraryTree
|
||||
{
|
||||
return root.Find(name, type);
|
||||
}
|
||||
public void CalculateSlotArea()
|
||||
{
|
||||
int fileCountCurLine = 0;
|
||||
displayData.Clear();
|
||||
|
||||
foreach (var item in data)
|
||||
{
|
||||
if (item.type == AssetLibraryItemType.folder)
|
||||
{
|
||||
if (fileCountCurLine > 0)
|
||||
{
|
||||
for (int i = 0; i < rowItemCount - fileCountCurLine; i++)
|
||||
{
|
||||
displayData.Add(null);
|
||||
}
|
||||
fileCountCurLine = 0;
|
||||
}
|
||||
|
||||
displayData.Add(item);
|
||||
displayData.Add(null);
|
||||
displayData.Add(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
fileCountCurLine++;
|
||||
displayData.Add(item);
|
||||
if (fileCountCurLine == 3)
|
||||
{
|
||||
fileCountCurLine = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SetData()
|
||||
{
|
||||
data.Clear();
|
||||
@@ -144,9 +175,8 @@ namespace Studio.AssetLibraryTree
|
||||
|
||||
private void RebuildVisibleItems()
|
||||
{
|
||||
float rowHeight = itemHeight + 10f;
|
||||
float scrollY = content.anchoredPosition.y;
|
||||
int newRowIndex = Mathf.FloorToInt(scrollY / rowHeight);
|
||||
int newRowIndex = Mathf.FloorToInt(scrollY / itemHeight);
|
||||
if (newRowIndex < 0) newRowIndex = 0;
|
||||
|
||||
if (newRowIndex == currentIndex)
|
||||
@@ -161,31 +191,9 @@ namespace Studio.AssetLibraryTree
|
||||
foldersPool.Release(item);
|
||||
|
||||
activeItems.Clear();
|
||||
activeFolders.Clear();
|
||||
displayData.Clear();
|
||||
activeFolders.Clear();
|
||||
|
||||
foreach (var item in data)
|
||||
{
|
||||
if (item.type == AssetLibraryItemType.folder)
|
||||
{
|
||||
int offset = displayData.Count % rowItemCount;
|
||||
|
||||
if (offset != 0)
|
||||
{
|
||||
int emptyCount = rowItemCount - offset;
|
||||
for (int i = 0; i < emptyCount; i++)
|
||||
displayData.Add(null);
|
||||
}
|
||||
|
||||
displayData.Add(item);
|
||||
displayData.Add(null);
|
||||
displayData.Add(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
displayData.Add(item);
|
||||
}
|
||||
}
|
||||
CalculateSlotArea();
|
||||
|
||||
int startIndex = Mathf.Clamp(currentIndex * rowItemCount, 0, displayData.Count);
|
||||
int endIndex = Mathf.Clamp((currentIndex + visibleItemCount) * rowItemCount, 0, displayData.Count);
|
||||
@@ -196,60 +204,66 @@ namespace Studio.AssetLibraryTree
|
||||
{
|
||||
float spacingX = 25f;
|
||||
float spacingY = 0f;
|
||||
int folderCount = 0;
|
||||
float height = 0f;
|
||||
|
||||
RectTransform viewport = scrollRect.GetComponent<RectTransform>();
|
||||
float contentWidth = viewport.sizeDelta.x;
|
||||
float itemWidth = itemPrefab.GetComponent<RectTransform>().sizeDelta.x;
|
||||
|
||||
int allRowItemCount = Mathf.CeilToInt(data.Count / rowItemCount);
|
||||
float totalHeight = allRowItemCount * (itemHeight + spacingY);
|
||||
int folderRowCount = 0;
|
||||
int allRowItemCount = Mathf.CeilToInt(displayData.Count / (float)rowItemCount);
|
||||
float totalHeight = allRowItemCount * (itemHeight + spacingY) + scrollViewOffset * 2;
|
||||
|
||||
content.sizeDelta = new Vector2(contentWidth, totalHeight);
|
||||
|
||||
for (int i = startIndex; i < endIndex; i++)
|
||||
{
|
||||
AssetLibraryItem item = displayData[i];
|
||||
|
||||
if (item == null)
|
||||
continue;
|
||||
if (item == null) continue;
|
||||
|
||||
RectTransform itemRt;
|
||||
float width;
|
||||
|
||||
var width = 0f;
|
||||
// 폴더 처리
|
||||
if (item.type == AssetLibraryItemType.folder)
|
||||
{
|
||||
AssetLibraryScrollFolderUI itemUI = foldersPool.Get();
|
||||
width = scrollRect.content.sizeDelta.x;
|
||||
var itemUI = foldersPool.Get();
|
||||
itemUI.SetItemData(item);
|
||||
itemUI.transform.SetParent(content, false);
|
||||
itemRt = itemUI.GetComponent<RectTransform>();
|
||||
height = folderHeight;
|
||||
activeFolders.Add(itemUI);
|
||||
|
||||
width = contentWidth;
|
||||
}
|
||||
// 파일 처리
|
||||
else
|
||||
{
|
||||
AssetLibraryScrollItemUI itemUI = GetItemUI();
|
||||
width = itemWidth;
|
||||
var itemUI = GetItemUI();
|
||||
itemUI.SetItemData(item);
|
||||
itemUI.SetSelected(selectedItems);
|
||||
itemUI.transform.SetParent(content, false);
|
||||
itemRt = itemUI.GetComponent<RectTransform>();
|
||||
height = itemHeight;
|
||||
activeItems.Add(itemUI);
|
||||
}
|
||||
|
||||
width = itemWidth;
|
||||
}
|
||||
|
||||
// 위치 계산
|
||||
int row = i / rowItemCount;
|
||||
int col = i % rowItemCount;
|
||||
|
||||
float x = item.type == AssetLibraryItemType.folder? 0f:col * (width + spacingX) - ((rowItemCount - 1) * (width + spacingX)) / 2f;
|
||||
float y = -(row-folderCount) * ( itemHeight + spacingY) + (-folderCount * (folderHeight + spacingY)) - height / 2f;
|
||||
float x = (item.type == AssetLibraryItemType.folder)
|
||||
? 0f
|
||||
: col * (width + spacingX) - ((rowItemCount - 1) * (width + spacingX)) / 2f;
|
||||
|
||||
itemRt.sizeDelta = new Vector2(width, height);
|
||||
float y = -(row - folderRowCount) * (itemHeight + spacingY)
|
||||
- (folderRowCount * (itemHeight + spacingY))
|
||||
- itemHeight / 2f - scrollViewOffset;
|
||||
|
||||
itemRt.sizeDelta = new Vector2(width, itemHeight);
|
||||
itemRt.anchoredPosition = new Vector2(x, y);
|
||||
|
||||
if (item.type == AssetLibraryItemType.folder)
|
||||
folderCount++;
|
||||
folderRowCount++;
|
||||
}
|
||||
}
|
||||
private AssetLibraryScrollItemUI GetItemUI()
|
||||
|
||||
@@ -72,6 +72,8 @@ namespace Studio.HierarchyTree
|
||||
visibleItemCount = Mathf.CeilToInt(scrollRect.GetComponent<RectTransform>().sizeDelta.y / itemHeight) + 1;
|
||||
|
||||
searchInput.onValueChanged.AddListener(SearchData);
|
||||
ManagerHub.instance.Get<RunManager>().onRun += DisallowSiblingEdit;
|
||||
ManagerHub.instance.Get<RunManager>().onStop += AllowSiblingEdit;
|
||||
//searchCancelButton.onClick.RemoveAllListeners();
|
||||
//searchCancelButton.onClick.AddListener(CancelSearch);
|
||||
|
||||
@@ -521,5 +523,13 @@ namespace Studio.HierarchyTree
|
||||
RebuildVisibleItems();
|
||||
}
|
||||
}
|
||||
private void AllowSiblingEdit()
|
||||
{
|
||||
isSiblingEditable = true;
|
||||
}
|
||||
private void DisallowSiblingEdit()
|
||||
{
|
||||
isSiblingEditable = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/WorkSpace.meta
Normal file
8
Assets/WorkSpace.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 435ab58676f04c54e82935535d201d4d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/WorkSpace/Personal.meta
Normal file
8
Assets/WorkSpace/Personal.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a556b638d88fda4bac556618b3173aa
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user