버전,데이터 관리 작업완료

도끼고블린 전투 가능하게 수정
This commit is contained in:
김판돌 2023-11-29 03:08:05 +09:00
parent 2cb548ad27
commit 439fbc9c6e
29 changed files with 205 additions and 128 deletions

View File

@ -987,33 +987,42 @@ MonoBehaviour:
speed: 10
slider: {fileID: 1420928031}
anim: {fileID: 2078404821}
unit: {fileID: 3575198418150468650, guid: 5f38f860c4c61754ba8bbfa49d925b5f, type: 3}
newBuildingUI: {fileID: 1842952264}
buildingLevelupUI: {fileID: 1785205477}
backButton: {fileID: 1396764732}
units:
- {fileID: 1949180232321779611, guid: 49e392c236699c847aed4866abb2335d, type: 3}
- {fileID: -6150474728477210055, guid: bdf90406a02966b4781544b262167e1b, type: 3}
- {fileID: 6378634513466364443, guid: 9b56846c8cf27d44cb278c3aa0a1147e, type: 3}
- {fileID: -4203858676371876518, guid: 6af2b537b964eb049a1031d0fe5611f1, type: 3}
- {fileID: -7112508950674410464, guid: c743e306ed982854b9b4f7d04a028f22, type: 3}
- {fileID: 955092010516457788, guid: e3f40bd51f6186842a414ae17a605ab7, type: 3}
- {fileID: 1812894275950873291, guid: d3a1d6b9bdf271442a2af197b361ccc1, type: 3}
- {fileID: 5791056106300521427, guid: f88154bd30745ee4799f94eff1ef9df2, type: 3}
- {fileID: 1573152061896382127, guid: 08572250e125db74489b23757b35d6fc, type: 3}
unitImages:
- {fileID: 21300000, guid: 0b976f51cbd350847acfd531507de93b, type: 3}
- {fileID: 21300000, guid: 98d97513fb3a0dd4db5f9751fb0ecc73, type: 3}
- {fileID: 21300000, guid: 45164c8169ba3204c8802b2721b8a269, type: 3}
- {fileID: 21300000, guid: d6f28569af70097498989b582ae5c665, type: 3}
- {fileID: 21300000, guid: a07de19792bd78946a82d906864cb044, type: 3}
- {fileID: 21300000, guid: 5fc0efe85b23e144dbd4aede9ebf0e3c, type: 3}
- {fileID: 21300000, guid: 19212e068479324499fd9c2df695e1a5, type: 3}
- {fileID: 21300000, guid: 9a5fe966de57a3a4084292167498822b, type: 3}
- {fileID: 21300000, guid: b4d800f3867055b488a2005b95086ec9, type: 3}
- {fileID: 6160760351963478645, guid: 5f38f860c4c61754ba8bbfa49d925b5f, type: 3}
- {fileID: 2589336159898910466, guid: ab93cd2f431d169408ca3e6cf43b2090, type: 3}
- {fileID: 2776803815121232242, guid: dd44a7468973dec4991cc3e6f036b5a6, type: 3}
- {fileID: 1769621809454940063, guid: def11be6f06804f479b438558506d5da, type: 3}
- {fileID: 7468181147198415131, guid: 742c034f1775e114e9c83507505b1f78, type: 3}
- {fileID: 8474998885444812674, guid: 7b0af7dce16ba4f468435f35d3a85161, type: 3}
- {fileID: 7995012865909342350, guid: 1cc56f1de218825438370e0b04d8eb4b, type: 3}
- {fileID: 824116206199136150, guid: 668f19ec68faa3749b5a955d6a5a66c8, type: 3}
- {fileID: 2789618061690570302, guid: 1efaad54f2327b845b5147b6d8d162ee, type: 3}
buyText: {fileID: 663203141}
sellText: {fileID: 1782769547}
moneyText: {fileID: 13568456}
unitSpriteButton:
- {fileID: 1350949798}
- {fileID: 506581432}
- {fileID: 655988522}
- {fileID: 738171980}
- {fileID: 1890048953}
- {fileID: 1552720816}
- {fileID: 1703750907}
- {fileID: 1234321973}
- {fileID: 740295918}
unitTextButton:
- {fileID: 723949020}
- {fileID: 895695578}
- {fileID: 677531640}
- {fileID: 336176157}
- {fileID: 1993147086}
- {fileID: 1232772304}
- {fileID: 354762308}
- {fileID: 1448517138}
- {fileID: 393547700}
player: {fileID: 0}
enemy: {fileID: 0}
buildingCtrl: {fileID: 0}
@ -8927,7 +8936,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &1396764733
RectTransform:
m_ObjectHideFlags: 0

