유니티 광고 id, 업데이트 확인 로직 추가 등
This commit is contained in:
parent
cd8e78c552
commit
5e7048afcb
|
|
@ -7036,7 +7036,7 @@ RectTransform:
|
|||
- {fileID: 1738221190}
|
||||
- {fileID: 201125229}
|
||||
- {fileID: 594813031}
|
||||
m_Father: {fileID: 2090110239}
|
||||
m_Father: {fileID: 1795664158}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
|
|
@ -18693,6 +18693,7 @@ RectTransform:
|
|||
m_Children:
|
||||
- {fileID: 1416760061}
|
||||
- {fileID: 1703079398}
|
||||
- {fileID: 2090110239}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
|
|
@ -26682,10 +26683,10 @@ MonoBehaviour:
|
|||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 2090110238}
|
||||
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
|
||||
m_MethodName: SetActive
|
||||
m_Mode: 6
|
||||
- m_Target: {fileID: 2090110240}
|
||||
m_TargetAssemblyTypeName: PopupUI, Assembly-CSharp
|
||||
m_MethodName: OnClick_No
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
|
|
@ -33509,7 +33510,6 @@ RectTransform:
|
|||
- {fileID: 1622029479}
|
||||
- {fileID: 827796987}
|
||||
- {fileID: 2034573239}
|
||||
- {fileID: 2090110239}
|
||||
- {fileID: 1357839139}
|
||||
m_Father: {fileID: 1703079398}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
|
@ -72541,7 +72541,6 @@ MonoBehaviour:
|
|||
m_OptionUI: {fileID: 2034573240}
|
||||
m_ProfileUI: {fileID: 827796988}
|
||||
m_ToastUI: {fileID: 1357839140}
|
||||
m_PopupUI: {fileID: 2090110240}
|
||||
m_LobbyCenterProfileUI: {fileID: 85747005}
|
||||
m_AlbumUI: {fileID: 476355707}
|
||||
m_GachaUI: {fileID: 2013608479}
|
||||
|
|
@ -76412,7 +76411,7 @@ GameObject:
|
|||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!224 &1795664158
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -76424,7 +76423,8 @@ RectTransform:
|
|||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 190845090}
|
||||
m_Father: {fileID: 2090110239}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
|
|
@ -76489,10 +76489,10 @@ MonoBehaviour:
|
|||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 2090110238}
|
||||
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
|
||||
m_MethodName: SetActive
|
||||
m_Mode: 6
|
||||
- m_Target: {fileID: 2090110240}
|
||||
m_TargetAssemblyTypeName: PopupUI, Assembly-CSharp
|
||||
m_MethodName: OnClick_No
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
|
|
@ -91481,7 +91481,7 @@ GameObject:
|
|||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2090110239
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -91489,14 +91489,13 @@ RectTransform:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2090110238}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1795664158}
|
||||
- {fileID: 190845090}
|
||||
m_Father: {fileID: 817765913}
|
||||
m_Father: {fileID: 456601672}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
|
|
@ -91515,6 +91514,7 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: cc0877e3b397a404b933f05b5cb48be7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
go_child: {fileID: 1795664157}
|
||||
t_msg: {fileID: 201125227}
|
||||
--- !u!1001 &2091168890
|
||||
PrefabInstance:
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
}
|
||||
|
||||
// ===========================================================
|
||||
// 광고 시청 요청
|
||||
// 窵𡟯<EFBFBD> ?𨰰痍 ?䇹痍
|
||||
// ===========================================================
|
||||
public void Show_AD(bool bshort, Action _success, Action _fail = null)
|
||||
{
|
||||
|
|
@ -58,7 +58,7 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
}
|
||||
else
|
||||
{
|
||||
LobbyUI.Ins.m_ToastUI.Set("광고를 준비 중입니다.\n잠시 후 다시 시도해주세요.");
|
||||
LobbyUI.Ins.m_ToastUI.Set("窵𡟯<EFBFBD>諝?鴗<>赬?鴗𡢾<E9B497>?<3F>𠹻.\n?𥔱<> ???木<> ?嶅<>?渥ˉ?賄<>.");
|
||||
GetReward = 3;
|
||||
}
|
||||
}
|
||||
|
|
@ -71,23 +71,23 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
}
|
||||
else
|
||||
{
|
||||
LobbyUI.Ins.m_ToastUI.Set("광고를 준비 중입니다.\n잠시 후 다시 시도해주세요.");
|
||||
LobbyUI.Ins.m_ToastUI.Set("窵𡟯<EFBFBD>諝?鴗<>赬?鴗𡢾<E9B497>?<3F>𠹻.\n?𥔱<> ???木<> ?嶅<>?渥ˉ?賄<>.");
|
||||
GetReward = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================
|
||||
// 배너 광고 제어
|
||||
// 諻圉<EFBFBD> 窵𡟯<E7AAB5> ?𨰰𩸭
|
||||
// ===========================================================
|
||||
// 외부에서 배너를 켜거나 끌 때 호출
|
||||
// ?賈??韠<> 諻圉<E8ABBB>諝?儤𨁈掠???????賄<>
|
||||
public void Set_Banner(bool active)
|
||||
{
|
||||
return; // 일단 비활성화
|
||||
return; // ?潺𡆀 赬<><E8B5AC>?桶<>
|
||||
|
||||
if (SaveMgr.Ins.Get_ShopNoAD())
|
||||
{
|
||||
// No-AD 유저면 항상 숨김
|
||||
// No-AD ?𥔱?諰???<3F> ?刷?
|
||||
if (bannerVisible)
|
||||
{
|
||||
HideBanner();
|
||||
|
|
@ -115,14 +115,14 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
{
|
||||
Debug.Log("Banner Load Success");
|
||||
bannerLoaded = true;
|
||||
// 자동으로 보이게 하려면 아래 호출
|
||||
// ?韒<>?潺<> 貐渥𦚯窶??䁪𨸹諰??<3F><> ?賄<>
|
||||
// Advertisement.Banner.Show(placement_Banner);
|
||||
},
|
||||
errorCallback = (err) =>
|
||||
{
|
||||
Debug.LogWarning("Banner Load Fail: " + err);
|
||||
bannerLoaded = false;
|
||||
// 필요시 재시도 로직 (예: 일정 시간 후 다시 Load)
|
||||
// ?<3F><>???科<>??諢𨰰<E8ABA2> (?? ?潰<> ?𨁈<> ???木<> Load)
|
||||
// StartCoroutine(RetryLoadBannerCoroutine());
|
||||
}
|
||||
};
|
||||
|
|
@ -137,10 +137,10 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
|
||||
if (!bannerLoaded)
|
||||
{
|
||||
// 로드가 안 되어 있으면 우선 로드하고, 로드시 자동으로 보여주게 처리
|
||||
// 諢嶅<EFBFBD>穈<EFBFBD> ???䁯𩸭 ?<3F>尐諰??域<> 諢嶅<E8ABA2>?瞘<>, 諢嶅<E8ABA2>???韒<>?潺<> 貐渥𤩐鴥澎<E9B4A5> 麮䁪收
|
||||
LoadBanner();
|
||||
// 간단 처리: 로드 완료 콜백에서 실제로 보여주도록 하거나 즉시 안내 메시지
|
||||
LobbyUI.Ins.m_ToastUI.Set("배너 광고 준비 중입니다.");
|
||||
// 穈<EFBFBD>𡆀 麮䁪收: 諢嶅<E8ABA2> ?<3F><> 儠嶅停?韠<> ?木<>諢?貐渥𤩐鴥潺<E9B4A5>諢??瞘掠??鴞吣<E9B49E> ?<3F><> 諰䇹<E8ABB0>鴔<EFBFBD>
|
||||
LobbyUI.Ins.m_ToastUI.Set("諻圉<EFBFBD> 窵𡟯<E7AAB5> 鴗<>赬?鴗𡢾<E9B497>?<3F>𠹻.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -157,12 +157,12 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
|
||||
void HideBanner()
|
||||
{
|
||||
Advertisement.Banner.Hide(false); // true면 destroy
|
||||
Advertisement.Banner.Hide(false); // true諰?destroy
|
||||
bannerVisible = false;
|
||||
}
|
||||
|
||||
// ===========================================================
|
||||
// 업데이트 - 광고 결과 처리
|
||||
// ?<3F>㫲?渣䂻 - 窵𡟯<E7AAB5> 窶國頃 麮䁪收
|
||||
// ===========================================================
|
||||
protected override void Update()
|
||||
{
|
||||
|
|
@ -200,19 +200,19 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
// ===========================================================
|
||||
public void OnInitializationComplete()
|
||||
{
|
||||
Debug.Log("✅ Unity Ads Initialized");
|
||||
Debug.Log("??Unity Ads Initialized");
|
||||
|
||||
// 초기화 완료 후 광고 미리 로드 (인터스티셜 + 리워드)
|
||||
// 黕<EFBFBD>萼???<3F><> ??窵𡟯<E7AAB5> 諯賈收 諢嶅<E8ABA2> (?貲<>?欠剨??+ 謔科<E8AC94>??
|
||||
Advertisement.Load(placement_Interstitial, this);
|
||||
Advertisement.Load(placement_Rewarded, this);
|
||||
|
||||
// 배너도 미리 로드하되, 자동 노출은 하지 않음
|
||||
// 諻圉<EFBFBD>??諯賈收 諢嶅<E8ABA2>?䁪<>, ?韒<> ?賄<>?<3F> ?䁯? ?𥇣<>
|
||||
LoadBanner();
|
||||
}
|
||||
|
||||
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
|
||||
{
|
||||
Debug.LogError($"❌ Unity Ads Init Failed: {error} - {message}");
|
||||
Debug.LogError($"??Unity Ads Init Failed: {error} - {message}");
|
||||
}
|
||||
|
||||
// ===========================================================
|
||||
|
|
@ -229,7 +229,7 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
|
||||
public void OnUnityAdsFailedToLoad(string placementId, UnityAdsLoadError error, string message)
|
||||
{
|
||||
Debug.LogError($"❌ Failed to load Ad {placementId}: {error} - {message}");
|
||||
Debug.LogError($"??Failed to load Ad {placementId}: {error} - {message}");
|
||||
if (placementId == placement_Interstitial) interstitialReady = false;
|
||||
else if (placementId == placement_Rewarded) rewardedReady = false;
|
||||
}
|
||||
|
|
@ -244,16 +244,16 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
|
|||
else
|
||||
GetReward = 2;
|
||||
|
||||
// 광고 시청 후 즉시 다음 광고 미리 로드
|
||||
// 窵𡟯<EFBFBD> ?𨰰痍 ??鴞吣<E9B49E> ?木<> 窵𡟯<E7AAB5> 諯賈收 諢嶅<E8ABA2>
|
||||
Advertisement.Load(placementId, this);
|
||||
}
|
||||
|
||||
public void OnUnityAdsShowFailure(string placementId, UnityAdsShowError error, string message)
|
||||
{
|
||||
Debug.LogError($"❌ Show failed {placementId}: {error} - {message}");
|
||||
Debug.LogError($"??Show failed {placementId}: {error} - {message}");
|
||||
GetReward = 2;
|
||||
|
||||
// 실패했어도 다음 광고 미리 로드 시도
|
||||
// ?欠𤔅?<3F>𩸭???木<> 窵𡟯<E7AAB5> 諯賈收 諢嶅<E8ABA2> ?嶅<>
|
||||
Advertisement.Load(placementId, this);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ public class ChatUI : MonoBehaviour
|
|||
|
||||
public void OnClick_NewChat()
|
||||
{
|
||||
LobbyUI.Ins.m_PopupUI.Set("현재의 채팅을 초기화 합니다. 계속하시겠습니까?", () =>
|
||||
PopupUI.Ins.Set("현재의 채팅을 초기화 합니다. 계속하시겠습니까?", () =>
|
||||
{
|
||||
SaveMgr.Ins.Del_ChatSaveData(m_Data.n_GirlID);
|
||||
Set(m_Data);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
using OneStore.Common; // 지우면 안됨
|
||||
using System;
|
||||
using System.Collections;
|
||||
using OneStore.Common; // 지우면 안됨
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.U2D;
|
||||
|
||||
public class TitleInfo : MonoBehaviour
|
||||
|
|
@ -9,6 +11,8 @@ public class TitleInfo : MonoBehaviour
|
|||
[SerializeField] TextMeshProUGUI label_msg, t_ver;
|
||||
[SerializeField] GameObject go_LobbyUI;
|
||||
|
||||
const string VERSION_URL = "https://filgoodbanditshomepage.web.app/NightWard.txt";
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Screen.sleepTimeout = SleepTimeout.NeverSleep;
|
||||
|
|
@ -16,27 +20,107 @@ public class TitleInfo : MonoBehaviour
|
|||
go_LobbyUI.SetActive(false);
|
||||
}
|
||||
|
||||
IEnumerator Start()
|
||||
private void Start()
|
||||
{
|
||||
SetVersionText();
|
||||
|
||||
label_msg.text = "게임 버전 확인 중...";
|
||||
|
||||
StartCoroutine(LoadVersionData(
|
||||
OnVersionSuccess,
|
||||
OnVersionFail
|
||||
));
|
||||
}
|
||||
|
||||
void SetVersionText()
|
||||
{
|
||||
t_ver.text = Application.version;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
t_ver.text += "(E)";
|
||||
#else
|
||||
t_ver.text += StoreEnvironment.GetStoreType() == StoreType.ONESTORE ? "(O)" : "(G)";
|
||||
#endif
|
||||
}
|
||||
|
||||
void OnVersionFail()
|
||||
{
|
||||
PopupUI.Ins.Set("게임 업데이트가 필요합니다.", DSUtil.Quit, DSUtil.Quit);
|
||||
}
|
||||
|
||||
void OnVersionSuccess()
|
||||
{
|
||||
StartCoroutine(Co_Success());
|
||||
}
|
||||
|
||||
IEnumerator Co_Success()
|
||||
{
|
||||
label_msg.text = "게임 데이터를 읽고 있습니다.";
|
||||
|
||||
// 테이블 로딩 기다리기
|
||||
while (!TableChecker.Ins.CheckAllLoad()) yield return null;
|
||||
// 테이블 로딩 대기
|
||||
while (!TableChecker.Ins.CheckAllLoad())
|
||||
yield return null;
|
||||
|
||||
// UI 아틀라스 로드
|
||||
yield return AddrResourceMgr.Ins.LoadObjectSequential<SpriteAtlas>("MainUI/UIAtlas.spriteatlasv2", atlas => { UIAtlasMgr.Ins.Set(atlas); });
|
||||
yield return AddrResourceMgr.Ins.LoadObjectSequential<SpriteAtlas>(
|
||||
"MainUI/UIAtlas.spriteatlasv2",
|
||||
atlas => UIAtlasMgr.Ins.Set(atlas)
|
||||
);
|
||||
|
||||
label_msg.text = "로비로 진입 중입니다.";
|
||||
yield return null;
|
||||
|
||||
// 연출용 대기 (필요 없으면 제거 가능)
|
||||
yield return new WaitForSeconds(3f);
|
||||
|
||||
gameObject.SetActive(false);
|
||||
go_LobbyUI.SetActive(true);
|
||||
|
||||
SoundInfo.Ins.Play_BGM(eBGM.b001_BGM);
|
||||
}
|
||||
|
||||
IEnumerator LoadVersionData(Action success, Action fail)
|
||||
{
|
||||
using (UnityWebRequest www = UnityWebRequest.Get(VERSION_URL))
|
||||
{
|
||||
yield return www.SendWebRequest();
|
||||
|
||||
// 네트워크 에러 처리
|
||||
if (www.result != UnityWebRequest.Result.Success)
|
||||
{
|
||||
Debug.LogError($"Version check failed : {www.error}");
|
||||
fail?.Invoke();
|
||||
yield break;
|
||||
}
|
||||
|
||||
string serverVersionText = www.downloadHandler.text;
|
||||
|
||||
if (string.IsNullOrEmpty(serverVersionText))
|
||||
{
|
||||
Debug.LogError("Version text is empty");
|
||||
fail?.Invoke();
|
||||
yield break;
|
||||
}
|
||||
|
||||
// 개행 / 공백 제거
|
||||
serverVersionText = serverVersionText.Trim();
|
||||
|
||||
Version serverVersion;
|
||||
Version clientVersion;
|
||||
|
||||
// 안전한 버전 파싱
|
||||
if (!Version.TryParse(serverVersionText, out serverVersion) ||
|
||||
!Version.TryParse(Application.version, out clientVersion))
|
||||
{
|
||||
Debug.LogError($"Version parse failed : {serverVersionText}");
|
||||
fail?.Invoke();
|
||||
yield break;
|
||||
}
|
||||
|
||||
if (serverVersion > clientVersion)
|
||||
fail?.Invoke();
|
||||
else
|
||||
success?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -17,7 +17,6 @@ public class LobbyUI : MonoBehaviourSingletonTemplate<LobbyUI>
|
|||
[SerializeField] OptionUI m_OptionUI;
|
||||
[SerializeField] ProfileUI m_ProfileUI;
|
||||
public ToastUI m_ToastUI;
|
||||
public PopupUI m_PopupUI;
|
||||
|
||||
[Header("Center UI")]
|
||||
public LobbyCenterProfileUI m_LobbyCenterProfileUI;
|
||||
|
|
|
|||
|
|
@ -2,23 +2,31 @@ using System;
|
|||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
public class PopupUI : MonoBehaviour
|
||||
public class PopupUI : MonoBehaviourSingletonTemplate<PopupUI>
|
||||
{
|
||||
public GameObject go_child;
|
||||
public TextMeshProUGUI t_msg;
|
||||
|
||||
Action act_ok;
|
||||
Action act_ok, act_no;
|
||||
|
||||
public void Set(string msg, Action ok)
|
||||
public void Set(string msg, Action ok, Action no = null)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
go_child.SetActive(true);
|
||||
act_ok = ok;
|
||||
act_no = no;
|
||||
|
||||
t_msg.text = msg;
|
||||
}
|
||||
|
||||
public void OnClick_OK()
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
go_child.SetActive(false);
|
||||
act_ok?.Invoke();
|
||||
}
|
||||
|
||||
public void OnClick_No()
|
||||
{
|
||||
go_child.SetActive(false);
|
||||
act_no?.Invoke();
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -10,8 +10,8 @@
|
|||
2. 인게임 피버모드 배경 : Album 테이블의 e_CollectionMethod가 Mission 인 이미지
|
||||
3. 인게임 섹시 배경(시작할 때 섹시 이미지로 변경하고 진입한 경우) : Album 테이블의 e_CollectionMethod가 FullCollection 인 이미지
|
||||
|
||||
업데이트 확인 팝업 (필굿 홈페이지에 연결)
|
||||
미니게임 배경 설정
|
||||
사운드
|
||||
확률 url
|
||||
업데이트 확인 팝업 (필굿 홈페이지에 연결)
|
||||
앱 아이콘
|
||||
Loading…
Reference in New Issue