Project_WL/Assets/Script/UI/NewGameUI.cs

176 lines
6.4 KiB
C#
Raw Permalink Normal View History

2024-12-15 01:39:39 +00:00
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class NewGameUI : MonoBehaviourSingletonTemplate<NewGameUI>
{
public Camera UICamera;
2024-12-15 01:39:39 +00:00
public GameObject[] gos; // 0 공용 ui, 1 로비 ui들, 2 인게임 ui들, 3 농장 ui들
2025-01-26 03:52:03 +00:00
public GameObject[] gos_ingame; // 0 스테이지, 1 던전
public Ingame_Dungeon ingame_dungeon;
public GameObject[] gos_etc; // 0 힘민지 레벨업
2024-12-15 01:39:39 +00:00
public Transform tf_HUD;
public GuideQuestUI m_GuideQuestUI;
public MapChoiceUI m_MapChoiceUI;
public BangchiUI m_BangchiUI;
public PCUI m_PCUI;
public EquipmentUI m_EquipmentUI;
public SkillUI m_SkillUI;
public PetUI m_PetUI;
2025-04-15 00:28:07 +00:00
public GachaUI m_GachaUI;
2025-04-21 05:07:30 +00:00
public ShopUI m_ShopUI;
2024-12-15 01:39:39 +00:00
public CollectionUI m_CollectionUI;
public BattleUI m_BattleUI;
public IngamePetCard[] arr_PetCard;
public BotMenuBase[] FarmMenu;
2025-03-17 07:34:17 +00:00
public MissionUI m_MissionUI;
2025-03-26 00:49:56 +00:00
public BuffADUI m_BuffADUI;
2025-04-18 22:47:44 +00:00
public GameObject[] gos_noti; // 0 우편, 1 뽑기
2024-12-15 01:39:39 +00:00
2025-01-10 00:55:09 +00:00
bool ShowQuick = true;
2024-12-15 01:39:39 +00:00
private void Start()
{
2025-08-19 03:02:15 +00:00
Set_TestUI();
2024-12-15 01:39:39 +00:00
m_GuideQuestUI.Set();
InGameInfo.Ins.Load_Map(WL.Island.WLIslandSettings.StartMapId(-1)); // #816 1줄 훅 — 섬에서 시작(끄면 -1 그대로)
2024-12-15 01:39:39 +00:00
var cameraData = Camera.main.GetUniversalAdditionalCameraData();
cameraData.cameraStack.Add(UICamera);
// OffLineReward // TODO 정인호 : 오프라인 보상 설정
2025-04-14 02:34:12 +00:00
2025-04-18 22:47:44 +00:00
Set_Noti();
2024-12-15 01:39:39 +00:00
}
#if UNITY_EDITOR
private void Update()
{
if (Input.GetKey(KeyCode.P))
UnityEditor.EditorApplication.isPaused = !UnityEditor.EditorApplication.isPaused;
}
#endif
2025-04-18 22:47:44 +00:00
public void Set_Noti()
{
var sdata = ServerInfo.Ins.m_ServerData;
2025-07-29 01:23:52 +00:00
gos_noti[0].SetActive(ServerInfo.Ins.m_Mail.Mail.Count > 0);
2025-04-18 22:47:44 +00:00
gos_noti[1].SetActive(sdata.Noti_Gacha());
}
2024-12-15 01:39:39 +00:00
public void SetUI_byGameMode(eGameMode gameMode, bool farm = false)
{
if (farm) gameMode = eGameMode.Stage;
switch (gameMode)
{
case eGameMode.Lobby:
DSUtil.InActivateGameObjects(gos, 0);
gos[1].SetActive(true);
break;
case eGameMode.Stage:
DSUtil.InActivateGameObjects(gos, 0);
gos[2].SetActive(true);
DSUtil.InActivateGameObjects(gos_ingame, 0);
2025-04-02 01:16:20 +00:00
gos_etc[0].SetActive(MyValue.MyChoiceMapData.n_MapID > 0);
2024-12-15 01:39:39 +00:00
break;
case eGameMode.MyFarm:
DSUtil.InActivateGameObjects(gos, 3);
break;
case eGameMode.Dungeon:
DSUtil.InActivateGameObjects(gos, 2);
gos_etc[0].SetActive(MyValue.MyChoiceMapData.Get_MapData().e_Dungeon == eDungeon.d4_Wave);
DSUtil.InActivateGameObjects(gos_ingame, 1);
2025-01-28 04:23:32 +00:00
Refresh_DungeonUI();
break;
2024-12-15 01:39:39 +00:00
}
m_BattleUI.Set(eUICardType.Use, ServerInfo.Ins.m_ServerData.Equip.Preset);
WL 리뉴얼 세션 2026-09-06~07 (#760~#800) — 전투·배경·UI·타격감 (조직 PD 로그 #746~#800 · 대화로그 §14~§24) - 전투: Knight@Attack1~3_S 3콤보(4 컨트롤러·클래스별 서브클립) · 타겟팅 4규칙(정면 우선·재타겟·즉시 공격·어그로 금지 · WLTargetingSettings) · 대쉬 후 공격(Stander@Chase_Start · DashDriver · 5 m · 사정거리+0.8 · 근거리 적 우선) · 공격 이동 FrameTable(발 접지 실측 표 · AttackRootMotion) · 충돌 반경/투사체 0.3 배(WLCollisionTuning) · 무적(임시)·펫 금지(WLGameplaySettings) - 검기: NamuFX Slash_B 배리언트 Effect_WLSwingArc 원 피팅 정합 배치 + 캘리브레이션(SlashArcMeasure · SlashTrailSettings) · 찌르기 Effect_WLStab 대기 · 램프 리본(BladeTrail · WL_BladeRibbon.shader · T_WL_BladeRibbonRamp) 보존(drawRibbon 0) - 타격감: Assets/WL/Feel(WLHitFeel · 히트스톱 0.03 · 셰이크 0.10 m · 몹 펀치 1.12 · Actor.Get_Damage 훅 1줄 · 원본 RealCamera 셰이크 결함 대체) - 배경/맵: LMHPOLY Demo_01~10 → WL_Nature01~10(프리팹·씬·NavMesh·스포너·BattleMapConfig) · 물(ToonWaterU) · 포스트 블룸 0.9/0.3 · 잔디(BruteForce·드레싱) 제거 · 마젠타 머티리얼 URP 변환 - UI: 세로 HUD(WL_HUD · 하단 5메뉴 폭 전체 · 채팅/전투 패드 숨김 · WLIngameUiOverride) · Title/TitleInfo 1080×1920 Expand + 배경 높이 fit(WLBackgroundFit) · 로딩 SortOrder_5(WLRawImageAspectSync · 초점표 8장) · Loading1~8 ASTC 6×6 - 도구: AgentScripts/*(LightProbe · WL_MapSwitch · WL760~WL800 프로브/집행/검증 · 상단 사용법 주석) · 에디터 락 프로토콜 파일(staging) - 제외(별도 커밋 예정): Assets/LMHPOLY(703 MB) · Assets/Feel(422 MB) · Assets/Shinabro(300 MB) — 에셋 스토어/구 WL 팩 원본 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 23:24:25 +00:00
WL.UI.WLIngameUiOverride.Apply(this, gameMode); // PD 지시 #775 — 전투 패드 숨김 · 중복 공용 UI 인게임 한정 토글
LoadingUI.Ins.End_Loading(1);
2024-12-15 01:39:39 +00:00
}
2025-01-28 04:23:32 +00:00
public void Refresh_DungeonUI(int addmob = 0)
{
var dungeonData = MyValue.MyChoiceMapData.Get_DungeonMapData_orNull();
if (!DSUtil.CheckNull(dungeonData))
ingame_dungeon.Set(dungeonData.f_Time, dungeonData.n_MobCount + addmob);
}
2024-12-15 01:39:39 +00:00
public void OnClick_Button(GameObject go)
{
switch (go.name)
{
2025-01-10 00:55:09 +00:00
case "btn_quick":
ShowQuick = !ShowQuick;
go.GetComponent<Animation>().Play(ShowQuick ? "UIRot_Z_0to180" : "UIRot_Z_180to0");
break;
2024-12-15 01:39:39 +00:00
case "btn_map": m_MapChoiceUI.Set(); break;
case "btn_setting": OptionInfo.Ins.Set(); break;
case "btn_pcinfo": m_PCUI.Set(); break;
case "btn_equipment": m_EquipmentUI.Set(); break;
case "btn_skill": m_SkillUI.Set(); break;
case "btn_pet": m_PetUI.Set(); break;
2025-04-15 00:28:07 +00:00
case "btn_gacha": m_GachaUI.Set(); break;
2025-04-21 05:07:30 +00:00
case "btn_shop": m_ShopUI.Set(); break;
2024-12-15 01:39:39 +00:00
case "btn_collection": m_CollectionUI.Set(); break;
2025-03-17 07:34:17 +00:00
case "btn_mission": m_MissionUI.Set(); break;
2025-03-26 00:49:56 +00:00
case "btn_buffad": m_BuffADUI.Set(); break;
case "btn_mail": MailUI.Ins.Set(); break;
2024-12-15 01:39:39 +00:00
2025-01-22 07:20:20 +00:00
case "btn_farm": InGameInfo.Ins.Load_Map(0); break;
2024-12-15 01:39:39 +00:00
case "btn_btn_plantingseed": break;
case "btn_warehouse": break;
case "btn_farmer": break;
case "btn_gofarm": break; // 농장 돌아다니기
case "btn_exit":
if (!DSUtil.CheckNull(FarmFarmUI.Ins) && FarmFarmUI.Ins.isActiveAndEnabled)
FarmFarmUI.Ins.ReturnToFarm();
2025-01-26 18:40:10 +00:00
else if (InGameInfo.Ins.IsGameMode(eGameMode.Dungeon))
2025-01-26 03:52:03 +00:00
DungeonInfo.Ins.Stop_Dungeon(null);
else
2025-06-28 00:28:41 +00:00
{
ServerInfo.Ins.Save_StageResult(result =>
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Set_Item(2, result.gold);
var map = MyValue.MyChoiceMapData;
sdata.MapData_Set_StatLv(map.n_MapID, map.n_Difficult, eMainStatType.STR, result.mainstat[eMainStatType.STR]);
sdata.MapData_Set_StatLv(map.n_MapID, map.n_Difficult, eMainStatType.DEX, result.mainstat[eMainStatType.DEX]);
sdata.MapData_Set_StatLv(map.n_MapID, map.n_Difficult, eMainStatType.INT, result.mainstat[eMainStatType.INT]);
});
InGameInfo.Ins.Return_To_Lobby();
2025-06-28 00:28:41 +00:00
}
2025-04-02 01:16:20 +00:00
2025-07-23 03:31:50 +00:00
CloseAllFarmUI();
2025-04-02 01:16:20 +00:00
TestMapUIMgr.Ins.Set_TestBtns(false);
2024-12-15 01:39:39 +00:00
break;
2025-04-02 00:32:25 +00:00
#if UNITY_EDITOR
case "btn_testmap":
InGameInfo.Ins.Load_Map(-99);
2025-04-02 01:16:20 +00:00
TestMapUIMgr.Ins.Set_TestBtns(true);
2025-04-02 00:32:25 +00:00
break;
#endif
2024-12-15 01:39:39 +00:00
}
}
2025-07-22 06:43:35 +00:00
public void OnClick_FarmButton(int index)
2025-07-23 03:31:50 +00:00
{
CloseAllFarmUI();
FarmMenu[index].Set();
}
void CloseAllFarmUI()
2025-07-22 06:43:35 +00:00
{
for (int i = 0; i < FarmMenu.Length; i++)
FarmMenu[i].OnClick_Back();
}
2025-08-19 03:02:15 +00:00
public GameObject[] gos_test;
void Set_TestUI()
{
#if UNITY_EDITOR
DSUtil.ActivateGameObjects(gos_test);
#else
DSUtil.InActivateGameObjects(gos_test);
#endif
}
2024-12-15 01:39:39 +00:00
}