View File

@ -38,7 +38,7 @@ public class SummonsUnit : MonoBehaviour
List<UnitCtrl> units = new List<UnitCtrl>();
for (int m = 0; m < 5; m++)
{
units.Add(PlayCtrl.Instance.unit.GetComponent<UnitCtrl>());
units.Add(Statics.units["AxeGoblin"].GetComponent<UnitCtrl>());
}
buildings[0].units = units;
}
@ -55,10 +55,11 @@ public class SummonsUnit : MonoBehaviour
for (int n = 0; n < listCount; n++)
{
float pos = Random.Range(-3.7f, -0.3f);
if (isEnemy) //적소환
Instantiate(buildingInfo.units[n].gameObject, new Vector3(Random.Range(44.0f, 46.0f), Random.Range(-3.7f, -0.3f), 0), Quaternion.identity).GetComponent<UnitCtrl>().isEnemy = isEnemy;
Instantiate(buildingInfo.units[n].gameObject, new Vector3(Random.Range(44.0f, 46.0f), pos, pos + 3.8f), Quaternion.identity).GetComponent<UnitCtrl>().isEnemy = isEnemy;
else //아군 유닛 소환
Instantiate(buildingInfo.units[n].gameObject, new Vector3(Random.Range(-44.0f, -46.0f), Random.Range(-3.7f, -0.3f), 0), Quaternion.identity).GetComponent<UnitCtrl>().isEnemy = isEnemy;
Instantiate(buildingInfo.units[n].gameObject, new Vector3(Random.Range(-44.0f, -46.0f), pos, pos + 3.8f), Quaternion.identity).GetComponent<UnitCtrl>().isEnemy = isEnemy;
}
if (!isEnemy)//자원 생성
{

View File

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using UnityEngine;
@ -8,6 +9,7 @@ public class UnitCtrl : MonoBehaviour
public GameObject defensObj;
public Sprite unitSprite;
bool isHomeAttack;
public BoxCollider2D[] components;
List<UnitCtrl> enemyUnits;
@ -15,6 +17,17 @@ public class UnitCtrl : MonoBehaviour
float delay;
public void DataSet(UnitData ud)
{
unit.name = ud.name;
unit.hp = ud.hp;
unit.attack = ud.attack;
unit.attackSpeed = ud.attack_speed;
unit.defense = ud.defense;
unit.moveSpeed = ud.move_speed;
unit.buy = ud.buy.ToArray();
}
private void Awake()
{
enemyUnits = new List<UnitCtrl>();
@ -46,7 +59,7 @@ public class UnitCtrl : MonoBehaviour
anim.SetBool("isMove", false);
if (enemyUnits.Count == 0)
{
anim.SetTrigger("att");
anim.SetTrigger("attack");
if (isEnemy)
{
PlayCtrl.Instance.player.campHp -= unit.attack;
@ -71,7 +84,7 @@ public class UnitCtrl : MonoBehaviour
{
if (enemyUnits[0] != null)
{
anim.SetTrigger("att");
anim.SetTrigger("attack");
enemyUnits[0].Attack(unit.attack);
delay = unit.attackSpeed;
}
@ -120,13 +133,23 @@ public class UnitCtrl : MonoBehaviour
/// <param name="dmg">공격 대미지</param>
public void Attack(int dmg)
{
if(unit.defense > dmg)
{
dmg = unit.defense + 100;
}
unit.hp -= (dmg - unit.defense);
Debug.Log($"{dmg - unit.defense}데미지! {unit.hp}남음.");
if(unit.hp <= 0)
{
//임시로 삭제하게 처리 추후 재활용 할수 있게 처리할것
Destroy(gameObject);
anim.SetBool("isDie", true);
components[0].enabled = false;
components[1].enabled = false;
Destroy(gameObject, 1.0f);
}
}
}
// 리지드, 콜라이더 위치 변경 Unit > oder
// oder 콜라이더 트리거 체크
// 디펜스 오브젝트 좀더 상위로 위치변경

View File

@ -16,16 +16,15 @@ public class PlayCtrl : SingletonMonoBehaviour<PlayCtrl>
public Animator anim;
public GameObject unit;
public GameObject newBuildingUI;
public GameObject buildingLevelupUI;
public GameObject backButton;
public UnitCtrl[] units;
public Sprite[] unitImages;
public TMP_Text buyText;
public TMP_Text sellText;
public TMP_Text moneyText;
public Image[] unitSpriteButton;
public TMP_Text[] unitTextButton;
public SummonsUnit player;
public SummonsUnit enemy;
@ -48,6 +47,11 @@ public class PlayCtrl : SingletonMonoBehaviour<PlayCtrl>
moneyText.text = money.ToString();
isEndGame = false;
delay = 0.0f;
for(int n = 0; n < unitSpriteButton.Length; n++)
{
unitSpriteButton[n].sprite = units[n].unitSprite;
unitTextButton[n].text = units[n].unit.buy[0].ToString();
}
uiExit();
}
@ -111,7 +115,7 @@ public class PlayCtrl : SingletonMonoBehaviour<PlayCtrl>
public void SelectUnit(int count)
{
buildingCtrl.NewBuilding(units[count], unitImages[count]);
buildingCtrl.NewBuilding(units[count], units[count].unitSprite);
uiExit();
}

View File

@ -1,4 +1,5 @@
using MEC;
using System;
using System.Collections.Generic;
public class ExcelDatas
@ -9,7 +10,7 @@ public class ExcelDatas
public IEnumerator<float> ToJson()
public IEnumerator<float> ToJson(Action action)
{
yield return Timing.WaitForSeconds(0);
foreach (var data in unitData)
@ -17,6 +18,7 @@ public class ExcelDatas
data.Value.toJson();
}
yield return Timing.WaitForSeconds(0);
action();
}
}

View File

@ -1,5 +1,7 @@
using MEC;
using Newtonsoft.Json;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameManager : DontDestroy<GameManager>
@ -18,15 +20,43 @@ public class GameManager : DontDestroy<GameManager>
protected override void OnStart()
{
Statics.version = PlayerPrefs.GetString("version");
DownlodeResp request = new DownlodeResp();
request.Request((data) =>
{
Statics.excelDatas = JsonConvert.DeserializeObject<ExcelDatas>(Crypto.Instance.Decompress(data.data));
corExcel = Timing.RunCoroutine(Statics.excelDatas.ToJson());
Statics.version = data.version;
if(data.data != "")
{
string excelDatas = Crypto.Instance.Decompress(data.data);
string cryptoExcel = Crypto.Instance.Encrypt(excelDatas);
Statics.excelDatas = JsonConvert.DeserializeObject<ExcelDatas>(excelDatas);
corExcel = Timing.RunCoroutine(Statics.excelDatas.ToJson(UnitDataSet));
Statics.version = data.version;
PlayerPrefs.SetString("e", cryptoExcel);
PlayerPrefs.SetString("version", data.version);
}
else
{
Statics.excelDatas = JsonConvert.DeserializeObject<ExcelDatas>(Crypto.Instance.Decrypt(PlayerPrefs.GetString("e")));
corExcel = Timing.RunCoroutine(Statics.excelDatas.ToJson(UnitDataSet));
}
});
}
private void UnitDataSet()
{
Statics.units = new Dictionary<string, GameObject>();
foreach (var data in Statics.excelDatas.unitData)
{
GameObject obj = Resources.Load<GameObject>($"Unit/{data.Value.name}");
if (obj != null)
{
obj.GetComponent<UnitCtrl>().DataSet(data.Value);
Statics.units.Add(data.Value.name, obj);
}
}
}
//public float x = 2160f;
//public float y = 1080f;
//현재 등록되어 있는 Scene을 입력하면 현재 열려있는 씬이 무엇인지 NowScene을 통해 알 수 있게됩니다.

View File

@ -1,3 +1,6 @@
using System.Collections.Generic;
using UnityEngine;
public class Statics
{
public static readonly string url = "https://game.pandoli365.com";
@ -7,4 +10,6 @@ public class Statics
public static ExcelDatas excelDatas;
public static Dictionary <string,GameObject> units = new Dictionary<string,GameObject>();
}

View File

@ -1737,7 +1737,7 @@ Camera:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6231225142295759459}
m_Enabled: 1
m_Enabled: 0
serializedVersion: 2
m_ClearFlags: 3
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

