fix:1、删除sdk相关。2、添加tips界面,修复bug

This commit is contained in:
2026-06-17 14:45:28 +08:00
parent 19efcb09fa
commit acf888d9be
1099 changed files with 127081 additions and 74087 deletions
Binary file not shown.
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 468a46d0ae32c3544b7d98094e6448a9, type: 3}
m_Name: AddressableAssetSettings
m_EditorClassIdentifier:
m_DefaultGroup: abe3216c3294a45d18af07d6cce2360e
m_DefaultGroup: 44ddb8303f246d3429b89e77b6db6c3e
m_currentHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
@@ -44,8 +44,51 @@ MonoBehaviour:
m_BuildAddressablesWithPlayerBuild: 0
m_overridePlayerVersion: '[UnityEditor.PlayerSettings.bundleVersion]'
m_GroupAssets:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 11400000, guid: a19edbf36d6d44e098c63387983d4d97, type: 2}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 11400000, guid: 53e1a4ed3a577411b9f5956caced999e, type: 2}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
m_BuildSettings:
m_CompileScriptsInVirtualMode: 0
m_CleanupStreamingAssetsAfterBuilds: 1
@@ -54,39 +97,40 @@ MonoBehaviour:
m_ProfileSettings:
m_Profiles:
- m_InheritedParent:
m_Id: 1e122962d3ba34072a95c7a4666ceca8
m_Id: 27fff528d45a4bb44bfc8779970da25b
m_ProfileName: Default
m_Values:
- m_Id: 149e4b22ef2cc41d59b113c7620ccab0
m_Value: http://[PrivateIpAddress]:[HostingServicePort]
- m_Id: 94186e17d2d9842b98168de80ccb1139
m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
- m_Id: a2a9ea15c563641048654cbedd8eb8d5
m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]'
- m_Id: dd361320b57014fda8253071012a1431
- m_Id: 2f3d3257274d78e4dae6b08ef4e893e6
m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
- m_Id: de3663c4709d941a0947b3fc14bff464
- m_Id: 37d8baeddf6454e49a85d1f2e661f95c
m_Value: ServerData/[BuildTarget]
- m_Id: 5ddf744270953584796a990b528904a7
m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
- m_Id: 94915a7238c2d13408e235e46d828b68
m_Value: http://[PrivateIpAddress]:[HostingServicePort]
- m_Id: fbab78dd25f36a0469f3745cbc32cc3e
m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]'
m_ProfileEntryNames:
- m_Id: 149e4b22ef2cc41d59b113c7620ccab0
m_Name: Remote.LoadPath
m_InlineUsage: 0
- m_Id: 94186e17d2d9842b98168de80ccb1139
m_Name: Local.LoadPath
m_InlineUsage: 0
- m_Id: a2a9ea15c563641048654cbedd8eb8d5
m_Name: BuildTarget
m_InlineUsage: 0
- m_Id: dd361320b57014fda8253071012a1431
- m_Id: 2f3d3257274d78e4dae6b08ef4e893e6
m_Name: Local.BuildPath
m_InlineUsage: 0
- m_Id: de3663c4709d941a0947b3fc14bff464
- m_Id: 37d8baeddf6454e49a85d1f2e661f95c
m_Name: Remote.BuildPath
m_InlineUsage: 0
- m_Id: 5ddf744270953584796a990b528904a7
m_Name: Local.LoadPath
m_InlineUsage: 0
- m_Id: 94915a7238c2d13408e235e46d828b68
m_Name: Remote.LoadPath
m_InlineUsage: 0
- m_Id: fbab78dd25f36a0469f3745cbc32cc3e
m_Name: BuildTarget
m_InlineUsage: 0
m_ProfileVersion: 1
m_LabelTable:
m_LabelNames:
- default
- config
m_SchemaTemplates: []
m_GroupTemplateObjects:
- {fileID: 11400000, guid: 62a529215ac824aa7affe03fff7fdd3a, type: 2}
@@ -100,7 +144,7 @@ MonoBehaviour:
- {fileID: 11400000, guid: e625ff636d3a140b583859158f40bdff, type: 2}
- {fileID: 11400000, guid: f7c4cd7de5dd8409e8441863d0a3a38c, type: 2}
- {fileID: 11400000, guid: 34a1c74baf66c4989bc4af43c2515318, type: 2}
m_ActiveProfileId: 1e122962d3ba34072a95c7a4666ceca8
m_ActiveProfileId: 27fff528d45a4bb44bfc8779970da25b
m_HostingServicesManager:
m_HostingServiceInfos: []
m_Settings: {fileID: 11400000}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 56dcb07281839a24d96a78d39d49089c
guid: 9930d409aa7d3ae4b98cd61a7a9899a5
folderAsset: yes
DefaultImporter:
externalObjects: {}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 70fc6af576ac24f6aa283eecbf393621
guid: 6546b9152cc7fc04698cb672bcd9c0d3
DefaultImporter:
externalObjects: {}
userData:
@@ -15,20 +15,9 @@ MonoBehaviour:
m_GroupName: Built In Data
m_Data:
m_SerializedData: []
m_GUID: 6479bbab3bae64b3f813b0f247a0c8fa
m_SerializeEntries:
- m_GUID: EditorSceneList
m_Address: EditorSceneList
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: Resources
m_Address: Resources
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_GUID: 3bd30133260a9f9488fd1f731ba077ea
m_SerializeEntries: []
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: b11a43be6977b47db88d15f90200f479, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: d6539906573af4526b3c14af49003926, type: 2}
m_Schemas: []
@@ -15,7 +15,7 @@ MonoBehaviour:
m_GroupName: Default Local Group
m_Data:
m_SerializedData: []
m_GUID: abe3216c3294a45d18af07d6cce2360e
m_GUID: 6e9fc6d49cf83e84fa5d93c874d50b9c
m_SerializeEntries:
- m_GUID: c525a342ca76e4534bcb3202a822b3a6
m_Address: Assets/Configs
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Default Local Group_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 53e1a4ed3a577411b9f5956caced999e, type: 2}
m_Group: {fileID: 0}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
@@ -34,9 +34,9 @@ MonoBehaviour:
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: dd361320b57014fda8253071012a1431
m_Id: 2f3d3257274d78e4dae6b08ef4e893e6
m_LoadPath:
m_Id: 94186e17d2d9842b98168de80ccb1139
m_Id: 5ddf744270953584796a990b528904a7
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
@@ -12,5 +12,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Default Local Group_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 53e1a4ed3a577411b9f5956caced999e, type: 2}
m_Group: {fileID: 0}
m_StaticContent: 0
@@ -58,5 +58,9 @@ namespace ChillConnect
public static uint add_points = ++Cursor_BASE;
public static uint RefreshHallRank = ++Cursor_BASE;
public static uint CloseMask = ++Cursor_BASE;
public static uint ThemeChange = ++Cursor_BASE;
public static uint UpdateSpeed = ++Cursor_BASE;
public static uint SetDelete = ++Cursor_BASE;
}
}
@@ -72,8 +72,8 @@ namespace ChillConnect
public static uint GetTaskRewardUI_Close = ++cursor_OpenClose;
public static uint PayloadingUI_Open = ++cursor_OpenClose;
public static uint PayloadingUI_Close = ++cursor_OpenClose;
public static uint BackgroundUI_Open = ++cursor_OpenClose;
public static uint BackgroundUI_Close = ++cursor_OpenClose;
public static uint ArrowTipsUI_Open = ++cursor_OpenClose;
public static uint ArrowTipsUI_Close = ++cursor_OpenClose;
public static uint MainUI_Open = ++cursor_OpenClose;
public static uint MainUI_Close = ++cursor_OpenClose;
public static uint PlayBgUI_Close = ++cursor_OpenClose;
@@ -14,9 +14,11 @@ namespace FGUI.Arrow_game
UIObjectFactory.SetPackageItemExtension(ArrorPoint.URL, typeof(ArrorPoint));
UIObjectFactory.SetPackageItemExtension(HeartsPanel.URL, typeof(HeartsPanel));
UIObjectFactory.SetPackageItemExtension(com_finger.URL, typeof(com_finger));
UIObjectFactory.SetPackageItemExtension(btn_watch.URL, typeof(btn_watch));
UIObjectFactory.SetPackageItemExtension(btn_saveingpot.URL, typeof(btn_saveingpot));
UIObjectFactory.SetPackageItemExtension(btn_petty.URL, typeof(btn_petty));
UIObjectFactory.SetPackageItemExtension(btn_green.URL, typeof(btn_green));
UIObjectFactory.SetPackageItemExtension(com_tips.URL, typeof(com_tips));
UIObjectFactory.SetPackageItemExtension(com_bottom.URL, typeof(com_bottom));
}
}
@@ -0,0 +1,27 @@
/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
using FairyGUI;
using FairyGUI.Utils;
namespace FGUI.Arrow_game
{
public partial class btn_watch : GButton
{
public GImage bg;
public GTextField text;
public const string URL = "ui://sjl9teijrsd4g";
public static btn_watch CreateInstance()
{
return (btn_watch)UIPackage.CreateObject("Arrow_game", "btn_watch");
}
public override void ConstructFromXML(XML xml)
{
base.ConstructFromXML(xml);
bg = (GImage)GetChildAt(0);
text = (GTextField)GetChildAt(1);
}
}
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a26e6efd7d7cca34ab027117de8c8caf
guid: e2e52de8e35c2c745bbbfcd811d27180
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -0,0 +1,27 @@
/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
using FairyGUI;
using FairyGUI.Utils;
namespace FGUI.Arrow_game
{
public partial class com_tips : GComponent
{
public btn_watch btn_watch;
public GButton btn_close;
public const string URL = "ui://sjl9teijrto31o";
public static com_tips CreateInstance()
{
return (com_tips)UIPackage.CreateObject("Arrow_game", "com_tips");
}
public override void ConstructFromXML(XML xml)
{
base.ConstructFromXML(xml);
btn_watch = (btn_watch)GetChildAt(4);
btn_close = (GButton)GetChildAt(5);
}
}
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: efc085dd10631ca48a50c72036c3514f
guid: 7da14c1360b753e48b3778273d8e6a9c
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -22,10 +22,10 @@ namespace FGUI.GameResult_08
{
base.ConstructFromXML(xml);
title = (GTextField)GetChildAt(3);
btn_watchAd = (GButton)GetChildAt(8);
btn_restart = (GButton)GetChildAt(9);
btn_back = (GButton)GetChildAt(10);
title = (GTextField)GetChildAt(2);
btn_watchAd = (GButton)GetChildAt(7);
btn_restart = (GButton)GetChildAt(8);
btn_back = (GButton)GetChildAt(9);
}
}
}
@@ -22,10 +22,10 @@ namespace FGUI.GameResult_08
{
base.ConstructFromXML(xml);
title = (GTextField)GetChildAt(3);
btn_back = (GButton)GetChildAt(4);
btn_revive = (GButton)GetChildAt(6);
btn_restart = (GButton)GetChildAt(7);
title = (GTextField)GetChildAt(2);
btn_back = (GButton)GetChildAt(3);
btn_revive = (GButton)GetChildAt(5);
btn_restart = (GButton)GetChildAt(6);
}
}
}
@@ -20,6 +20,10 @@ namespace FGUI.Setting_07
public btn_on_off btn_sound;
public btn_menu btn_us;
public btn_menu btn_restore;
public GButton btn_revive;
public GSlider speed_slide;
public GTextField level_text;
public GButton btn_player;
public Transition show;
public Transition hide;
public const string URL = "ui://8rcjs2ucsebxf";
@@ -33,11 +37,11 @@ namespace FGUI.Setting_07
{
base.ConstructFromXML(xml);
edit_name = (com_edit_name)GetChildAt(3);
list = (GList)GetChildAt(4);
btn_close = (GButton)GetChildAt(5);
text_uid = (GTextField)GetChildAt(6);
text_version = (GTextField)GetChildAt(7);
edit_name = (com_edit_name)GetChildAt(4);
list = (GList)GetChildAt(5);
btn_close = (GButton)GetChildAt(6);
text_uid = (GTextField)GetChildAt(7);
text_version = (GTextField)GetChildAt(8);
head = (GButton)GetChildAt(12);
btn_official = (btn_menu)GetChildAt(13);
btn_privacy = (btn_menu)GetChildAt(14);
@@ -46,6 +50,10 @@ namespace FGUI.Setting_07
btn_sound = (btn_on_off)GetChildAt(17);
btn_us = (btn_menu)GetChildAt(18);
btn_restore = (btn_menu)GetChildAt(19);
btn_revive = (GButton)GetChildAt(20);
speed_slide = (GSlider)GetChildAt(21);
level_text = (GTextField)GetChildAt(25);
btn_player = (GButton)GetChildAt(26);
show = GetTransitionAt(0);
hide = GetTransitionAt(1);
}
+2 -2
View File
@@ -16,7 +16,7 @@ using System.IO;
using Newtonsoft.Json;
using SGModule.DataStorage;
using UnityEngine.Events;
using AppsFlyerSDK;
// using AppsFlyerSDK;
using SGModule.NetKit;
namespace ChillConnect
{
@@ -609,7 +609,7 @@ namespace ChillConnect
var url = $"mailto:{email}?subject={subject}&body={body}";
var uri = new Uri(url);
OpenBrowser.OpenURL(uri.AbsoluteUri);
Application.OpenURL(uri.AbsoluteUri);
GameHelper.ShowTips("Trying to call send mail...");
}
-8
View File
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: d95f4eb6b76da3c4e98b4ef7af986b62
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,19 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -1465085449, guid: 3781f2218eef4d5a823dba406baa434b, type: 3}
m_Name: CrashlyticsSettings
m_EditorClassIdentifier:
configuration:
stringProperties: []
intProperties: []
floatProperties: []
booleanProperties: []
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: e3b372c796e407e499eff2e854a571ec
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: ff264e59d64e1824e8d61afc436a5db7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: dc218b335b1d14cd5ae532f65042d829
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics.png
timeCreated: 1473376337
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 9fe4b3bd3b7d2477dac92fb7429d1d1b
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 394b3ec4d60c24476a12e4ba696d9e5d
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 3a9e1ef6287664c389bb09e2ac1b23b7
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 837e8e1f35e334e81931d0857680cebf
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging.png
timeCreated: 1473376336
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 521 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 20c5b8a1f82cb4aadb77ca20683d2a6e
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 415eaec414af14d11955222a282aca08
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_config.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 0ad9ef5fff5524355a9670c90a99cbba
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_config_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 454 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 008a5e76206e49f9b06d8ba144aabb38
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 214009068900439da4a9cded17d58090
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

