DEG-25 강화 기초 로직

This commit is contained in:
99jamin 2025-04-29 10:17:37 +09:00
parent 5e61ff03c9
commit 5eed0c81c5
38 changed files with 3290 additions and 864 deletions

BIN
Assets/KJM/KJM.unity (Stored with Git LFS)

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a49c3aa3df10e094882d67e836247adb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -6,11 +6,11 @@ using UnityEngine;
public class DungeonSave public class DungeonSave
{ {
// 강화 수치 // 강화 수치
public int attackLevel = 0; public int attackPowerLevel = 0;
public int attackSpeedLevel = 0; public int attackSpeedLevel = 0;
public int heartLevel = 0; public int heartLevel = 0;
public int moveSpeedLevel = 0; public int moveSpeedLevel = 0;
public int evasionTimeLevel = 0; public int dashCoolDownLevel = 0;
// 현재 진행 중인 스테이지 // 현재 진행 중인 스테이지
public int stageLevel = 0; public int stageLevel = 0;
@ -20,11 +20,11 @@ public class DungeonSave
{ {
if (other == null) return; if (other == null) return;
if (other.attackLevel != 0) attackLevel = other.attackLevel; if (other.attackPowerLevel != 0) attackPowerLevel = other.attackPowerLevel;
if (other.attackSpeedLevel != 0) attackSpeedLevel = other.attackSpeedLevel; if (other.attackSpeedLevel != 0) attackSpeedLevel = other.attackSpeedLevel;
if (other.heartLevel != 0) heartLevel = other.heartLevel; if (other.heartLevel != 0) heartLevel = other.heartLevel;
if (other.moveSpeedLevel != 0) moveSpeedLevel = other.moveSpeedLevel; if (other.moveSpeedLevel != 0) moveSpeedLevel = other.moveSpeedLevel;
if (other.evasionTimeLevel != 0) evasionTimeLevel = other.evasionTimeLevel; if (other.dashCoolDownLevel != 0) dashCoolDownLevel = other.dashCoolDownLevel;
if (other.stageLevel != 0) stageLevel = other.stageLevel; if (other.stageLevel != 0) stageLevel = other.stageLevel;
} }
} }

View File

