chunk 1: core gameplay scripts scenes runtime assets

This commit is contained in:
2026-04-06 11:02:34 +03:00
parent fa0388bc79
commit 0d11a097d8
703 changed files with 2292651 additions and 0 deletions

View File

@@ -0,0 +1,240 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Advertisements;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class AdsManager : MonoBehaviour, IUnityAdsInitializationListener, IUnityAdsLoadListener, IUnityAdsShowListener
{
// public string GAME_ID = "5486175"; //replace with your gameID from dashboard. note: will be different for each platform.
// private const string BANNER_PLACEMENT = "banner";
// private const string VIDEO_PLACEMENT = "video";
// private const string REWARDED_VIDEO_PLACEMENT = "rewardedVideo";
[SerializeField] private BannerPosition bannerPosition = BannerPosition.BOTTOM_CENTER;
// private bool testMode = true;
private bool showBanner = false;
//utility wrappers for debuglog
public delegate void DebugEvent(string msg);
public static event DebugEvent OnDebugLog;
// public GameObject missions_gameobject;
//Game ID based on platform
[SerializeField] string _androidGameId = "5486175";
[SerializeField] string _iOSGameId = "5486174";
// [SerializeField] string _androidGameId = "5491357";
// [SerializeField] string _iOSGameId = "5491356";
[SerializeField] bool _testMode = false; //Currently testing
private string _gameId;
[SerializeField] string _rewardedVideo_androidAdUnitId = "rewardedVideo";
[SerializeField] string _rewardedVideo_iOsAdUnitId = "rewardedVideo";
// [SerializeField] string _rewardedVideo_androidAdUnitId = "Rewarded_Android";
// [SerializeField] string _rewardedVideo_iOsAdUnitId = "Rewarded_Android";
string _adUnitId;
// public TextMeshPro isSubscribedText;
// public TextMeshProUGUI details;
// public TextMeshProUGUI debug_msg;
IEnumerator LoadAdCoroutine(){
while (true){
Advertisement.Load(_adUnitId, this);
yield return new WaitForSeconds(2f); // Adjust wait time based on your needs
}
}
MissionHandler mission_handler;
MissionsManager missions_manager;
public GameObject missionsManager_GO;
public static string AdShowbutton;
void OnEnable(){
mission_handler = GetComponent<MissionHandler>();
missions_manager = missionsManager_GO.GetComponent<MissionsManager>();
}
void Awake(){
Initialize();
StartCoroutine(LoadAdCoroutine()); //This code starts a coroutine that continuously calls LoadRewardedAd every 5 seconds (adjust as needed).
}
void Update(){
}
//Initialize method is responsible for initializing Unity Ads with a given GAME_ID
public void Initialize()
{
//Check if Unity Ads is supported on the current platform
// if (Advertisement.isSupported)
// {
// DebugLog(Application.platform + " supported by Advertisement");
// }
//Set Game ID based on the platform, Android or iPhone
#if UNITY_IOS
_gameId = _iOSGameId;
#elif UNITY_ANDROID
_gameId = _androidGameId;
#elif UNITY_EDITOR
_gameId = _androidGameId; //Only for testing the functionality in the Editor
#endif
if (!Advertisement.isInitialized && Advertisement.isSupported)
{
Advertisement.Initialize(_gameId, _testMode, this);
}
// Get the Ad Unit ID for the current platform:
_adUnitId = (Application.platform == RuntimePlatform.IPhonePlayer)
? _rewardedVideo_iOsAdUnitId
: _rewardedVideo_androidAdUnitId;
try{
Advertisement.Initialize(_gameId, _testMode, this);
}catch(Exception e){
// debug_msg.text = "Initialize_Error: " + e.ToString();
}
}
//Toggles between showing and hiding the banner ad
public void ToggleBanner()
{
// showBanner = !showBanner;
// if (showBanner)
// {
// //Sets the banner position
// Advertisement.Banner.SetPosition(bannerPosition);
// Advertisement.Banner.Show(BANNER_PLACEMENT);
// }
// else
// {
// Advertisement.Banner.Hide(false);
// }
}
//Loads rewarded video ads
public void LoadRewardedAd()
{
Advertisement.Load(_adUnitId, this);
}
//Show rewarded video ads
public void ShowRewardedAd(){
string buttonName = gameObject.name;
AdShowbutton = buttonName;
Debug.LogWarning("Clicked button name: " + buttonName);
try{
Advertisement.Show(_adUnitId, this);
}catch(Exception e){
// ads_not_ready_popup_text.text = "Show_Error: " + e.ToString();
}
}
//Loads Interstitial (Non-Rewarded) Video Ads
public void LoadNonRewardedAd()
{
Advertisement.Load(_adUnitId, this);
}
#region Interface Implementations
public void OnInitializationComplete()
{
DebugLog("Init Success");
}
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
{
// ads_not_ready_popup_text.text = "InitializationFailed: " + message;
DebugLog($"Init Failed: [{error}]: {message}");
}
public void OnUnityAdsAdLoaded(string placementId)
{
// ShowRewardedAd();
DebugLog($"Load Success: {placementId}");
}
public void OnUnityAdsFailedToLoad(string placementId, UnityAdsLoadError error, string message)
{
// ads_not_ready_popup_text.text = "LoadFailed: " + message;
DebugLog($"Load Failed: [{error}:{placementId}] {message}");
}
public void OnUnityAdsShowFailure(string placementId, UnityAdsShowError error, string message)
{
// ads_not_ready_popup_text.text = "ShowFailed: " + message;
DebugLog($"OnUnityAdsShowFailure: [{error}]: {message}");
}
public void OnUnityAdsShowStart(string placementId)
{
DebugLog($"OnUnityAdsShowStart: {placementId}");
}
public void OnUnityAdsShowClick(string placementId)
{
DebugLog($"OnUnityAdsShowClick: {placementId}");
}
//Called when the rewarded video ad has been shown to completion
public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState showCompletionState)
{
//Check if the Ad selected was a Rewarded video
if (((placementId == _rewardedVideo_androidAdUnitId) || (placementId == _rewardedVideo_iOsAdUnitId)) && showCompletionState == UnityAdsShowCompletionState.COMPLETED)
{
//// Reward the user here
// RewardUser();
mission_handler.AdsWatched();
Debug.LogWarning("Reward Given!");
// missions_gameobject.SetActive(false);
// missions_gameobject.SetActive(true);
missions_manager.UpdateAdMissionUI(AdShowbutton);
}
DebugLog($"OnUnityAdsShowComplete: [{showCompletionState}]: {placementId}");
}
#endregion
public void OnGameIDFieldChanged(string newInput)
{
_gameId = newInput;
}
public void ToggleTestMode(bool isOn)
{
_testMode = isOn;
}
//wrapper around debug.log to allow broadcasting log strings to the UI
void DebugLog(string msg)
{
OnDebugLog?.Invoke(msg);
Debug.Log(msg);
}
}