View File

@ -294,8 +294,6 @@ GameObject:
m_Component:
- component: {fileID: 2128100760983076960}
- component: {fileID: 5417960701453434843}
- component: {fileID: 2031826263459372482}
- component: {fileID: 6367445664438805880}
m_Layer: 7
m_Name: Unit
m_TagString: GameController
@ -319,7 +317,6 @@ Transform:
- {fileID: 505301380679157584}
- {fileID: 4027500418563609254}
- {fileID: 268933105215317857}
- {fileID: 3425313666554185937}
m_Father: {fileID: 1169671639825501248}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &5417960701453434843
@ -343,78 +340,6 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!61 &2031826263459372482
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2280089942143957658}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: -0.5, y: 0}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 1, y: 3}
m_EdgeRadius: 0
--- !u!50 &6367445664438805880
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2280089942143957658}
m_BodyType: 1
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_GravityScale: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0
--- !u!1 &3575198418150468650
GameObject:
m_ObjectHideFlags: 0
@ -425,9 +350,11 @@ GameObject:
m_Component:
- component: {fileID: 1169671639825501248}
- component: {fileID: 6160760351963478645}
m_Layer: 0
m_Name: GreenGoblin_Axe
m_TagString: Untagged
- component: {fileID: 4029215868761793154}
- component: {fileID: 6841604708067326488}
m_Layer: 7
m_Name: AxeGoblin
m_TagString: GameController
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@ -446,6 +373,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2128100760983076960}
- {fileID: 3425313666554185937}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6160760351963478645
@ -469,9 +397,84 @@ MonoBehaviour:
moveSpeed: 5
buy: e8030000e8030000e8030000e8030000e8030000
anim: {fileID: 5417960701453434843}
defensObj: {fileID: 2280089942143957658}
defensObj: {fileID: 5006490412300603360}
unitSprite: {fileID: 21300000, guid: 67acf8f2dfae66a44ae739005e9f005e, type: 3}
components:
- {fileID: 4029215868761793154}
- {fileID: 2571001854460325770}
isEnemy: 0
--- !u!61 &4029215868761793154
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3575198418150468650}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: -0.5, y: 0}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 1, y: 3}
m_EdgeRadius: 0
--- !u!50 &6841604708067326488
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3575198418150468650}
m_BodyType: 1
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_GravityScale: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0
--- !u!1 &4434163596363041410
GameObject:
m_ObjectHideFlags: 0
@ -531,10 +534,10 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2128100760983076960}
m_Father: {fileID: 1169671639825501248}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &2571001854460325770
BoxCollider2D:

