Compare commits

...

6 Commits

Author SHA1 Message Date
Ino 901be0521f 다른 게임 추가 2026-01-10 14:55:45 +09:00
Ino 5bd20349c1 디스코드 문구 수정 2026-01-08 18:04:59 +09:00
Ino 56da5f6c38 디스코드 추가 2026-01-08 16:52:53 +09:00
Ino 9fd6077672 확률 정보 주소 변경 2025-12-01 13:06:21 +09:00
Ino 3960cbc84a 1.0.3 버그 수정 2025-11-12 15:18:56 +09:00
Ino 8b4df58198 광고 재화 저장 2025-11-12 14:56:14 +09:00
10 changed files with 491 additions and 49 deletions

View File

@ -1 +1 @@
19
27

View File

@ -2861,7 +2861,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 2756, y: -25}
m_AnchoredPosition: {x: 2756, y: -25.000015}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!61 &85415561
@ -16389,7 +16389,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: -2756, y: -25}
m_AnchoredPosition: {x: -2756, y: -25.000015}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!61 &420248622
@ -19712,6 +19712,7 @@ GameObject:
- component: {fileID: 500962030}
- component: {fileID: 500962029}
- component: {fileID: 500962031}
- component: {fileID: 500962032}
m_Layer: 0
m_Name: Infos
m_TagString: Untagged
@ -19871,6 +19872,19 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4177bc10460c0264eb933d4c43a6f313, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &500962032
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 500962021}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a6217070f548560469157a6f26c22065, type: 3}
m_Name:
m_EditorClassIdentifier:
webhookUrl: https://discord.com/api/webhooks/1458685956029939905/mjzyM7JuC7KWIjR4INNpGNCUK2EKanBace1nuwd114E5VIicTvrB3IKHSuI22ID0AtlP
--- !u!1 &503960960
GameObject:
m_ObjectHideFlags: 0
@ -24582,6 +24596,153 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 607705654}
m_CullTransparentMesh: 1
--- !u!1 &608223683
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 608223684}
- component: {fileID: 608223688}
- component: {fileID: 608223687}
- component: {fileID: 608223686}
- component: {fileID: 608223685}
m_Layer: 5
m_Name: btn_1 (2)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &608223684
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 608223683}
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: 1483257111}
m_Father: {fileID: 1873956282}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 225, y: -16.04}
m_SizeDelta: {x: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &608223685
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 608223683}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4848326f7db925d4fbcdb35f789b75f5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Sound: 0
--- !u!114 &608223686
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 608223683}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 608223687}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2034573240}
m_TargetAssemblyTypeName: OptionUI, Assembly-CSharp
m_MethodName: OnClick_OtherGame
m_Mode: 5
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument: https://m.onestore.co.kr/v2/ko-kr/app/0001003603
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &608223687
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 608223683}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 05df83961ccc0f642bb4626bcf01d4cf, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &608223688
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 608223683}
m_CullTransparentMesh: 1
--- !u!1 &610293026
GameObject:
m_ObjectHideFlags: 0
@ -54612,7 +54773,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 125, y: -16.04}
m_AnchoredPosition: {x: 0, y: -16.04}
m_SizeDelta: {x: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1370974289
@ -58690,6 +58851,142 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1483186138}
m_CullTransparentMesh: 1
--- !u!1 &1483257110
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1483257111}
- component: {fileID: 1483257113}
- component: {fileID: 1483257112}
m_Layer: 5
m_Name: New TMP
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1483257111
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1483257110}
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: []
m_Father: {fileID: 608223684}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: -23.61}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1483257112
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1483257110}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uC57C\uC2EC\uD55C \uBCD1\uB3D9"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 3055b5c28f94e6c4ea6b9a379bb315a5, type: 2}
m_sharedMaterial: {fileID: -3574565475228871172, guid: 3055b5c28f94e6c4ea6b9a379bb315a5, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4293256191
m_fontColor: {r: 1, g: 0.8901961, b: 0.8980392, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 25
m_fontSizeMax: 100
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 4096
m_textAlignment: 65535
m_characterSpacing: -10
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1483257113
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1483257110}
m_CullTransparentMesh: 1
--- !u!224 &1483615884 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 2198343314357404905, guid: 9df5d1d82e35edb4e98c606d7d69f8f4, type: 3}
@ -64746,7 +65043,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -55.772705}
m_AnchoredPosition: {x: 0, y: -55.77272}
m_SizeDelta: {x: 0, y: -111.5455}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1630921640
@ -67225,7 +67522,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -125, y: -16.04}
m_AnchoredPosition: {x: -225, y: -16.04}
m_SizeDelta: {x: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1695390285
@ -75141,6 +75438,7 @@ RectTransform:
- {fileID: 1678358371}
- {fileID: 1695390284}
- {fileID: 1370974288}
- {fileID: 608223684}
m_Father: {fileID: 770900677}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}

View File