@ -18,7 +18,6 @@ public class SaveManager : Singleton<SaveManager>
private Save mainSave; private Save mainSave;
private Save backupSave; private Save backupSave;
void Start() void Start()
{ {
Load(); //저장된 메인,백업 세이브를 로드 Load(); //저장된 메인,백업 세이브를 로드

View File

@ -11,11 +11,11 @@ using Random = UnityEngine.Random;
public class TestScript : MonoBehaviour,ISaveable public class TestScript : MonoBehaviour,ISaveable
{ {
//던전 //던전
private int attackLevel; private int attackPowerLevel;
private int attackSpeedLevel; private int attackSpeedLevel;
private int heartLevel; private int heartLevel;
private int moveSpeedLevel; private int moveSpeedLevel;
private int evasionTimeLevel; private int dashCoolDownLevel;
private int stageLevel; private int stageLevel;
//일상 //일상
@ -34,7 +34,7 @@ public class TestScript : MonoBehaviour,ISaveable
float floatValue = Random.Range(0f, 2f); float floatValue = Random.Range(0f, 2f);
int intValue = Random.Range(0, 10); int intValue = Random.Range(0, 10);
attackLevel = intValue; attackPowerLevel = intValue;
attackSpeedLevel = intValue; attackSpeedLevel = intValue;
heartLevel = intValue; heartLevel = intValue;
moveSpeedLevel = intValue; moveSpeedLevel = intValue;
@ -59,11 +59,11 @@ public class TestScript : MonoBehaviour,ISaveable
{ {
if (save?.dungeonSave != null) if (save?.dungeonSave != null)
{ {
attackLevel = save.dungeonSave.attackLevel; attackPowerLevel = save.dungeonSave.attackPowerLevel;
attackSpeedLevel = save.dungeonSave.attackSpeedLevel; attackSpeedLevel = save.dungeonSave.attackSpeedLevel;
heartLevel = save.dungeonSave.heartLevel; heartLevel = save.dungeonSave.heartLevel;
moveSpeedLevel = save.dungeonSave.moveSpeedLevel; moveSpeedLevel = save.dungeonSave.moveSpeedLevel;
evasionTimeLevel = save.dungeonSave.evasionTimeLevel; dashCoolDownLevel = save.dungeonSave.dashCoolDownLevel;
stageLevel = save.dungeonSave.stageLevel; stageLevel = save.dungeonSave.stageLevel;
} }
@ -90,11 +90,11 @@ public class TestScript : MonoBehaviour,ISaveable
{ {
dungeonSave = new DungeonSave() dungeonSave = new DungeonSave()
{ {
attackLevel = this.attackLevel, attackPowerLevel = this.attackPowerLevel,
attackSpeedLevel = this.attackSpeedLevel, attackSpeedLevel = this.attackSpeedLevel,
heartLevel = this.heartLevel, heartLevel = this.heartLevel,
moveSpeedLevel = this.moveSpeedLevel, moveSpeedLevel = this.moveSpeedLevel,
evasionTimeLevel = this.evasionTimeLevel, dashCoolDownLevel = this.dashCoolDownLevel,
stageLevel = this.stageLevel, stageLevel = this.stageLevel,
}, },

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8b98513ea028982479bf6eae61121fe5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cadea41f445905f4b8d9c11723338f7c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Prefabs/UpgradeCard.prefab (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3a5d97c3b5d9da742bcc4b683678858d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Prefabs/UpgradePanel.prefab (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6f4016bf1abc62446964585074b66ff6
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b1f8dc566755f2446a76afd19a36f86b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Sprite/AttackPower.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,150 @@
fileFormatVersion: 2
guid: f66e0be8c4c11e34e8df13202bf1f5d5
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: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 175, z: 0, w: 143}
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: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: AttackPower_0
rect:
serializedVersion: 2
x: 0
y: 184
width: 1024
height: 1204
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 370d47848ff092a498bf01d593d2aa55
internalID: 425245915
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
AttackPower_0: 425245915
AttackPower_1: -1293571596
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Sprite/AttackSpeed.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,151 @@
fileFormatVersion: 2
guid: ec0c3cf0b94621c4aac7b4b5c0cae145
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: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
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: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: AttackSpeed_2
rect:
serializedVersion: 2
x: 0
y: 0
width: 1024
height: 1024
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: c8e8694b0c41ab6469640d70f91cf94a
internalID: 2057710573
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
AttackSpeed_0: 454528844
AttackSpeed_1: -1726966544
AttackSpeed_2: 2057710573
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Sprite/Card.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,127 @@
fileFormatVersion: 2
guid: 1c49741f6a806b14182548910bee3360
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: 0
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: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Sprite/Cooldown.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,151 @@
fileFormatVersion: 2
guid: e04e0cfb7cfe07a4a837565be2a9e814
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: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
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: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Cooldown_0
rect:
serializedVersion: 2
x: 3
y: 282
width: 1021
height: 1024
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 0e987966a87c0334cbd558b54dd2884e
internalID: -1865935854
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
Cooldown_0: -1865935854
Cooldown_1: -559825761
Cooldown_2: 1288966442
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Sprite/Heart.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,149 @@
fileFormatVersion: 2
guid: 50e1089e347a34e4391b8a7d309566aa
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: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
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: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Heart_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 1024
height: 1024
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 3c1a37065ce3efe47a4e8751a5091442
internalID: 1911888675
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
Heart_0: 1911888675
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/KJM/KJM_Test/Upgrade/Sprite/MoveSpeed.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,152 @@
fileFormatVersion: 2
guid: aedea94474332a34fb686424c18b3824
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: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
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: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: MoveSpeed_1
rect:
serializedVersion: 2
x: 0
y: 0
width: 1024
height: 1024
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 17bab324354aba44c83eae0e6f5961eb
internalID: 1616989860
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
MoveSpeed_0: -310863518
MoveSpeed_1: 1616989860
MoveSpeed_2: 2079495695
MoveSpeed_3: -1746910826
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,59 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class UpgradeCard : MonoBehaviour
{
public Sprite[] upgradeSprite;
StatType currentStatType;
Image[] upgradeIcon;
TextMeshProUGUI upgradeText;
void Awake()
{
upgradeIcon = gameObject.GetComponentsInChildren<Image>();
upgradeText = gameObject.GetComponentInChildren<TextMeshProUGUI>();
}
public void Init(StatType statType)
{
currentStatType = statType;
//텍스트 설정
upgradeText.text = StatNameText(currentStatType) + " Lv." + (UpgradeManager.Instance.upgradeStat.CurrentUpgradeLevel(currentStatType));
//아이콘 설정
upgradeIcon[1].sprite = upgradeSprite[(int)statType-1];
}
private String StatNameText(StatType statType)
{
switch (statType)
{
case StatType.AttackPower:
return "공격력";
case StatType.AttackSpeed:
return "공격 속도";
case StatType.MoveSpeed:
return "이동 속도";
case StatType.DashCoolDown:
return "대시 쿨타임";
case StatType.Heart:
return "최대 하트";
default:
return "";
}
}
public void ClickCard()
{
//레벨 증가
UpgradeManager.Instance.upgradeStat.UpgradeLevel(currentStatType);
Debug.Log(UpgradeManager.Instance.upgradeStat.CurrentUpgradeLevel(currentStatType));
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 67a6bd571702cb544b28aeb153cda686
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,64 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public enum StatType
{
AttackPower = 1,
AttackSpeed,
MoveSpeed,
DashCoolDown,
Heart
}
public class UpgradeManager : Singleton<UpgradeManager>
{
//현재 캔버스 찾는 함수 설정
public Canvas canvas;
public GameObject backgroundPanel;
public Button upgradeButton;
public UpgradeStat upgradeStat;
private readonly List<int> statNumbers = new List<int> { 1, 2, 3, 4, 5 };
public void GenerateUpgradeCard()
{
//카드 번호 셔플
ShuffleStatNumber();
//강화 수치가 맥스인 항목은 제외하는 로직
//배경 패널 생성 애니메이션
RectTransform backgroundRectTransform = Instantiate(backgroundPanel,canvas.transform).GetComponent<RectTransform>();
var card1 = Instantiate(upgradeButton, backgroundRectTransform);
card1.GetComponent<UpgradeCard>().Init((StatType)statNumbers[0]);
var card2 = Instantiate(upgradeButton, backgroundRectTransform);
card2.GetComponent<UpgradeCard>().Init((StatType)statNumbers[1]);
var card3 = Instantiate(upgradeButton, backgroundRectTransform);
card3.GetComponent<UpgradeCard>().Init((StatType)statNumbers[2]);
}
// 리스트 셔플
private void ShuffleStatNumber()
{
for (int i = 0; i < statNumbers.Count; i++)
{
int randIndex = Random.Range(i, statNumbers.Count);
(statNumbers[i], statNumbers[randIndex]) = (statNumbers[randIndex], statNumbers[i]);
}
}
protected override void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e15215ad763c32d4894a83e9260fdab5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,120 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UpgradeStat : MonoBehaviour,ISaveable
{
private const int MAX_UPGRADES = 4;
private const int MAX_UPGRADES_HEART = 3;
private int attackPowerLevel = 1;
private int attackSpeedLevel = 1;
private int moveSpeedLevel = 1;
private int dashCoolDownLevel = 1;
private int heartLevel = 1;
/// <summary>
/// 강화 수치 올리는 함수
/// </summary>
/// <param name="number"></param>
public void UpgradeLevel(StatType statType)
{
switch (statType)
{
case StatType.AttackPower:
if(attackPowerLevel<MAX_UPGRADES)
attackPowerLevel++;
break;
case StatType.AttackSpeed:
if (attackSpeedLevel < MAX_UPGRADES)
attackSpeedLevel++;
break;
case StatType.MoveSpeed:
if(moveSpeedLevel < MAX_UPGRADES)
moveSpeedLevel++;
break;
case StatType.DashCoolDown:
if(dashCoolDownLevel < MAX_UPGRADES)
dashCoolDownLevel++;
break;
case StatType.Heart:
if(heartLevel < MAX_UPGRADES_HEART)
heartLevel++;
break;
default:
break;
}
}
/// <summary>
/// 현재 강화 수치 반환 함수
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public int CurrentUpgradeLevel(StatType statType)
{
int currentUpgradeLevel = 0;
switch (statType)
{
case StatType.AttackPower:
currentUpgradeLevel = attackPowerLevel;
break;
case StatType.AttackSpeed:
currentUpgradeLevel = attackSpeedLevel;
break;
case StatType.MoveSpeed:
currentUpgradeLevel = moveSpeedLevel;
break;
case StatType.DashCoolDown:
currentUpgradeLevel = dashCoolDownLevel;
break;
case StatType.Heart:
currentUpgradeLevel = heartLevel;
break;
default:
break;
}
int max = statType == StatType.Heart ? MAX_UPGRADES_HEART : MAX_UPGRADES;
return (currentUpgradeLevel < 1 || currentUpgradeLevel > max)? 1 : currentUpgradeLevel;
}
/// <summary>
/// 강화 수치 로컬에 저장
/// </summary>
/// <returns></returns>
public Save ExtractSaveData()
{
return new Save
{
dungeonSave = new DungeonSave()
{
attackPowerLevel = this.attackPowerLevel,
attackSpeedLevel = this.attackSpeedLevel,
heartLevel = this.heartLevel,
moveSpeedLevel = this.moveSpeedLevel,
dashCoolDownLevel = this.dashCoolDownLevel,
}
};
}
/// <summary>
/// 강화 수치 로컬에서 로드
/// </summary>
/// <param name="save"></param>
public void ApplySaveData(Save save)
{
if (save?.dungeonSave != null)
{
attackPowerLevel = save.dungeonSave.attackPowerLevel;
attackSpeedLevel = save.dungeonSave.attackSpeedLevel;
heartLevel = save.dungeonSave.heartLevel;
moveSpeedLevel = save.dungeonSave.moveSpeedLevel;
dashCoolDownLevel = save.dungeonSave.dashCoolDownLevel;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4814816a9b65ad3448bd8bad61e38347
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long