View File

@ -673,7 +673,7 @@ GameObject:
- component: {fileID: 8529852409354240127}
- component: {fileID: 2589336159898910466}
m_Layer: 0
m_Name: GreenOrc_Axe
m_Name: AxeOrc
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -758,7 +758,7 @@ GameObject:
- component: {fileID: 193799572164042617}
- component: {fileID: 4901234637459740715}
m_Layer: 0
m_Name: GreenOrc_Boss
m_Name: BossOrc
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 3436199915513243441}
- component: {fileID: 2776803815121232242}
m_Layer: 0
m_Name: GreenGoblin_FireBottle
m_Name: BottleGoblin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -179,7 +179,7 @@ GameObject:
- component: {fileID: 3623094926497331022}
- component: {fileID: 1769621809454940063}
m_Layer: 0
m_Name: GreenGoblin_Bow
m_Name: BowGoblin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -303,7 +303,7 @@ GameObject:
- component: {fileID: 8372963211402671670}
- component: {fileID: 7468181147198415131}
m_Layer: 0
m_Name: GreenOrc_Sniper
m_Name: SniperOrc
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -758,7 +758,7 @@ GameObject:
- component: {fileID: 1727881365108548452}
- component: {fileID: 8474998885444812674}
m_Layer: 0
m_Name: GreenGoblin_Spear
m_Name: SpearGoblin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -628,7 +628,7 @@ GameObject:
- component: {fileID: 2492754288297474295}
- component: {fileID: 7995012865909342350}
m_Layer: 0
m_Name: GreenOrc_Spear
m_Name: SpearOrc
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -335,7 +335,7 @@ GameObject:
- component: {fileID: 4386556694652690157}
- component: {fileID: 824116206199136150}
m_Layer: 0
m_Name: GreenOrc_Sword
m_Name: SwordOrc
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -373,7 +373,7 @@ GameObject:
- component: {fileID: 5995982595438387061}
- component: {fileID: 2789618061690570302}
m_Layer: 0
m_Name: GreenOrc_Wizard
m_Name: WizardOcr
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -84,7 +84,7 @@ AnimatorStateTransition:
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Attack
m_ConditionEvent: attack
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102924555222422638}
@ -137,7 +137,7 @@ AnimatorController:
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: Attack
- m_Name: attack
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0