@ -7,15 +7,22 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
{
#if UNITY_ANDROID
string gameId = "5947579";
string placement_Interstitial = "Interstitial_Android";
string placement_Rewarded = "Rewarded_Android";
string placement_Banner = "Banner_Android";
#elif UNITY_IOS
string gameId = "5947578";
string placement_Interstitial = "Interstitial_iOS";
string placement_Rewarded = "Rewarded_iOS";
string placement_Banner = "Banner_iOS";
#endif
bool testMode = false;
string placement_Interstitial = "Interstitial_Android";
string placement_Rewarded = "Rewarded_Android";
string placement_Banner = "Banner_Android";
bool interstitialReady = false;
bool rewardedReady = false;
bool bannerLoaded = false;
bool bannerVisible = false;
byte GetReward = 0;
Action Action_success, Action_fail;
@ -26,6 +33,9 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
Advertisement.Initialize(gameId, testMode, this);
}
// ===========================================================
// 광고 시청 요청
// ===========================================================
public void Show_AD(bool bshort, Action _success, Action _fail = null)
{
Stop_Game();
@ -41,43 +51,119 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
return;
}
Advertisement.Load(placement_Interstitial, this);
}
else
{
Advertisement.Load(placement_Rewarded, this);
}
}
public void Set_Banner(bool active)
{
return;
if (active)
{
if (!SaveMgr.Ins.Get_ShopNoAD())
if (interstitialReady)
{
Advertisement.Banner.Load(placement_Banner, new BannerLoadOptions
{
loadCallback = () =>
{
Debug.Log("Banner Load Success");
Advertisement.Banner.SetPosition(BannerPosition.BOTTOM_CENTER);
Advertisement.Banner.Show(placement_Banner);
},
errorCallback = (err) =>
{
Debug.Log("Banner Load Fail: " + err);
}
});
Advertisement.Show(placement_Interstitial, this);
interstitialReady = false;
}
else
{
LobbyUI.Ins.m_ToastUI.Set("광고를 준비 중입니다.\n잠시 후 다시 시도해주세요.");
GetReward = 3;
}
}
else
{
Advertisement.Banner.Hide();
if (rewardedReady)
{
Advertisement.Show(placement_Rewarded, this);
rewardedReady = false;
}
else
{
LobbyUI.Ins.m_ToastUI.Set("광고를 준비 중입니다.\n잠시 후 다시 시도해주세요.");
GetReward = 3;
}
}
}
// ===========================================================
// 배너 광고 제어
// ===========================================================
// 외부에서 배너를 켜거나 끌 때 호출
public void Set_Banner(bool active)
{
return; // 일단 비활성화
if (SaveMgr.Ins.Get_ShopNoAD())
{
// No-AD 유저면 항상 숨김
if (bannerVisible)
{
HideBanner();
}
return;
}
if (active)
{
ShowBanner();
}
else
{
HideBanner();
}
}
void LoadBanner()
{
if (bannerLoaded) return;
var options = new BannerLoadOptions
{
loadCallback = () =>
{
Debug.Log("Banner Load Success");
bannerLoaded = true;
// 자동으로 보이게 하려면 아래 호출
// Advertisement.Banner.Show(placement_Banner);
},
errorCallback = (err) =>
{
Debug.LogWarning("Banner Load Fail: " + err);
bannerLoaded = false;
// 필요시 재시도 로직 (예: 일정 시간 후 다시 Load)
// StartCoroutine(RetryLoadBannerCoroutine());
}
};
Advertisement.Banner.SetPosition(BannerPosition.BOTTOM_CENTER);
Advertisement.Banner.Load(placement_Banner, options);
}
void ShowBanner()
{
if (SaveMgr.Ins.Get_ShopNoAD()) return;
if (!bannerLoaded)
{
// 로드가 안 되어 있으면 우선 로드하고, 로드시 자동으로 보여주게 처리
LoadBanner();
// 간단 처리: 로드 완료 콜백에서 실제로 보여주도록 하거나 즉시 안내 메시지
LobbyUI.Ins.m_ToastUI.Set("배너 광고 준비 중입니다.");
return;
}
var showOptions = new BannerOptions
{
clickCallback = () => Debug.Log("Banner clicked"),
hideCallback = () => Debug.Log("Banner hidden"),
showCallback = () => Debug.Log("Banner shown")
};
Advertisement.Banner.Show(placement_Banner, showOptions);
bannerVisible = true;
}
void HideBanner()
{
Advertisement.Banner.Hide(false); // true면 destroy
bannerVisible = false;
}
// ===========================================================
// 업데이트 - 광고 결과 처리
// ===========================================================
protected override void Update()
{
base.Update();
@ -88,11 +174,11 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
Play_Game();
Action_success?.Invoke();
break;
case 2:
case 3:
GetReward = 0;
Play_Game();
LobbyUI.Ins.m_ToastUI.Set("준비된 광고가 없습니다.\n나중에 다시 시도해 주세요.");
Action_fail?.Invoke();
break;
}
@ -114,12 +200,19 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
// ===========================================================
public void OnInitializationComplete()
{
Debug.Log("Unity Ads Initialization Complete");
Debug.Log("✅ Unity Ads Initialized");
// 초기화 완료 후 광고 미리 로드 (인터스티셜 + 리워드)
Advertisement.Load(placement_Interstitial, this);
Advertisement.Load(placement_Rewarded, this);
// 배너도 미리 로드하되, 자동 노출은 하지 않음
LoadBanner();
}
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
{
Debug.LogError($"Unity Ads Init Failed: {error} - {message}");
Debug.LogError($"❌ Unity Ads Init Failed: {error} - {message}");
}
// ===========================================================
@ -128,13 +221,17 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
public void OnUnityAdsAdLoaded(string placementId)
{
Debug.Log("Ad Loaded: " + placementId);
Advertisement.Show(placementId, this);
if (placementId == placement_Interstitial)
interstitialReady = true;
else if (placementId == placement_Rewarded)
rewardedReady = true;
}
public void OnUnityAdsFailedToLoad(string placementId, UnityAdsLoadError error, string message)
{
Debug.LogError($"Failed to load Ad {placementId}: {error} - {message}");
GetReward = 2;
Debug.LogError($"❌ Failed to load Ad {placementId}: {error} - {message}");
if (placementId == placement_Interstitial) interstitialReady = false;
else if (placementId == placement_Rewarded) rewardedReady = false;
}
// ===========================================================
@ -146,12 +243,18 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>,
GetReward = 1;
else
GetReward = 2;
// 광고 시청 후 즉시 다음 광고 미리 로드
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;
// 실패했어도 다음 광고 미리 로드 시도
Advertisement.Load(placementId, this);
}
public void OnUnityAdsShowStart(string placementId) { }