@@ -1,69 +0,0 @@
fileFormatVersion: 2
guid: 3eea7b558c67b48e18acf3c278392e3d
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_database.png
timeCreated: 1476203961
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: -1
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

@@ -1,69 +0,0 @@
fileFormatVersion: 2
guid: 9f6bfa9d8aefb40dc92461c372c73b0f
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_database_dark.png
timeCreated: 1476203949
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: -1
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: df6f219c396f4ad9b5048bae6944cb8e
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_dynamic_links.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 9355a4671cfe4eef90879863318d1a4b
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_dynamic_links_dark.png
timeCreated: 1472679009
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 953367231f9e3e22e70e5d1c91a40fe5
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: b5aa3e4f7432e1c5698417cc13f85271
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 741b269777f30488482ef4937b456b28
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_invites.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: a734ad7414926404e90f8b5be37b7e23
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_invites_dark.png
timeCreated: 1472679009
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

@@ -1,78 +0,0 @@
fileFormatVersion: 2
guid: 573eb851c99f948f4bf2de49322bfd53
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage.png
timeCreated: 1481243899
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

@@ -1,78 +0,0 @@
fileFormatVersion: 2
guid: 2955864b938094f579ea9902b65ac10c
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage_dark.png
timeCreated: 1481243898
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 9f058f25e8e2d47cfb894951d4d7e48a
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup.png
timeCreated: 1473376336
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: b93330fc8ea08407dbc514b5101afa14
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup_dark.png
timeCreated: 1472601251
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot:
x: 0.5
y: 0.5
spriteBorder:
x: 0
y: 0
z: 0
w: 0
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
+29
View File
@@ -0,0 +1,29 @@
using System.Collections.Generic;
namespace ChillConnect.Editor
{
[System.Serializable]
public class EditorLevelConfig
{
public int levelId;
public string levelName;
public int gridRows;
public int gridCols;
public int pointSpacing;
public List<EditorArrowConfig> arrows;
}
[System.Serializable]
public class EditorArrowConfig
{
public int id;
public int startPoint;
public List<string> path;
}
[System.Serializable]
public class EditorAllLevelRoot
{
public List<EditorLevelConfig> levels;
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9188e4d5fc904730b169ca235b32903b
timeCreated: 1781601766
+271
View File
@@ -0,0 +1,271 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;
using ChillConnect;
namespace ChillConnect.Editor
{
public static class ArrowLevelGenerator
{
private const int MaxGenerateAttempts = 500; // 单关最大尝试次数
private static readonly string[] Directions = { "up", "down", "left", "right" };
/// <summary>
/// 生成单个关卡
/// </summary>
public static EditorLevelConfig GenerateLevel(int levelId, LevelDifficultyPreset preset)
{
for (int attempt = 0; attempt < MaxGenerateAttempts; attempt++)
{
EditorLevelConfig level = new EditorLevelConfig
{
levelId = levelId,
levelName = $"第{levelId - 1000}关",
gridRows = preset.gridRows,
gridCols = preset.gridCols,
pointSpacing = 60,
arrows = new List<EditorArrowConfig>()
};
bool[,] occupied = new bool[preset.gridRows, preset.gridCols];
int arrowId = 1;
int failedCount = 0;
// 逐个生成箭头,直到达到目标数量或多次失败
while (level.arrows.Count < preset.arrowCount && failedCount < 100)
{
if (TryGenerateArrow(preset, occupied, level.gridRows, level.gridCols,
out EditorArrowConfig arrow))
{
arrow.id = arrowId++;
level.arrows.Add(arrow);
// 标记占用
MarkOccupied(arrow, occupied, level.gridCols);
}
else
{
failedCount++;
}
}
// 箭头数太少,放弃本次
if (level.arrows.Count < preset.minArrowCount)
continue;
// 可解性校验
if (CheckSolvable(level))
{
return level;
}
}
Debug.LogWarning($"关卡 {levelId} 达到最大尝试次数仍未生成合格关卡");
return null;
}
/// <summary>
/// 尝试生成单个合法箭头
/// </summary>
private static bool TryGenerateArrow(LevelDifficultyPreset preset, bool[,] occupied,
int rows, int cols, out EditorArrowConfig arrow)
{
arrow = null;
// 随机起点
int startRow = Random.Range(0, rows);
int startCol = Random.Range(0, cols);
if (occupied[startRow, startCol])
return false;
// 随机路径长度和折数
int pathLength = Random.Range(preset.minPathLength, preset.maxPathLength + 1);
int maxTurns = preset.maxTurnCount;
int turns = 0;
List<string> path = new List<string>();
List<(int r, int c)> pathPoints = new List<(int r, int c)> { (startRow, startCol) };
string lastDir = Directions[Random.Range(0, Directions.Length)];
int curRow = startRow;
int curCol = startCol;
for (int i = 0; i < pathLength; i++)
{
string curDir = lastDir;
// 有概率转向
if (i > 0 && turns < maxTurns && Random.value < preset.turnProbability)
{
// 随机换一个方向(不能回头)
List<string> validDirs = new List<string>(Directions);
validDirs.Remove(GetOppositeDir(lastDir));
curDir = validDirs[Random.Range(0, validDirs.Count)];
turns++;
}
// 计算下一点
(int nr, int nc) = MoveDir(curRow, curCol, curDir);
// 越界或已占用,终止
if (nr < 0 || nr >= rows || nc < 0 || nc >= cols || occupied[nr, nc])
break;
path.Add(curDir);
pathPoints.Add((nr, nc));
curRow = nr;
curCol = nc;
lastDir = curDir;
}
// 路径太短,无效
if (path.Count < 1)
return false;
// 构造箭头
arrow = new EditorArrowConfig
{
startPoint = startRow * cols + startCol,
path = path
};
return true;
}
/// <summary>
/// 标记箭头占用的网格点
/// </summary>
private static void MarkOccupied(EditorArrowConfig arrow, bool[,] occupied, int totalCols)
{
int pointId = arrow.startPoint;
int row = pointId / totalCols;
int col = pointId % totalCols;
occupied[row, col] = true;
foreach (string dir in arrow.path)
{
(row, col) = MoveDir(row, col, dir);
occupied[row, col] = true;
}
}
/// <summary>
/// 可解性校验:贪心模拟消除法
/// </summary>
public static bool CheckSolvable(EditorLevelConfig level)
{
int rows = level.gridRows;
int cols = level.gridCols;
// 复制占用矩阵
bool[,] occupied = new bool[rows, cols];
foreach (var arrow in level.arrows)
{
MarkOccupied(arrow, occupied, cols);
}
List<EditorArrowConfig> remaining = new List<EditorArrowConfig>(level.arrows);
int roundCount = 0;
const int maxRounds = 200;
while (remaining.Count > 0 && roundCount < maxRounds)
{
roundCount++;
List<EditorArrowConfig> canRemove = new List<EditorArrowConfig>();
foreach (var arrow in remaining)
{
if (CanArrowFlyOut(arrow, occupied, rows, cols))
{
canRemove.Add(arrow);
}
}
if (canRemove.Count == 0)
return false; // 死局
// 消除第一个可消除的箭头,释放占用
var toRemove = canRemove[0];
ReleaseOccupied(toRemove, occupied, cols);
remaining.Remove(toRemove);
}
return remaining.Count == 0;
}
/// <summary>
/// 判断箭头是否能直接飞出(前方无阻挡)
/// </summary>
private static bool CanArrowFlyOut(EditorArrowConfig arrow, bool[,] occupied, int rows, int cols)
{
// 获取最终射出方向
string finalDir = arrow.path[arrow.path.Count - 1];
// 获取箭头头部位置(路径终点)
int pointId = arrow.startPoint;
int row = pointId / cols;
int col = pointId % cols;
foreach (string dir in arrow.path)
{
(row, col) = MoveDir(row, col, dir);
}
// 沿射出方向一路检查到边界
while (true)
{
(row, col) = MoveDir(row, col, finalDir);
if (row < 0 || row >= rows || col < 0 || col >= cols)
return true; // 飞出边界
if (occupied[row, col])
return false; // 前方有阻挡
}
}
/// <summary>
/// 释放箭头占用
/// </summary>
private static void ReleaseOccupied(EditorArrowConfig arrow, bool[,] occupied, int totalCols)
{
int pointId = arrow.startPoint;
int row = pointId / totalCols;
int col = pointId % totalCols;
occupied[row, col] = false;
foreach (string dir in arrow.path)
{
(row, col) = MoveDir(row, col, dir);
occupied[row, col] = false;
}
}
#region
private static (int r, int c) MoveDir(int row, int col, string dir)
{
switch (dir)
{
case "up": return (row - 1, col);
case "down": return (row + 1, col);
case "left": return (row, col - 1);
case "right": return (row, col + 1);
default: return (row, col);
}
}
private static string GetOppositeDir(string dir)
{
switch (dir)
{
case "up": return "down";
case "down": return "up";
case "left": return "right";
case "right": return "left";
default: return dir;
}
}
#endregion
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f1de2afcf128468783594983d832f7a2
timeCreated: 1781601376
+106
View File
@@ -0,0 +1,106 @@
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
using ChillConnect;
namespace ChillConnect.Editor
{
public class ArrowLevelGeneratorWindow : EditorWindow
{
private int _startLevelId = 1001;
private int _generateCount = 100;
private string _outputPath = "Assets/StreamingAssets/all_levels.json";
private Vector2 _scrollPos;
private List<EditorLevelConfig> _generatedLevels = new List<EditorLevelConfig>();
[MenuItem("Tools/箭头游戏/关卡生成器")]
public static void ShowWindow()
{
GetWindow<ArrowLevelGeneratorWindow>("箭头关卡生成器");
}
private void OnGUI()
{
GUILayout.Label("基础设置", EditorStyles.boldLabel);
_startLevelId = EditorGUILayout.IntField("起始关卡ID", _startLevelId);
_generateCount = EditorGUILayout.IntSlider("生成关卡数量", _generateCount, 1, 200);
_outputPath = EditorGUILayout.TextField("输出路径", _outputPath);
GUILayout.Space(10);
if (GUILayout.Button("一键生成 100 关(含预设难度+图案关)", GUILayout.Height(40)))
{
GenerateAllLevels();
}
GUILayout.Space(10);
if (GUILayout.Button("导出到 JSON 文件"))
{
ExportToJson();
}
GUILayout.Space(10);
GUILayout.Label($"已生成关卡数:{_generatedLevels.Count}", EditorStyles.boldLabel);
_scrollPos = EditorGUILayout.BeginScrollView(_scrollPos);
foreach (var level in _generatedLevels)
{
EditorGUILayout.LabelField(
$"关卡 {level.levelId} | {level.gridRows}x{level.gridCols} | 箭头数:{level.arrows.Count}");
}
EditorGUILayout.EndScrollView();
}
private void GenerateAllLevels()
{
_generatedLevels.Clear();
int levelId = _startLevelId;
for (int i = 0; i < _generateCount; i++)
{
// 获取当前关卡难度预设
var preset = LevelDifficultyPreset.GetPreset(i + 1);
// 生成关卡
var level = ArrowLevelGenerator.GenerateLevel(levelId, preset);
if (level != null)
{
_generatedLevels.Add(level);
Debug.Log($"生成成功:关卡 {levelId},箭头数 {level.arrows.Count}");
}
else
{
Debug.LogError($"关卡 {levelId} 生成失败,已跳过");
}
levelId++;
}
EditorUtility.DisplayDialog("生成完成",
$"成功生成 {_generatedLevels.Count} 个关卡", "确定");
}
private void ExportToJson()
{
if (_generatedLevels.Count == 0)
{
EditorUtility.DisplayDialog("提示", "请先生成关卡", "确定");
return;
}
var root = new EditorAllLevelRoot { levels = _generatedLevels };
string json = JsonUtility.ToJson(root, true);
string fullPath = Path.Combine(Application.dataPath,
_outputPath.Replace("Assets/", ""));
File.WriteAllText(fullPath, json);
AssetDatabase.Refresh();
EditorUtility.DisplayDialog("导出成功",
$"已导出到:{fullPath}", "确定");
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 338d551bc0c34285a64c42de35c20a1b
timeCreated: 1781601358
-214
View File
@@ -1,214 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
using Random = UnityEngine.Random;
public static class BatchAllLevelsToOneFile
{
// 全局网格配置(和游戏一致)
private static int GridRows = 10;
private static int GridCols = 10;
private const int PointSpacing = 60;
// 关卡范围
private const int StartLevelId = 1;
private const int TotalLevelCount = 100;
// 颜色池、方向池
private static readonly List<string> ColorPool = new List<string>
{
"#FF3333", "#3399FF", "#33FF66", "#FFFF33", "#CC66FF"
};
private static readonly List<string> DirPool = new List<string>
{
"up", "down", "left", "right"
};
[MenuItem("关卡工具/生成全部100关 → 合并到单文件 all_levels.json")]
public static void GenerateAllLevelsToOneJson()
{
AllLevelRoot root = new AllLevelRoot();
root.levels = new List<LevelConfig>();
for (int i = 0; i < TotalLevelCount; i++)
{
int levelIndex = i + 1;
GetGridSize(levelIndex);
int currentLevelId = StartLevelId + i;
int diffGroup = GetDifficultyGroup(levelIndex);
LevelConfig oneLevel = BuildOneLevel(currentLevelId, levelIndex, diffGroup);
root.levels.Add(oneLevel);
Debug.Log($"已组装关卡: {currentLevelId}");
}
// 写入单文件
string savePath = Path.Combine(Application.streamingAssetsPath, "all_levels.json");
string json = JsonUtility.ToJson(root, prettyPrint: true);
File.WriteAllText(savePath, json);
EditorUtility.DisplayDialog("完成",
$"共 {TotalLevelCount} 关已合并到单个文件\n路径: StreamingAssets/all_levels.json", "确定");
}
private static void GetGridSize(int levelIndex)
{
if (levelIndex <= 20)
{
GridRows = 10;
GridCols = 10;
}
else if (levelIndex <= 40)
{
GridRows = 15;
GridCols = 15;
}
else if (levelIndex <= 60)
{
GridRows = 20;
GridCols = 20;
}
else if (levelIndex <= 80)
{
GridRows = 30;
GridCols = 30;
}
}
// 难度分组 1~5
private static int GetDifficultyGroup(int levelIndex)
{
if (levelIndex <= 20) return 1;
if (levelIndex <= 40) return 2;
if (levelIndex <= 60) return 3;
if (levelIndex <= 80) return 4;
return 5;
}
// 构建单关数据
private static LevelConfig BuildOneLevel(int levelId, int levelIndex, int diffGroup)
{
LevelConfig cfg = new LevelConfig
{
levelId = levelId,
levelName = $"第{levelIndex}关",
gridRows = GridRows,
gridCols = GridCols,
pointSpacing = PointSpacing,
arrows = new List<ArrowConfig>()
};
int arrowCount = GetArrowCountByDiff(diffGroup);
HashSet<int> usedPoints = new HashSet<int>();
for (int aIdx = 0; aIdx < arrowCount; aIdx++)
{
ArrowConfig arrow = CreateSingleArrow(diffGroup, usedPoints, aIdx + 1);
cfg.arrows.Add(arrow);
}
return cfg;
}
private static int GetArrowCountByDiff(int diff)
{
return diff switch
{
1 => Random.Range(3, 10),
2 => Random.Range(5, 15),
3 => Random.Range(7, 20),
4 => Random.Range(10, 25),
5 => Random.Range(15, 30),
_ => 1
};
}
private static int GetPathLengthByDiff(int diff)
{
return diff switch
{
1 => 0,
2 => Random.Range(3, 5),
3 => Random.Range(3, 8),
4 => Random.Range(3, 10),
5 => Random.Range(3, 15),
_ => 0
};
}
private static ArrowConfig CreateSingleArrow(int diff, HashSet<int> usedPoints, int arrowId)
{
ArrowConfig arrow = new ArrowConfig
{
id = arrowId,
path = new List<string>(),
color = ColorPool[Random.Range(0, ColorPool.Count)]
};
int startPoint = GetRandomEmptyPoint(usedPoints);
arrow.startPoint = startPoint;
usedPoints.Add(startPoint);
int pathLen = GetPathLengthByDiff(diff);
if (pathLen > 0)
{
arrow.path = GenerateRandomPath(pathLen);
}
return arrow;
}
private static List<string> GenerateRandomPath(int length)
{
List<string> path = new List<string>();
for (int i = 0; i < length; i++)
{
path.Add(DirPool[Random.Range(0, DirPool.Count)]);
}
return path;
}
private static int GetRandomEmptyPoint(HashSet<int> used)
{
int maxPoint = GridRows * GridCols - 1;
int pointId;
do
{
pointId = Random.Range(0, maxPoint + 1);
} while (used.Contains(pointId));
return pointId;
}
#region + /
[Serializable]
public class AllLevelRoot
{
public List<LevelConfig> levels;
}
[Serializable]
public class LevelConfig
{
public int levelId;
public string levelName;
public int gridRows;
public int gridCols;
public int pointSpacing;
public List<ArrowConfig> arrows;
}
[Serializable]
public class ArrowConfig
{
public int id;
public int startPoint;
public List<string> path;
public string color;
}
#endregion
}
-35
View File
@@ -1,35 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
namespace EditorTools
{
/// <summary>
/// 编辑器内单个箭头数据
/// </summary>
[System.Serializable]
public class EditorArrowData
{
public int arrowId;
public int startPoint;
public int endPoint;
public string colorHex = "#FFFFFF";
public List<string> pathDirs = new List<string>();
// 路径点位序列 (ID列表)
public List<int> pointIds = new List<int>();
}
/// <summary>
/// 关卡总配置(编辑器用)
/// </summary>
[System.Serializable]
public class EditorLevelData
{
public int levelId = 1001;
public string levelName = "可视化编辑关卡";
public int gridRows = 10;
public int gridCols = 10;
public int pointSpacing = 60;
public List<EditorArrowData> arrows = new List<EditorArrowData>();
}
}
-285
View File
@@ -1,285 +0,0 @@
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace EditorTools
{
public class GridPathEditorWindow : EditorWindow
{
private EditorLevelData _levelData = new EditorLevelData();
// 绘制区域参数
private Vector2 _scrollPos;
private const float CellSize = 24f;
private const float DrawOffsetX = 20f;
private const float DrawOffsetY = 20f;
// 当前正在编辑的箭头
private int _curEditArrowIndex = -1;
private List<int> _tempPathPoints = new List<int>();
// 颜色预设
private readonly Color _gridLineColor = new Color(0.4f, 0.4f, 0.4f);
private readonly Color _startCellColor = new Color(0.2f, 0.8f, 0.2f);
private readonly Color _pathCellColor = new Color(0.2f, 0.5f, 1f);
private readonly Color _endCellColor = new Color(1f, 0.4f, 0.2f);
[MenuItem("工具/网格路径配置编辑器")]
public static void OpenWindow()
{
var win = GetWindow<GridPathEditorWindow>("网格路径编辑器");
win.minSize = new Vector2(600, 500);
win.Show();
}
private void OnGUI()
{
EditorGUILayout.BeginVertical("Box");
DrawLevelSetting();
EditorGUILayout.Space();
DrawArrowList();
EditorGUILayout.Space();
DrawGridCanvas();
EditorGUILayout.EndVertical();
}
#region 1.
private void DrawLevelSetting()
{
GUILayout.Label("【关卡基础设置】", EditorStyles.boldLabel);
_levelData.levelId = EditorGUILayout.IntField("关卡ID", _levelData.levelId);
_levelData.levelName = EditorGUILayout.TextField("关卡名称", _levelData.levelName);
EditorGUILayout.BeginHorizontal();
_levelData.gridRows = EditorGUILayout.IntField("网格行数", _levelData.gridRows);
_levelData.gridCols = EditorGUILayout.IntField("网格列数", _levelData.gridCols);
EditorGUILayout.EndHorizontal();
_levelData.pointSpacing = EditorGUILayout.IntField("点位间距(px)", _levelData.pointSpacing);
EditorGUILayout.Space();
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button(" 新增箭头"))
{
AddNewArrow();
}
if (GUILayout.Button("💾 导出JSON"))
{
ExportJson();
}
if (GUILayout.Button("🗑️ 清空当前路径"))
{
_tempPathPoints.Clear();
_curEditArrowIndex = -1;
}
EditorGUILayout.EndHorizontal();
}
#endregion
#region 2.
private void DrawArrowList()
{
GUILayout.Label("【箭头列表(选中后绘制路径)】", EditorStyles.boldLabel);
_scrollPos = EditorGUILayout.BeginScrollView(_scrollPos, GUILayout.Height(120));
for (int i = 0; i < _levelData.arrows.Count; i++)
{
var arrow = _levelData.arrows[i];
EditorGUILayout.BeginHorizontal("Box");
if (GUILayout.Toggle(_curEditArrowIndex == i, $"ID:{arrow.arrowId}", GUILayout.Width(60)))
{
SelectArrow(i);
}
arrow.colorHex = EditorGUILayout.TextField(arrow.colorHex, GUILayout.Width(80));
EditorGUILayout.LabelField($"起点:{arrow.startPoint} 终点:{arrow.endPoint}", GUILayout.Width(160));
if (GUILayout.Button("删除", GUILayout.Width(50)))
{
_levelData.arrows.RemoveAt(i);
if (_curEditArrowIndex >= _levelData.arrows.Count)
_curEditArrowIndex = -1;
break;
}
EditorGUILayout.EndHorizontal();
}
EditorGUILayout.EndScrollView();
}
private void AddNewArrow()
{
int newId = _levelData.arrows.Count + 1;
_levelData.arrows.Add(new EditorArrowData
{
arrowId = newId,
colorHex = "#FFFFFF"
});
}
private void SelectArrow(int idx)
{
_curEditArrowIndex = idx;
_tempPathPoints.Clear();
var arr = _levelData.arrows[idx];
_tempPathPoints.AddRange(arr.pointIds);
}
#endregion
#region 3. +
private void DrawGridCanvas()
{
GUILayout.Label("【网格画布 - 点击格子绘制路径】", EditorStyles.boldLabel);
int rows = _levelData.gridRows;
int cols = _levelData.gridCols;
Rect totalRect = EditorGUILayout.GetControlRect(false, (rows + 1) * CellSize);
float startX = totalRect.x + DrawOffsetX;
float startY = totalRect.y + DrawOffsetY;
// 绘制网格 + 监听点击
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < cols; c++)
{
int pointId = LevelJsonExporter.RowColToPointId(r, c, cols);
Rect cellRect = new Rect(
startX + c * CellSize,
startY + r * CellSize,
CellSize - 2,
CellSize - 2
);
// 格子背景色
Color cellColor = Color.white;
if (_tempPathPoints.Count > 0)
{
if (_tempPathPoints[0] == pointId)
cellColor = _startCellColor;
else if (_tempPathPoints[_tempPathPoints.Count - 1] == pointId)
cellColor = _endCellColor;
else if (_tempPathPoints.Contains(pointId))
cellColor = _pathCellColor;
}
// 绘制格子底色
EditorGUI.DrawRect(cellRect, cellColor);
// ===== 纯GUI绘制边框,全版本通用 =====
Color oldColor = GUI.color;
GUI.color = _gridLineColor;
// 上边框
DrawLineGUI(new Vector2(cellRect.xMin, cellRect.yMin), new Vector2(cellRect.xMax, cellRect.yMin));
// 右边框
DrawLineGUI(new Vector2(cellRect.xMax, cellRect.yMin), new Vector2(cellRect.xMax, cellRect.yMax));
// 下边框
DrawLineGUI(new Vector2(cellRect.xMax, cellRect.yMax), new Vector2(cellRect.xMin, cellRect.yMax));
// 左边框
DrawLineGUI(new Vector2(cellRect.xMin, cellRect.yMax), new Vector2(cellRect.xMin, cellRect.yMin));
GUI.color = oldColor;
// 点位ID文字
GUI.color = Color.black;
GUI.Label(cellRect, pointId.ToString(), EditorStyles.miniLabel);
GUI.color = Color.white;
// 鼠标点击
if (Event.current.type == EventType.MouseDown && cellRect.Contains(Event.current.mousePosition))
{
OnCellClick(pointId);
Event.current.Use();
}
}
}
}
// 纯GUI线条绘制(兼容所有Unity版本)
private void DrawLineGUI(Vector2 p1, Vector2 p2)
{
Handles.color = GUI.color;
Handles.DrawAAPolyLine(1, p1, p2);
}
private void OnCellClick(int clickPointId)
{
// 必须先选中一个箭头才能画路径
if (_curEditArrowIndex < 0 || _curEditArrowIndex >= _levelData.arrows.Count)
{
EditorUtility.DisplayDialog("提示", "请先在上方选中一个箭头", "确定");
return;
}
// 1. 空路径 = 设为起点
// 2. 已有点位 = 追加下一个路径点(只能相邻移动)
if (_tempPathPoints.Count == 0)
{
_tempPathPoints.Add(clickPointId);
}
else
{
int lastId = _tempPathPoints[_tempPathPoints.Count - 1];
if (IsAdjacent(lastId, clickPointId, _levelData.gridCols))
{
_tempPathPoints.Add(clickPointId);
}
else
{
EditorUtility.DisplayDialog("提示", "只能点击相邻格子!", "确定");
}
}
// 实时同步到当前箭头数据
SyncTempPathToArrow();
}
/// <summary>判断两个点位是否上下左右相邻</summary>
private bool IsAdjacent(int idA, int idB, int totalCol)
{
LevelJsonExporter.PointIdToRowCol(idA, totalCol, out int r1, out int c1);
LevelJsonExporter.PointIdToRowCol(idB, totalCol, out int r2, out int c2);
int dr = Mathf.Abs(r1 - r2);
int dc = Mathf.Abs(c1 - c2);
return (dr == 1 && dc == 0) || (dr == 0 && dc == 1);
}
/// <summary>临时路径 → 箭头正式数据(自动生成direction、start/end</summary>
private void SyncTempPathToArrow()
{
var arrow = _levelData.arrows[_curEditArrowIndex];
arrow.pointIds.Clear();
arrow.pathDirs.Clear();
arrow.pointIds.AddRange(_tempPathPoints);
if (_tempPathPoints.Count == 0) return;
arrow.startPoint = _tempPathPoints[0];
arrow.endPoint = _tempPathPoints[_tempPathPoints.Count - 1];
// 逐段生成方向列表
for (int i = 0; i < _tempPathPoints.Count - 1; i++)
{
string dir = LevelJsonExporter.GetDirection(_tempPathPoints[i], _tempPathPoints[i + 1], _levelData.gridCols);
if (!string.IsNullOrEmpty(dir))
arrow.pathDirs.Add(dir);
}
}
#endregion
#region 4. JSON
private void ExportJson()
{
if (_levelData.arrows.Count == 0)
{
EditorUtility.DisplayDialog("提示", "暂无箭头数据", "确定");
return;
}
string json = LevelJsonExporter.BuildLevelJson(_levelData);
LevelJsonExporter.SaveToStreamingAssets(json);
EditorUtility.DisplayDialog("导出完成", "JSON 已生成到 StreamingAssets/level_1001.json", "确定");
}
#endregion
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 2c9307857b7d4263a329a46d2dda9a31
timeCreated: 1781254588
+158
View File
@@ -0,0 +1,158 @@
using ChillConnect;
namespace ChillConnect.Editor
{
[System.Serializable]
public class LevelDifficultyPreset
{
public int gridRows;
public int gridCols;
public int arrowCount; // 目标箭头数
public int minArrowCount; // 最小接受箭头数
public int minPathLength; // 单箭头最小长度(格数)
public int maxPathLength; // 单箭头最大长度
public int maxTurnCount; // 最大折数
public float turnProbability; // 每步转向概率
public bool isPatternLevel; // 是否图案关
/// <summary>
/// 根据关卡序号(从1开始)获取对应难度预设
/// </summary>
public static LevelDifficultyPreset GetPreset(int levelIndex)
{
LevelDifficultyPreset preset = new LevelDifficultyPreset();
// ===== 第1-2关:起步适应 8x8 =====
if (levelIndex <= 2)
{
preset.gridRows = 8;
preset.gridCols = 8;
preset.arrowCount = 7;
preset.minArrowCount = 5;
preset.minPathLength = 2;
preset.maxPathLength = 4;
preset.maxTurnCount = 0; // 纯直线
preset.turnProbability = 0f;
preset.isPatternLevel = false;
}
// ===== 第3关:难度突变 13x13 =====
else if (levelIndex == 3)
{
preset.gridRows = 13;
preset.gridCols = 13;
preset.arrowCount = 14;
preset.minArrowCount = 10;
preset.minPathLength = 2;
preset.maxPathLength = 5;
preset.maxTurnCount = 0;
preset.turnProbability = 0f;
preset.isPatternLevel = false;
}
// ===== 第4关:第一个图案关 =====
else if (levelIndex == 4)
{
preset.gridRows = 13;
preset.gridCols = 13;
preset.arrowCount = 12;
preset.minArrowCount = 10;
preset.minPathLength = 2;
preset.maxPathLength = 6;
preset.maxTurnCount = 0;
preset.turnProbability = 0f;
preset.isPatternLevel = true;
}
// ===== 第5-10关:快速跃升期 =====
else if (levelIndex <= 10)
{
preset.gridRows = 13;
preset.gridCols = 13;
preset.arrowCount = 14 + (levelIndex - 5) * 1;
preset.minArrowCount = preset.arrowCount - 3;
preset.minPathLength = 2;
preset.maxPathLength = 6;
preset.maxTurnCount = 1;
preset.turnProbability = 0.15f;
preset.isPatternLevel = levelIndex == 8;
}
// ===== 第11-15关:进阶爬坡 =====
else if (levelIndex <= 15)
{
preset.gridRows = 13;
preset.gridCols = 13;
preset.arrowCount = 20 + (levelIndex - 11);
preset.minArrowCount = preset.arrowCount - 3;
preset.minPathLength = 2;
preset.maxPathLength = 7;
preset.maxTurnCount = 1;
preset.turnProbability = 0.2f;
preset.isPatternLevel = levelIndex == 13;
}
// ===== 第15关突变:折数提升 =====
else if (levelIndex <= 25)
{
preset.gridRows = 13;
preset.gridCols = 13;
preset.arrowCount = 22 + (levelIndex - 15);
preset.minArrowCount = preset.arrowCount - 4;
preset.minPathLength = 2;
preset.maxPathLength = 7;
preset.maxTurnCount = 2;
preset.turnProbability = 0.25f;
preset.isPatternLevel = levelIndex == 19;
}
// ===== 第26-35关 =====
else if (levelIndex <= 35)
{
preset.gridRows = 14;
preset.gridCols = 14;
preset.arrowCount = 25 + (levelIndex - 26);
preset.minArrowCount = preset.arrowCount - 4;
preset.minPathLength = 2;
preset.maxPathLength = 8;
preset.maxTurnCount = 2;
preset.turnProbability = 0.28f;
preset.isPatternLevel = levelIndex == 26 || levelIndex == 33;
}
// ===== 第36-50关:高难起步 =====
else if (levelIndex <= 50)
{
preset.gridRows = 14;
preset.gridCols = 14;
preset.arrowCount = 28 + (levelIndex - 36);
preset.minArrowCount = preset.arrowCount - 5;
preset.minPathLength = 2;
preset.maxPathLength = 8;
preset.maxTurnCount = 2;
preset.turnProbability = 0.3f;
preset.isPatternLevel = levelIndex == 41 || levelIndex == 49;
}
// ===== 第50关突变:15x15 =====
else if (levelIndex <= 75)
{
preset.gridRows = 15;
preset.gridCols = 15;
preset.arrowCount = 30 + (levelIndex - 50) / 2;
preset.minArrowCount = preset.arrowCount - 5;
preset.minPathLength = 2;
preset.maxPathLength = 9;
preset.maxTurnCount = 3;
preset.turnProbability = 0.32f;
preset.isPatternLevel = levelIndex == 57 || levelIndex == 65 || levelIndex == 72;
}
// ===== 第76-100关:终极挑战 16x16 =====
else
{
preset.gridRows = 16;
preset.gridCols = 16;
preset.arrowCount = 32 + (levelIndex - 75) / 3;
preset.minArrowCount = preset.arrowCount - 6;
preset.minPathLength = 2;
preset.maxPathLength = 9;
preset.maxTurnCount = 3;
preset.turnProbability = 0.35f;
preset.isPatternLevel = levelIndex == 80 || levelIndex == 87 || levelIndex == 93 || levelIndex == 100;
}
return preset;
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 67fd199fe89b44419a7b51e08285ba5a
timeCreated: 1781601394
-106
View File
@@ -1,106 +0,0 @@
using System.Collections.Generic;
using System.IO;
using UnityEngine;
namespace EditorTools
{
// 导出JSON 根实体
[System.Serializable]
public class ExportLevelRoot
{
public int levelId;
public string levelName;
public int gridRows;
public int gridCols;
public int pointSpacing;
public List<ExportArrowItem> arrows;
}
// 导出JSON 单条箭头实体
[System.Serializable]
public class ExportArrowItem
{
public int id;
public int startPoint;
public int endPoint;
public string color;
public List<string> path;
}
public static class LevelJsonExporter
{
/// <summary>
/// 行列转点位ID(和游戏代码完全一致)
/// </summary>
public static int RowColToPointId(int row, int col, int totalCol)
{
return row * totalCol + col;
}
/// <summary>
/// 点位ID转行列(和游戏代码完全一致)
/// </summary>
public static void PointIdToRowCol(int pointId, int totalCol, out int row, out int col)
{
row = pointId / totalCol;
col = pointId % totalCol;
}
/// <summary>
/// 根据前后两个点位,计算移动方向
/// </summary>
public static string GetDirection(int fromId, int toId, int totalCol)
{
PointIdToRowCol(fromId, totalCol, out int fRow, out int fCol);
PointIdToRowCol(toId, totalCol, out int tRow, out int tCol);
if (tRow < fRow) return "up";
if (tRow > fRow) return "down";
if (tCol < fCol) return "left";
if (tCol > fCol) return "right";
return "";
}
/// <summary>
/// 生成最终JSON字符串(纯实体类序列化,全版本兼容)
/// </summary>
public static string BuildLevelJson(EditorLevelData levelData)
{
ExportLevelRoot root = new ExportLevelRoot();
root.levelId = levelData.levelId;
root.levelName = levelData.levelName;
root.gridRows = levelData.gridRows;
root.gridCols = levelData.gridCols;
root.pointSpacing = levelData.pointSpacing;
root.arrows = new List<ExportArrowItem>();
foreach (var editorArr in levelData.arrows)
{
ExportArrowItem item = new ExportArrowItem();
item.id = editorArr.arrowId;
item.startPoint = editorArr.startPoint;
item.endPoint = editorArr.endPoint;
item.color = editorArr.colorHex;
item.path = new List<string>(editorArr.pathDirs);
root.arrows.Add(item);
}
return JsonUtility.ToJson(root, prettyPrint: true);
}
/// <summary>
/// 保存JSON到StreamingAssets
/// </summary>
public static bool SaveToStreamingAssets(string json, string fileName = "level_1001.json")
{
string folder = Application.streamingAssetsPath;
if (!Directory.Exists(folder))
Directory.CreateDirectory(folder);
string fullPath = Path.Combine(folder, fileName);
File.WriteAllText(fullPath, json);
Debug.Log($"[导出成功] {fullPath}");
return true;
}
}
}
-3
View File
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 3d01c5dd341d401bac259daf47388bee
timeCreated: 1781254572
-8
View File
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 9b89719cc167645fd8629ebf87e3aee8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: afcb2bcc44b144fde9ca888fe3bc2a0b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 1cc4a5944e743c843929679d158ef48a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,38 +0,0 @@
fileFormatVersion: 2
guid: e2d7ea0845de4cf984265d2a444b7aa4
labels:
- gvh
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -1,13 +0,0 @@
fileFormatVersion: 2
guid: baf24db2bf904e729e7796721c09e8ad
labels:
- gvh
- gvh_rename_to_disable
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb
- gvhp_targets-editor
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,38 +0,0 @@
fileFormatVersion: 2
guid: fa49a85d4ba140a0ae21528ed12d174c
labels:
- gvh
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -1,13 +0,0 @@
fileFormatVersion: 2
guid: d13c8602d5e14e43b0e92459754c4315
labels:
- gvh
- gvh_rename_to_disable
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb
- gvhp_targets-editor
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,38 +0,0 @@
fileFormatVersion: 2
guid: d8bb10c56a0147bc855a6296778e025e
labels:
- gvh
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -1,13 +0,0 @@
fileFormatVersion: 2
guid: a695eb9f64fe49569a2db0c4246c877d
labels:
- gvh
- gvh_rename_to_disable
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb
- gvhp_targets-editor
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,38 +0,0 @@
fileFormatVersion: 2
guid: 5980a684c61d42fbb6b74e2eb3477016
labels:
- gvh
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More