View File

@ -0,0 +1,33 @@
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class DiscordWebhookSender : MonoBehaviourSingletonTemplate<DiscordWebhookSender>
{
[SerializeField] private string webhookUrl;
public void Send_Message(string message)
{
StartCoroutine(SendCoroutine(message));
}
IEnumerator SendCoroutine(string message)
{
string json = "{\"content\":\"" + message + "\"}";
//Debug.Log("DiscordWebhookSender : " + json);
using (UnityWebRequest request = new UnityWebRequest(webhookUrl, "POST"))
{
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(json);
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
//Debug.Log("DiscordWebhookSender Result : " + request.result);
if (request.result != UnityWebRequest.Result.Success)
Debug.LogError("Discord Error: " + request.error);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a6217070f548560469157a6f26c22065

View File

@ -167,6 +167,9 @@ public class InappInfo : MonoBehaviourSingletonTemplate<InappInfo>
act_success?.Invoke();
//GameManager.IAP.AddProductItem(purchase.ProductId);
//GameManager.UI.ShowNStackPopup(EPopupType.SuccessIAPPopup);
var pinfo = Get_ProductDetail(purchase.ProductId);
DiscordWebhookSender.Ins.Send_Message($"[OneStore]{Application.productName}, {pinfo.title} / {pinfo.price}원");
}
public void OnManageRecurringProduct(IapResult iapResult, PurchaseData purchase, RecurringAction action)

View File

@ -87,7 +87,7 @@ public static class AutoBuild
//PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel23;
EditorUserBuildSettings.buildAppBundle = false;
BuildStart("AndroidData/SheGotWet_Test_OneStore_" + Application.version + "_(" + PlayerSettings.Android.bundleVersionCode + ").apk", BuildTarget.Android);
BuildStart("AndroidData/SheGotWet_OneStore_Test_" + Application.version + "_(" + PlayerSettings.Android.bundleVersionCode + ").apk", BuildTarget.Android);
EmptySymbol();
}
[MenuItem("AutoBuild/Build Live AAB")]

View File

@ -171,6 +171,7 @@ public class GachaUI : uScrollViewMgr
ADInfo.Ins.Show_AD(false, () =>
{
SaveMgr.Ins.Add_Money(eMoney.Gacha, table_GlobalValue.Ins.Get_Int("GachaAD_Reward"));
SaveMgr.Ins.Save();
LobbyUI.Ins.m_ToastUI.Set($"뽑기 재화 {table_GlobalValue.Ins.Get_Int("GachaAD_Reward")}개를 획득했습니다.", ToastY);
Set_Money();
});
@ -304,6 +305,8 @@ public class GachaUI : uScrollViewMgr
public void OnClick_GachaRate()
{
Application.OpenURL("https://mergehero.notion.site/2a7e9deec1718038bae6dbce1a91f4c4");
//Application.OpenURL("https://mergehero.notion.site/2a7e9deec1718038bae6dbce1a91f4c4");
// 주소가 변경됐네?
Application.OpenURL("https://mergehero.notion.site/2bce9deec1718116a3aef132af4c9cfd");
}
}

View File

@ -141,7 +141,7 @@ PlayerSettings:
loadStoreDebugModeEnabled: 0
visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0
bundleVersion: 1.0.1
bundleVersion: 1.0.5
preloadedAssets:
- {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
metroInputSource: 0
@ -173,7 +173,7 @@ PlayerSettings:
iPhone: 0
tvOS: 0
overrideDefaultApplicationIdentifier: 1
AndroidBundleVersionCode: 19
AndroidBundleVersionCode: 27
AndroidMinSdkVersion: 24
AndroidTargetSdkVersion: 35
AndroidPreferredInstallLocation: 1