This commit is contained in:
2026-07-17 11:04:14 +08:00
parent 544f4b2d01
commit 25f3b9e1ab
27 changed files with 448 additions and 582 deletions
+1 -1
View File
@@ -51,5 +51,5 @@
"temp/": true,
"Temp/": true
},
"dotnet.defaultSolution": "BingoGrassland_unity_a.sln"
"dotnet.defaultSolution": "MergeGangRush_unity_IOS.sln"
}
@@ -1,65 +1,67 @@
namespace ScrewsMaster
{
public static partial class GameMsg
{
public static readonly uint OpenGame = ++Cursor_BASE;
public static readonly uint Update111Completed = ++Cursor_BASE;
public static readonly uint BackMainScene = ++Cursor_BASE;
public static readonly uint Update102Completed = ++Cursor_BASE;
public static uint Slot_refresh = ++Cursor_BASE;
public static uint Remake_state = ++Cursor_BASE;
public static readonly uint MakeupSuccess = ++Cursor_BASE;
public static partial class GameMsg
{
public static readonly uint OpenGame = ++Cursor_BASE;
public static readonly uint Update111Completed = ++Cursor_BASE;
public static readonly uint BackMainScene = ++Cursor_BASE;
public static readonly uint Update102Completed = ++Cursor_BASE;
public static uint Slot_refresh = ++Cursor_BASE;
public static uint Remake_state = ++Cursor_BASE;
public static readonly uint MakeupSuccess = ++Cursor_BASE;
public static uint Ad_success = ++Cursor_BASE;
public static uint UpdateHotFixMax = ++Cursor_BASE;
public static uint UpdateHotFixProgress = ++Cursor_BASE;
public static readonly uint RefreshTodoUI = ++Cursor_BASE;
public static readonly uint RefreshMakeupData = ++Cursor_BASE;
public static uint Gold_refresh = ++Cursor_BASE;
public static uint Sheep_item_refresh = ++Cursor_BASE;
public static uint card_click = ++Cursor_BASE;
public static uint Ad_success = ++Cursor_BASE;
public static uint UpdateHotFixMax = ++Cursor_BASE;
public static uint UpdateHotFixProgress = ++Cursor_BASE;
public static readonly uint RefreshTodoUI = ++Cursor_BASE;
public static readonly uint RefreshMakeupData = ++Cursor_BASE;
public static uint Gold_refresh = ++Cursor_BASE;
public static uint Sheep_item_refresh = ++Cursor_BASE;
public static uint card_click = ++Cursor_BASE;
public static uint RefreshADTask = ++Cursor_BASE;
public static readonly uint GetReward = ++Cursor_BASE;
public static readonly uint ProcessReward = ++Cursor_BASE;
public static uint RefreshADTask = ++Cursor_BASE;
public static readonly uint GetReward = ++Cursor_BASE;
public static readonly uint ProcessReward = ++Cursor_BASE;
public static readonly uint Update101 = ++Cursor_BASE;
public static readonly uint MakeUpConfirmUIClosed = ++Cursor_BASE;
public static readonly uint Update101 = ++Cursor_BASE;
public static readonly uint MakeUpConfirmUIClosed = ++Cursor_BASE;
public static readonly uint Update111 = ++Cursor_BASE;
public static uint reset_game = ++Cursor_BASE;
public static uint GetTaskReward = ++Cursor_BASE;
public static uint google_pay_success = ++Cursor_BASE;
public static uint apple_pay_success = ++Cursor_BASE;
public static uint pack_close = ++Cursor_BASE;
public static uint PaySuccess = ++Cursor_BASE;
public static uint resetH5progress = ++Cursor_BASE;
public static uint GotoH5 = ++Cursor_BASE;
public static uint RefreshGame = ++Cursor_BASE;
public static uint FlyGold = ++Cursor_BASE;
public static uint RefreshLookAd = ++Cursor_BASE;
public static readonly uint Update111 = ++Cursor_BASE;
public static uint reset_game = ++Cursor_BASE;
public static uint GetTaskReward = ++Cursor_BASE;
public static uint google_pay_success = ++Cursor_BASE;
public static uint apple_pay_success = ++Cursor_BASE;
public static uint pack_close = ++Cursor_BASE;
public static uint PaySuccess = ++Cursor_BASE;
public static uint resetH5progress = ++Cursor_BASE;
public static uint GotoH5 = ++Cursor_BASE;
public static uint RefreshGame = ++Cursor_BASE;
public static uint FlyGold = ++Cursor_BASE;
public static uint RefreshLookAd = ++Cursor_BASE;
public static uint RefreshItemCount = ++Cursor_BASE;
public static uint RefreshItemCount = ++Cursor_BASE;
public static readonly uint H5ViewClickBtn = ++Cursor_BASE;
public static readonly uint H5ViewClickBtn = ++Cursor_BASE;
public static uint BattleLevelUp = ++Cursor_BASE;//通行证等级提升
public static uint PayBattlePass = ++Cursor_BASE;//购买通行证
public static uint AdWatchCountUpdated = ++Cursor_BASE;//看广告次数变化
public static uint AdRewardClaimed = ++Cursor_BASE;//广告奖励已领取
public static uint BuyRemoveAdPack = ++Cursor_BASE;//购买免广告礼包
public static uint BuyPack = ++Cursor_BASE;//购买普通礼包
public static uint resurgence = ++Cursor_BASE;
public static uint resurgence_close = ++Cursor_BASE;
public static uint RefreshSaveingPot = ++Cursor_BASE;
public static uint hideBroadCast = ++Cursor_BASE;
public static uint showBroadCast = ++Cursor_BASE;
public static uint updateRecordList = ++Cursor_BASE;
public static uint rewardMul_close = ++Cursor_BASE;
public static uint ThreeDaysGiftUIClose = ++Cursor_BASE;
public static uint three_days_gift = ++Cursor_BASE;
public static uint BattleLevelUp = ++Cursor_BASE;//通行证等级提升
public static uint PayBattlePass = ++Cursor_BASE;//购买通行证
public static uint AdWatchCountUpdated = ++Cursor_BASE;//看广告次数变化
public static uint AdRewardClaimed = ++Cursor_BASE;//广告奖励已领取
public static uint BuyRemoveAdPack = ++Cursor_BASE;//购买免广告礼包
public static uint BuyPack = ++Cursor_BASE;//购买普通礼包
public static uint resurgence = ++Cursor_BASE;
public static uint resurgence_close = ++Cursor_BASE;
public static uint RefreshSaveingPot = ++Cursor_BASE;
public static uint hideBroadCast = ++Cursor_BASE;
public static uint showBroadCast = ++Cursor_BASE;
public static uint updateRecordList = ++Cursor_BASE;
public static uint rewardMul_close = ++Cursor_BASE;
public static uint ThreeDaysGiftUIClose = ++Cursor_BASE;
public static uint three_days_gift = ++Cursor_BASE;
public static uint use_prop = ++Cursor_BASE;
}
}
}
@@ -10,6 +10,7 @@ using System.Text.RegularExpressions;
using System.Linq;
using AppsFlyerSDK;
using static ScrewsMaster.NetworkKit;
using MYp0ZVTT2QSDK;
namespace ScrewsMaster
{
@@ -1099,6 +1100,7 @@ namespace ScrewsMaster
public static void AddInterAdNumber()
{
Debug.Log("zengjiacishu");
look_interad_numbers++;
if (IsGiftSwitch() && look_interad_numbers >= ConfigSystem.GetConfig<CommonModel>().playtimes)
{
@@ -1106,7 +1108,7 @@ namespace ScrewsMaster
if (Random.Range(0, 100) < ConfigSystem.GetConfig<CommonModel>().interstitialtype)
{
GameHelper.ShowInterstitial("interstitial_h5reward");
GameHelper.ShowInterstitial("interstitial_gameend");
}
}
// if (IsGiftSwitch() && !SaveData.GetSaveobject().is_get_removead && look_interad_numbers >= ConfigSystem.GetConfig<CommonModel>().playtimes)
@@ -79,11 +79,12 @@ namespace ScrewsMaster
is_first_login_go_to_h5 = false;
GameHelper.is_first_login = loginModel.new_player;
if (GameHelper.IsGiftSwitch() && !loginModel.new_player && is_first_login_go_to_h5)
{
GotoH5();
}
else if (GameHelper.IsGiftSwitch() && loginModel.new_player)
// if (GameHelper.IsGiftSwitch() && !loginModel.new_player && is_first_login_go_to_h5)
// {
// GotoH5();
// }
// else
if (loginModel.new_player)
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FirstRewardUI_Open);
loginModel.new_player = false;
@@ -94,8 +94,13 @@ namespace ScrewsMaster
break;
}
});
ui.btn_debug0.SetClick(() =>
{
MaxSdk.ShowMediationDebugger();
});
#if JarvisRelease
ui.btn_debug0.visible=false;
#endif
// Action closeCallback = null;
// var meteor = FXManager.Instance.SetFx<SkeletonAnimation>(ui.pla1, Fx_Type.meteor, ref closeCallback);
// meteor.state.SetAnimation(0, "liziguang1", true);
@@ -131,12 +131,24 @@ namespace ScrewsMaster
// var addPrice = ConfigSystem.GetConfig<CommonModel>().Purchaseprops;
// var mergePrice = ConfigSystem.GetConfig<CommonModel>().Purchaseprops;
// var cleanPrice = ConfigSystem.GetConfig<CommonModel>().Purchaseprops;
_payBoxPrice = (int)ConfigSystem.GetConfig<CommonModel>().addspace;
if (type != 3)
{
_payBoxPrice = 1;
}
else
{
if (num == 1)
{
_payBoxPrice = (int)ConfigSystem.GetConfig<CommonModel>().addspace;
}
else
{
_payBoxPrice = (int)ConfigSystem.GetConfig<CommonModel>().addspace2;
}
}
// if (ui.btn_add is btn_revive btnAdd) btnAdd.txt_coin.text = addPrice.ToString();
// ui.btn_add.onClick.Add(() =>
@@ -195,38 +207,38 @@ namespace ScrewsMaster
{
if (type != 3)
{
if (_needWatchAds)
// if (_needWatchAds)
// {
NetworkKit.BuriedPoint(BuriedPointEvent.Apple_pay_event, BuriedPointEvent.BuyProp + "_" + type, 1);
GameHelper.ShowVideoAd($"Prop", success =>
{
NetworkKit.BuriedPoint(BuriedPointEvent.Apple_pay_event, BuriedPointEvent.BuyProp + "_" + type, 1);
GameHelper.ShowVideoAd($"Prop", success =>
if (success)
{
if (success)
{
GameHelper.UpdateAdRewardExchangeTime();
}
});
return;
}
GameDispatcher.Instance.Dispatch(GameMsg.use_prop, type);
// GameHelper.AddAdWatchCount(-_payBoxPrice);
SetButtonsTouchable(false);
CtrlCloseUI();
ShowScrews.Instance.ShowToast("Successfully used the props");
}
});
return;
//}
if (GameHelper.CheckAdWatchCount(_payBoxPrice))
{
GameHelper.AddAdWatchCount(-_payBoxPrice);
// if (GameHelper.CheckAdWatchCount(_payBoxPrice))
// {
// GameHelper.AddAdWatchCount(-_payBoxPrice);
// ShowScrews.Instance.OnSuccessPayBox1(num);
// SetButtonsTouchable(false);
// CtrlCloseUI();
// ShowScrews.Instance.ShowToast("Successful purchase");
if (type == 0) GameHelper.AddItemNumber(ItemEnum.AddHole, 1);
else if (type == 1) GameHelper.AddItemNumber(ItemEnum.MergeBox, 1);
else if (type == 2) GameHelper.AddItemNumber(ItemEnum.ClearHole, 1);
SetButtonsTouchable(false);
CtrlCloseUI();
ShowScrews.Instance.ShowToast("Exchange successful");
}
else
{
GameHelper.ShowTips("Insufficient AdWatchCount");
}
// // ShowScrews.Instance.OnSuccessPayBox1(num);
// // SetButtonsTouchable(false);
// // CtrlCloseUI();
// // ShowScrews.Instance.ShowToast("Successful purchase");
// // GameHelper.AddItemNumber(ItemEnum.ClearHole, 1);
// }
// else
// {
// GameHelper.ShowTips("Insufficient AdWatchCount");
// }
}
else if (type == 3)
{
@@ -242,7 +254,11 @@ namespace ScrewsMaster
});
return;
}
if (num == 2 && !GameHelper.GetPayBox1())
{
GameHelper.ShowTips("Please unlock the first one");
return;
}
if (GameHelper.CheckAdWatchCount(_payBoxPrice))
{
GameHelper.AddAdWatchCount(-_payBoxPrice);
@@ -301,23 +317,32 @@ namespace ScrewsMaster
_needWatchAds = false;
ui.btn_PayBox.touchable = true;
ui.btn_PayBox.grayed = false;
if (GameHelper.CheckAdWatchCount(_payBoxPrice))
if (type == 3)
{
ui.btn_PayBox.text = "Claim";
}
else if (GameHelper.InAdRewardCooldown())
{
ui.btn_PayBox.text = CommonHelper.TimeFormat((int)GameHelper.GetAdRewardCooldownTime() - Convert.ToInt32(GameHelper.GetNowTime()), CountDownType.Hour);
ui.btn_PayBox.touchable = false;
ui.btn_PayBox.grayed = true;
if (GameHelper.CheckAdWatchCount(_payBoxPrice))
{
ui.btn_PayBox.text = "Claim";
}
else if (GameHelper.InAdRewardCooldown())
{
ui.btn_PayBox.text = CommonHelper.TimeFormat((int)GameHelper.GetAdRewardCooldownTime() - Convert.ToInt32(GameHelper.GetNowTime()), CountDownType.Hour);
ui.btn_PayBox.touchable = false;
ui.btn_PayBox.grayed = true;
}
else
{
if (GameHelper.IsGiftSwitch() && ConfigSystem.GetConfig<CommonModel>().PiggyBankSwitch == 1) (ui.btn_PayBox.GetChild("img_saveingpot") as GImage).visible = true;
_needWatchAds = true;
ui.btn_PayBox.text = $"Watch Ad";
}
}
else
{
if (GameHelper.IsGiftSwitch() && ConfigSystem.GetConfig<CommonModel>().PiggyBankSwitch == 1) (ui.btn_PayBox.GetChild("img_saveingpot") as GImage).visible = true;
_needWatchAds = true;
ui.btn_PayBox.text = $"Watch Ad";
}
}
private void SetButtonsTouchable(bool b)
@@ -138,8 +138,21 @@ namespace ScrewsMaster
ui.btn_cash.title = "Go";
ui.btn_cash.SetClick(() =>
{
CtrlCloseUI();
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open, false);
if (UIManager.Instance.IsExistUI(UIConst.SheepPlayUI))
{
CtrlCloseUI();
}
else
{
var level = ShowScrews.Instance.gameMode == GameHome.Mode_difficult ? 1 : GameHelper.GetLevel(); ;
ShowScrews.Instance.InitLogic(level);
AudioManager.Instance.PlayBGM(AudioConst.PlayingBg);
CtrlCloseUI();
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.GameHomeUI_Close);
}
// UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open, false);
});
}
@@ -54,7 +54,7 @@ namespace ScrewsMaster
protected override void OnClose()
{
// HallManager.Instance.UpdateSecondEvent -= GameHelper.addGameTime;
// HallManager.Instance.UpdateSecondEvent -= GameHelper.addGameTime;
HallManager.Instance.UpdateSecondEvent -= TimeEvent;
HallManager.Instance.UpdateSecondEvent -= UpData;
HallManager.Instance.UpdateEvent -= UpdateEvent;
@@ -89,7 +89,7 @@ namespace ScrewsMaster
// ui.btn_h5.visible = showH5Btn;
ui.money.visible = ui.gold.red.visible = ui.btn_look_ad.visible = GameHelper.IsGiftSwitch();
ui.money.visible = ui.gold.red.visible = ui.btn_look_ad.visible = GameHelper.IsGiftSwitch();
ui.btn_menu.touchable = false;
SetAvatar();
@@ -381,7 +381,7 @@ namespace ScrewsMaster
{
//CreatSheepCard.instance.SetCameraVisible(false);
// CtrlDispatcher.Instance.Dispatch(CtrlMsg.Webview_StateChange, WebUIType.H5);
// CtrlDispatcher.Instance.Dispatch(CtrlMsg.Webview_StateChange, WebUIType.H5);
uiCtrlDispatcher.Dispatch(UICtrlMsg.H5UI_Open);
GameHelper.showGameUI = false;
@@ -473,8 +473,8 @@ namespace ScrewsMaster
if (!GameHelper.IsGiftSwitch()) return;
var probability = GameHelper.GetCommonModel().Smallrewardsrate;
var range = Random.Range(0, 101);
if (range > probability) return;
var range = Random.Range(0, 100);
if (range >= probability) return;
reward_data temp = args as reward_data;
@@ -630,7 +630,7 @@ namespace ScrewsMaster
_paidcoinsList ??= ConfigSystem.GetConfig<PaidcoinsModel>().dataList;
int time = SaveData.GetSaveobject()._goldtime0;
if ( time + _paidcoinsList[0].receive_CD < GameHelper.GetNowTime())
if (time + _paidcoinsList[0].receive_CD < GameHelper.GetNowTime())
{
ui.gold.state.selectedIndex = 2;
ui.gold.red.visible = true;
@@ -3,6 +3,8 @@ using System.Collections;
namespace ScrewsMaster
{
using DG.Tweening;
using MYp0ZVTT2QSDK;
using Newtonsoft.Json;
using UnityEngine;
public class LoginSystem : BaseSystem
@@ -103,6 +105,7 @@ namespace ScrewsMaster
private void OnLoginSuccess(LoginModel loginData)
{
Debug.Log(JsonConvert.SerializeObject(loginData));
var loginModel = GameHelper.GetLoginModel();
loginModel.cdn_url = loginData.cdn_url;
loginModel.setting = loginData.setting;
@@ -66,10 +66,10 @@ namespace ScrewsMaster
}
SetRequestContentType(loginRequest);
Debug.Log($"request url1======= {url1}");
// Debug.Log($"request url1======= {url1}");
yield return loginRequest.SendWebRequest();
Debug.Log($"requestData11111======={url1}=={requestJson}");
Debug.Log($"requestData22222====={url1}==={JsonConvert.SerializeObject(loginRequest)}");
// Debug.Log($"requestData11111======={url1}=={requestJson}");
// Debug.Log($"requestData22222====={url1}==={JsonConvert.SerializeObject(loginRequest)}");
if (loginRequest.result is not UnityWebRequest.Result.Success)
{
onCompleted?.Invoke(false, default);
@@ -85,7 +85,7 @@ namespace ScrewsMaster
receiveContent = Base64Kit.Decode(receiveContent);
}
#endif
Debug.Log(receiveContent);
// Debug.Log(receiveContent);
var response = SerializeUtil.ToObject<ResponseData>(receiveContent);
@@ -181,10 +181,10 @@ namespace ScrewsMaster
};
statusDic.Add(reqData.type, true);
Debug.Log($"PostFunnelLogin requestData1111========={reqData.type}");
// Debug.Log($"PostFunnelLogin requestData1111========={reqData.type}");
Post<RespLoginFunnelData>("event/funnelLogin", requestData, (isSuccess, data) =>
{
Debug.Log($"PostFunnelLogin responseData2222========={isSuccess} {reqData.type}");
// Debug.Log($"PostFunnelLogin responseData2222========={isSuccess} {reqData.type}");
});
}
public static void SendLogToServer(RespDebugData reqData)
@@ -273,7 +273,7 @@ namespace ScrewsMaster
androidPointObject.@event = eventname;
androidPointObject.property = eventproperty;
androidPointObject.n = integer;
Debug.Log("打点" + JsonConvert.SerializeObject(androidPointObject));
// Debug.Log("打点" + JsonConvert.SerializeObject(androidPointObject));
PostWithHeader<AndroidPointObject>("/event/incrN", androidPointObject, (isSuccess, obj) =>
{
});
+51 -8
View File
@@ -1,10 +1,3 @@
//
// H5View.m
// TestGameWeb
//
// Created by Mac on 2024/1/30.
//
#import "H5View.h"
#import "CircularProgressBar.h"
#import <WebKit/WebKit.h>
@@ -622,7 +615,51 @@
UnitySendMessage("SdkManager", "H5AutoRefresh",[[url stringByAppendingString:@"|h6"] UTF8String]);
}
//隐藏webview
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
NSURL *url = navigationAction.request.URL;
NSString *scheme = [url.scheme lowercaseString];
// ==========================================
// 【第一步】:防流氓跳转(App Store / 其他 App 唤起拦截)
// ==========================================
// 1. 过滤 App Store 的专用协议 (itms-apps, itms-services 等)
if ([scheme hasPrefix:@"itms"]) {
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
// 2. 过滤直连 App Store 的标准 https 链接 (apps.apple.com / itunes.apple.com)
if ([scheme isEqualToString:@"http"] || [scheme isEqualToString:@"https"]) {
if ([url.host containsString:@"apps.apple.com"] || [url.host containsString:@"itunes.apple.com"]) {
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
}
// else {
// // 3. 拦截其他所有非 http/https 的自定义 Scheme (例如 weixin://, tbopen:// 等流氓广告唤起链接)
// // 除非网页中需要支持特定功能(如微信支付),否则一律拦截以防止乱跳
// decisionHandler(WKNavigationActionPolicyCancel);
// return;
// }
// ==========================================
// 【第二步】:处理 target="_blank" (新标签页/新窗口打开链接的问题)
// ==========================================
// 如果是用户点击链接,且该链接不是在当前主窗口打开
if (navigationAction.navigationType == WKNavigationTypeLinkActivated && !navigationAction.targetFrame.isMainFrame) {
// 拒绝默认的新窗口跳转
decisionHandler(WKNavigationActionPolicyCancel);
// 强行在当前窗口中重新加载该链接
[webView loadRequest:navigationAction.request];
} else {
// 其余情况(正常的主页面跳转、JS 自动加载等),一律放行
decisionHandler(WKNavigationActionPolicyAllow);
}
}
//设置飞行进度条进度
-(void)setIconProgress:(float)value{
@@ -1117,6 +1154,12 @@
}
-(BOOL)GetThrough{
return dark_though;
}
@end
@@ -1,7 +1,7 @@
#import <UIKit/UIKit.h>
#import <objc/runtime.h>
#import <QuartzCore/QuartzCore.h>
#include "H5View.h"
extern UIView *UnityGetGLView(void);
@interface UIApplication (UnityTouchHook)
@@ -43,9 +43,13 @@ static Ivar g_ivarPrevLocation = NULL;
- (void)ut_sendEvent:(UIEvent *)event
{
// 1. 让系统和 WebView 先走正常响应
[self ut_sendEvent:event];
if (![[H5View shared] GetThrough]) {
return;
}
if (event.type != UIEventTypeTouches)
return;
@@ -1,40 +1,51 @@
Welcome to Twist & Turn ("we," "our," or "us"). We value your privacy and are committed to safeguarding your personal information. This Privacy Policy outlines how we collect, use, store, and share your information, as well as your rights under applicable privacy laws, including the California Consumer Privacy Act (CCPA) and the Children's Online Privacy Protection Act (COPPA).
1. Information Collection
We may collect the following types of information while you use Twist & Turn:
- Device Information: Information about your device, such as device model, operating system version, unique identifiers (e.g., IDFA, GAID), IP address, browser type, language settings, and mobile network information.
- Game Usage Data: Information about your interactions with the game, such as progress, scores, achievements, in-game items, friends, activities, login times, and play duration.
- Location Information: With your consent, we may collect location data to provide location-based services, such as leaderboards or friend recommendations.
- Payment Information: When purchasing in-game items or services, we may collect transaction details. Payment processing is handled by third-party services, and we only receive confirmation of payment.
- Social Media Information: If you log in via social media or share game experiences, we may access publicly available information from your social account.
2. Information Use
We use the collected data for the following purposes:
- Game Operation and Maintenance: Ensuring the smooth operation of the game, fixing bugs, backing up data, and providing technical support.
- Customer Support: Assisting you when you contact our customer service.
- Personalization: Tailoring content, recommendations, advertisements, and offers based on your preferences and usage.
- Marketing Communications: Sending updates, event notifications, or promotional information, which you can opt-out of anytime.
- Analytics and Improvement: Conducting data analysis to improve game features and develop new services.
3. Information Sharing
We do not sell your personal information to third parties. We may share data in these cases:
- Legal Compliance: If required by law or government authorities.
- Business Transfers: In the event of a merger, acquisition, or transfer of assets.
- Service Providers: Trusted partners for payment processing, analytics, or advertising services, bound by confidentiality agreements.
4. Data Security and Retention
We take data protection seriously:
- Retention: We retain your data only as long as necessary to fulfill the purposes outlined.
- Security Measures: We use encryption and other methods to protect your data.
- Data Transfers: When transferring data outside your jurisdiction, we comply with relevant privacy laws.
5. Your Rights Under CCPA
If you are a California resident, you have the following rights under CCPA:
- Right to Know: Request information about data collection, usage, and sharing.
- Right to Delete: Request deletion of your personal information, with some exceptions.
- Right to Opt-Out: Prevent the sale of your data.
- Right to Non-Discrimination: Exercise your rights without facing discrimination.
To exercise these rights, contact us at mtop17600@gmail.com.
6. Children's Privacy Under COPPA
If we discover a user is under 13, we will obtain parental consent before collecting data, and process data only for game-related purposes.
7. Cookies and Tracking
We use cookies and similar tools for personalization and analytics. You can manage cookies through browser settings.
8. Policy Changes
We may update this Privacy Policy to reflect changes in legal requirements or our practices. Significant changes will be communicated via email or in-app notification.
9. Contact Us
For any questions, email us at mtop17600@gmail.com.
Welcome to **Our game**! We take your privacy extremely seriously. This Privacy Policy outlines how we collect, use, store, and protect your personal data. Please read this policy thoroughly to understand how we manage your personal information.
1. Introduction
Thank you for using **Our game**! We are committed to protecting your privacy and ensuring that your data is handled appropriately, providing you with a safe and enjoyable gaming experience.
2. Information We Collect
We may gather the following types of data:
- Personal Details: Personal information you provide when creating an account or using the game, such as your name, email address, and phone number.
- Device Data: Technical specifications like device model, operating system version, and unique device identifiers (e.g., IMEI, IDFA).
- Usage Logs: Activity records, game progress, purchase history, achievements, and rankings within the game.
- Location Data: Geographical location information if you authorize us to collect it, to provide more tailored services.
- Third-Party Data: Information gathered through social media platforms or other external services, such as linked social accounts.
3. Purpose of Using Information
We collect and use your data for the following reasons:
- Provide and Enhance Services: To deliver game services, optimize user experience, fix errors, and improve features, ensuring the stability and performance of the game.
- Personalized Content: To offer customized game content and recommendations based on your interests and preferences, enhancing your gaming experience.
- Marketing and Promotion: To send game updates, promotional activities, and news, boosting user engagement.
- Data Analysis: To analyze user behavior, assess game performance, and conduct market research, continuously refining game quality.
- Legal Compliance: To meet legal requirements and protect our legitimate interests, ensuring the lawful and compliant operation of the game.
4. Information Sharing and Disclosure
We do not sell your personal information. We may share your data with third parties in the following scenarios:
- Service Providers: With third-party service providers who assist us in operating the game, such as data analytics firms, payment processors, and cloud service providers.
- Partners: With partners to offer joint services or activities, enhancing user value.
- Legal Requirements: When required by law or to protect our legitimate interests, we may disclose your data to ensure legal compliance.
5. Data Security
We implement reasonable security measures to protect your personal data from unauthorized access, disclosure, alteration, or destruction. While no internet transmission method or electronic storage method is completely secure, we continuously improve our security measures to ensure your data is as secure as possible.
6. Your Rights
You have the right to access, correct, delete your personal data, or withdraw your consent to certain data processing. You can contact us through the following methods:
- Email: maxsource2031@outlook.com
- In-Game Support: Submit requests through the in-game customer support system, and we will process your requests as soon as possible.
7. Third-Party Services
Our game may integrate third-party services, such as social media platforms and advertising networks. These third-party services may collect your data. We recommend that you review the privacy policies of these third-party services to understand how they handle your data. We are not responsible for the actions or policies of third-party services, but we strive to ensure that our partners adhere to high standards of data protection.
8. Children's Privacy
We do not intentionally collect personal data from children under the age of 13. If we discover that we have collected personal data from a child under 13, we will immediately delete that data and take necessary measures to prevent similar occurrences.
9. International Data Transfer
Your personal data may be transferred to and stored on servers located outside your country of residence. The data protection laws in these countries may differ from those in your country. By using our game, you agree to such transfers and storage, and you understand the potential legal differences.
10. Changes to the Privacy Policy
We reserve the right to update this Privacy Policy at any time. We will notify you of any changes by posting the new policy within the game. We recommend that you regularly review this Privacy Policy to stay informed about the latest terms and conditions. If we make significant changes, we may provide additional notice, such as in-game notifications or emails, to ensure you are aware of the changes.
11. Contact Us
If you have any questions or concerns about this Privacy Policy, please contact us through the following methods:
- Email: maxsource2031@outlook.com
- In-Game Support: Submit requests through the in-game customer support system, and we will respond to your inquiries as soon as possible to ensure your issues are resolved promptly.
@@ -1,34 +1,25 @@
Welcome to Twist & Turn ("the Game" or "we"). Please read this User Agreement ("Agreement") carefully before using the Game. By downloading, installing, or using the Game, you indicate that you have read and agree to be bound by this Agreement. If you do not agree with any part of this Agreement, please do not use the Game.
1. Acceptance of Terms
1.1 This Agreement constitutes a legal agreement between you and Twist & Turn, governing your use of the Game.
1.2 We may modify or update this Agreement from time to time. The updated Agreement will be communicated via in-app notifications or other appropriate means. If you continue using the Game after the Agreement has been updated, it is considered acceptance of the updated terms.
2. Rules of Use
2.1 Account Creation and Management: You may need to create an account to access certain features of the Game. You must ensure that the information provided is accurate and up-to-date.
2.2 Age Restrictions: The Game is intended for users aged 13 and above. If you are under 18, parental or guardian consent is required before using the Game.
2.3 Game Conduct Rules: You agree to comply with all applicable laws and refrain from engaging in the following behaviors while using the Game:
- Violating the legal rights of others.
- Using unauthorized third-party software or tools.
- Distributing malware or viruses.
- Cheating or disrupting the fairness of the Game.
- Posting inappropriate, offensive, or illegal content.
2.4 Intellectual Property: All content within the Game (including but not limited to images, text, music, code) is protected by copyright and other intellectual property laws. You may not copy, modify, distribute, or use it for commercial purposes without authorization.
3. Payments and Virtual Items
3.1 Virtual Items and Currency: The Game may include virtual items or currency. Virtual items are for in-game use only, have no real-world monetary value, and cannot be transferred, traded, or exchanged for actual money.
3.2 Purchases and Refunds: When purchasing virtual items, you must comply with the payment rules of the app store. All purchases are final and non-refundable unless otherwise required by law or specifically stated by us.
4. User-Generated Content
4.1 Content License: If you publish, upload, or share content (such as text, images, videos) in the Game, you grant us a worldwide, non-exclusive, perpetual, royalty-free license to use it for purposes related to promoting and improving the Game.
4.2 Content Responsibility: You are responsible for the content you publish and must ensure it does not infringe any third-party rights or violate applicable laws.
5. Privacy Protection
We value your privacy. Please refer to our [Privacy Policy] for details on how we collect, use, and protect your personal information.
6. Disclaimer of Warranties
6.1 Service Provided "As Is" and "As Available": The Game is provided on an "as is" and "as available" basis. We do not guarantee that the Game will be uninterrupted or error-free.
6.2 Limitation of Liability: To the maximum extent permitted by applicable law, we shall not be liable for any direct, indirect, incidental, or consequential damages arising from your use of the Game.
7. Termination
7.1 User Termination: You may stop using the Game and delete your account at any time.
7.2 Our Termination: We may suspend or terminate your use of the Game without prior notice if you violate the terms of this Agreement.
8. Governing Law and Dispute Resolution
8.1 Governing Law: This Agreement is governed by the laws of your jurisdiction.
8.2 Dispute Resolution: In case of any disputes arising from this Agreement, both parties should seek to resolve them amicably. If resolution cannot be reached, the dispute should be submitted to the court in your jurisdiction.
9. Contact Us
If you have any questions about this Agreement, please contact us at:
- Email: mtop17600@gmail.com
By downloading, installing, or playing (“the Game”), you agree to be bound by these Terms of Service.
1. The Service
The game is a casual puzzle game inspired by tile-matching mechanics. The Game is provided for your personal, non-commercial entertainment.
2. No Account Required
You may play the Game without creating an account or providing any personal information.
3. No In-App Purchases or Ads
The game contains no in-app purchases, no outbound links, and no third-party advertisements. The Game is a one-time download with no ongoing costs or distractions.
4. User Conduct
You agree to use the Game only for its intended purpose. You may not:
- Reverse engineer, modify, or create derivative works of the Game.
- Use the Game for any illegal or unauthorized purpose.
- Attempt to disrupt or damage the Games functionality.
5. Intellectual Property
All content in The game including but not limited to the game name, artwork, sound effects, tile designs, and code is the exclusive property of the developer. You may not copy, redistribute, or commercially exploit any part of the Game without explicit permission.
6. No Warranties
The Game is provided “as is.” We do not guarantee that it will be error-free or uninterrupted. To the fullest extent permitted by law, we disclaim all warranties, express or implied.
7. Limitation of Liability
In no event shall we be liable for any damages arising from your use or inability to use the Game, including but not limited to loss of progress, device issues, or emotional frustration.
8. Changes to These Terms
We may update these Terms from time to time. If we make material changes, we will post the revised version online. Continued use of the Game after changes take effect constitutes your acceptance.
9. Termination
We reserve the right to discontinue the Game at any time. You may stop using the Game at any time by uninstalling it.
10. Contact Us
For any questions regarding these Terms, please contact:
bingotornad0game@gmail.com
+2 -2
View File
@@ -58,8 +58,8 @@ namespace SGame
if (GameHelper.IsGiftSwitch())
{
var rewardRate = GameHelper.GetCommonModel().rewardrate;
var range = Random.Range(0, 101);
_isCashBox = range <= rewardRate;
var range = Random.Range(0, 100);
_isCashBox = range < rewardRate;
cashImg.gameObject.SetActive(_isCashBox);
}
@@ -126,7 +126,7 @@ namespace BingoBrain
if (!json.StartsWith("{"))
{
json = Encoding.UTF8.GetString(Base64Kit_sdk.Decrypt(Encoding.UTF8.GetBytes(json),
json = Encoding.UTF8.GetString(Base64Kit_sdk.DecryptJson(Encoding.UTF8.GetBytes(json),
NetworkManager.packName));
}
Debug.Log("转化后的json" + json);
+4 -3
View File
@@ -32,8 +32,8 @@ public class LoginSystem_sdk
// device_id ="E742FE8B-C32E-56A7-8F8A-6B3BC0F3169",
pack_name = NetworkManager.packName,
app_version = Application.version,
// channel = BingoBea.Instance.attribution,
// sim = WebviewManager.haveSimCard
secret = "FJC3WBAF2", // 这里的值要和你们项目约定的 Secret 保持一致
};
Debug.Log(JsonConvert.SerializeObject(requestLoginData));
Debug.Log(SystemInfo.deviceUniqueIdentifier);
@@ -88,7 +88,7 @@ public class LoginSystem_sdk
// {
// RequestHeart();
// GameHelper.PostFunnelLogin("loginRecv", true);
// GameHelper.PostFunnelLogin("loginRecv", true);
ConfigSystem_sdk.Instance.OnRequestGetConfig();
// if (GameHelper.IsGiftSwitch())
// {
@@ -170,4 +170,5 @@ public class RequestLoginData_sdk
public string app_version;
public string channel;
public bool sim;
public string secret;
}
+85 -125
View File
@@ -12,6 +12,7 @@ using System.Linq;
using System.Security.Cryptography;
using FutureCore;
using ScrewsMaster;
using System.IO;
@@ -35,16 +36,16 @@ public class NetworkKit_sdk
PlayerPrefs.SetString(JarvisToken_SDK, token);
}
public const string DomainDebugUrl = @"https://sdkapi.jsoncompare.online/";
public static string DomainRelease = "zoomatchsolo.top";
public static string DomainRelease = "web.zoomatchsolo.top";
// https://web.zoomatchsolo.top
// 改为只读属性,实时获取(等调用时 DomainRelease 早就初始化好了)
public static string DomainReleaseUrl => $"https://{DomainRelease}/sdkapi/";
public static string DomainReleaseUrl => $"https://{DomainRelease}/api/";
// 改为只读属性,实时获取
#if JarvisRelease
public static string CrazyUrl => DomainReleaseUrl;
#else
public static string CrazyUrl => DomainDebugUrl;
public static string CrazyUrl => DomainDebugUrl;
#endif
@@ -54,10 +55,10 @@ public class NetworkKit_sdk
string requestJson = JsonConvert.SerializeObject(requestData);
string url2 = url;
#if JarvisRelease
url2 = Base64Kit_sdk.Encode(url);
requestJson = Base64Kit_sdk.Encode(requestJson);
#endif
// #if JarvisRelease
// url2 = Base64Kit_sdk.Encode(url);
// requestJson = Base64Kit_sdk.Encode(requestJson);
// #endif
byte[] bytes = Encoding.UTF8.GetBytes(requestJson);
string url1 = CrazyUrl + url2;
Debug.Log($"Url: {url1}");
@@ -79,22 +80,24 @@ public class NetworkKit_sdk
yield return loginRequest.SendWebRequest();
if (loginRequest.result is not UnityWebRequest.Result.Success)
{
string receiveContent = loginRequest.downloadHandler.text;
onCompleted?.Invoke(false, default);
Debug.Log(url + "cuowude--------" + JsonConvert.SerializeObject(loginRequest));
Debug.Log(url + "cuowude--------" + receiveContent);
}
else
{
string receiveContent = loginRequest.downloadHandler.text;
Debug.Log(url + "--------" + receiveContent);
#if JarvisRelease
if (!receiveContent.IsNullOrWhiteSpace())
{
receiveContent = receiveContent.Substring(0, receiveContent.Length - 1);
receiveContent = receiveContent.Substring(1);
receiveContent = Base64Kit_sdk.Decode(receiveContent);
receiveContent = Base64Kit_sdk.Decrypt(receiveContent, DomainRelease);
}
#endif
// Debug.Log(url + "--------" + loginRequest.downloadHandler.text);
Debug.Log(url + "--------" + receiveContent);
var response = JsonConvert.DeserializeObject<ResponseData_sdk>(receiveContent);
if (response?.code == 0)
@@ -347,72 +350,82 @@ public class NetworkKit_sdk
}
public class Base64Kit_sdk
{
public static string Base64Encode(string source)
public static string Decrypt(string encryptedBase64, string secret)
{
byte[] bytes = Encoding.UTF8.GetBytes(source);
string encode = Convert.ToBase64String(bytes);
return encode;
}
public static string Encode(string data, bool is_apple_pay = false)
{
var key = NetworkKit_sdk.DomainRelease;
//if (is_apple_pay) key = "com.leisuregames.crazygourmet";
var keyMD5 = MD5Kit.MD5String1(key);
//UnityEngine.Debug.Log("Base64 Encode Key: " + keyMD5);
var str = Base64EncodeUtil.Base64Encode(data + keyMD5);
var bytes = Encoding.UTF8.GetBytes(str);
for (int i = 0, j = bytes.Length - 1; i < j; i += 1, j -= 1)
try
{
if (i % 2 == 0)
if (string.IsNullOrEmpty(encryptedBase64)) return string.Empty;
// 1. 容错处理:如果密文首尾有双引号,先去掉
encryptedBase64 = encryptedBase64.Trim();
if (encryptedBase64.StartsWith("\"") && encryptedBase64.EndsWith("\""))
{
(bytes[i], bytes[j]) = (bytes[j], bytes[i]);
encryptedBase64 = encryptedBase64.Substring(1, encryptedBase64.Length - 2);
}
// 2. 将 URL 安全的 Base64 替换为标准 Base64 字符
string standardBase64 = encryptedBase64.Replace('-', '+').Replace('_', '/');
int mod4 = standardBase64.Length % 4;
if (mod4 > 0)
{
standardBase64 += new string('=', 4 - mod4);
}
// 3. 将 Base64 转换为字节数组
byte[] cipherData = Convert.FromBase64String(standardBase64);
if (cipherData.Length < 16)
{
throw new Exception("密文长度过短,不满足 AES 块大小要求");
}
// 4. 【生成 Key】将 Secret 进行 SHA256 哈希,得到 32 字节的 AES Key
byte[] keyBytes;
using (SHA256 sha256 = SHA256.Create())
{
keyBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(secret));
}
// 5. 【提取 IV】密文的前 16 字节是随机生成的初始化向量 (IV)
byte[] iv = new byte[16];
Array.Copy(cipherData, 0, iv, 0, 16);
// 6. 【提取实际密文】16 字节之后的数据才是真正的加密数据
int encryptedDataLength = cipherData.Length - 16;
byte[] encryptedData = new byte[encryptedDataLength];
Array.Copy(cipherData, 16, encryptedData, 0, encryptedDataLength);
// 7. 进行 AES-256-CBC 解密
using (Aes aes = Aes.Create())
{
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.PKCS7; // 对应 Go 的 PKCS7Padding
aes.Key = keyBytes;
aes.IV = iv;
using (ICryptoTransform decryptor = aes.CreateDecryptor())
{
using (MemoryStream ms = new MemoryStream(encryptedData))
{
using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs, Encoding.UTF8))
{
return sr.ReadToEnd(); // 解密出来的明文 JSON 字符串
}
}
}
}
}
}
var loginData = Encoding.UTF8.GetString(bytes);
return loginData;
}
public static string Decode(string data)
{
var bytes = Encoding.UTF8.GetBytes(data);
for (int i = 0, j = bytes.Length - 1; i < j; i += 1, j -= 1)
catch (Exception ex)
{
if (i % 2 == 0)
{
(bytes[i], bytes[j]) = (bytes[j], bytes[i]);
}
UnityEngine.Debug.LogError("解密失败: " + ex.Message);
return string.Empty;
}
var str = Encoding.UTF8.GetString(bytes);
var str1 = Base64EncodeUtil.Base64Decode(str);
var key = NetworkKit_sdk.DomainRelease;
var keyMD5 = MD5Kit.MD5String1(key);
// Debug.Log("Base64 Decode Key: " + keyMD5);
// Debug.Log("Base64 Decode str1: " + str1);
var result = str1.Replace(keyMD5, string.Empty);
return result;
}
public static string Decode(string data, string key)
{
var bytes = Encoding.UTF8.GetBytes(data);
for (int i = 0, j = bytes.Length - 1; i < j; i += 1, j -= 1)
{
if (i % 2 == 0)
{
(bytes[i], bytes[j]) = (bytes[j], bytes[i]);
}
}
var str = Encoding.UTF8.GetString(bytes);
var str1 = Base64EncodeUtil.Base64Decode(str);
// var key = NetworkManager.DomainRelease;
var keyMD5 = MD5Kit.MD5String1(key);
var result = str1.Replace(keyMD5, string.Empty);
return result;
}
private static byte[] GenerateKey(string secret)
{
@@ -420,30 +433,7 @@ public class Base64Kit_sdk
return sha256.ComputeHash(Encoding.UTF8.GetBytes(secret));
}
internal static byte[] Encrypt(byte[] plainText, string secret)
{
if (plainText == null || plainText.Length == 0) return plainText;
var key = GenerateKey(secret);
using var aes = Aes.Create();
aes.Key = key;
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.None;
aes.GenerateIV();
var iv = aes.IV;
var blockSize = aes.BlockSize / 8;
var padding = blockSize - plainText.Length % blockSize;
var padded = new byte[plainText.Length + padding];
Buffer.BlockCopy(plainText, 0, padded, 0, plainText.Length);
for (var i = plainText.Length; i < padded.Length; i++) padded[i] = (byte)padding;
using var encryptor = aes.CreateEncryptor();
var encrypted = encryptor.TransformFinalBlock(padded, 0, padded.Length);
var result = new byte[iv.Length + encrypted.Length];
Buffer.BlockCopy(iv, 0, result, 0, iv.Length);
Buffer.BlockCopy(encrypted, 0, result, iv.Length, encrypted.Length);
return ToUrlSafeBase64(result);
}
internal static byte[] Decrypt(byte[] encryptedBase64, string secret)
internal static byte[] DecryptJson(byte[] encryptedBase64, string secret)
{
if (encryptedBase64 == null || encryptedBase64.Length == 0) return encryptedBase64;
var key = GenerateKey(secret);
@@ -464,36 +454,6 @@ public class Base64Kit_sdk
return result;
}
// 用双引号包裹字节数组
private static byte[] QuoteBytes(byte[] input)
{
var result = new byte[input.Length + 2];
result[0] = (byte)'"';
Buffer.BlockCopy(input, 0, result, 1, input.Length);
result[result.Length - 1] = (byte)'"';
return result;
}
// 去除双引号(如果存在)
internal static byte[] UnquoteBytes(byte[] input)
{
if (input.Length >= 2 && input[0] == (byte)'"' && input[input.Length - 1] == (byte)'"')
{
var result = new byte[input.Length - 2];
Buffer.BlockCopy(input, 1, result, 0, result.Length);
return result;
}
return input;
}
private static byte[] ToUrlSafeBase64(byte[] data)
{
var base64 = Convert.ToBase64String(data);
var urlSafe = base64.Replace('+', '-').Replace('/', '_');
return Encoding.UTF8.GetBytes(urlSafe);
}
private static byte[] FromUrlSafeBase64(byte[] urlSafe)
{
var base64 = Encoding.UTF8.GetString(urlSafe).Replace('-', '+').Replace('_', '/');
+27 -10
View File
@@ -126,17 +126,19 @@ public class ShowScrews : MonoBehaviour, ICanvasRaycastFilter
addHole.onClick.AddListener(OnAddHoleBtnClick);
mergeBox.onClick.AddListener(OnMergeBoxBtnClick);
clearHole.onClick.AddListener(OnClearHoleBtnClick);
GameDispatcher.Instance.AddListener(GameMsg.use_prop, UseProp);
errorBtn.gameObject.SetActive(false);
#if !JarvisRelease
errorBtn.gameObject.SetActive(true);
if (errorBtn == null) return;
// #if !JarvisRelease
// errorBtn.gameObject.SetActive(true);
// if (errorBtn == null) return;
errorBtn.onClick.AddListener(() =>
{
GameHelper.SendErrorToServer("TestError 001", LogType.Error.ToString());
});
#endif
// errorBtn.onClick.AddListener(() =>
// {
// GameHelper.SendErrorToServer("TestError 001", LogType.Error.ToString());
// });
// #endif
}
@@ -1759,9 +1761,24 @@ public class ShowScrews : MonoBehaviour, ICanvasRaycastFilter
}
}
public void UseProp()
public void UseProp(object a)
{
int type = (int)a;
if (type == 0)
{
_requestStageData.item_costs[0]++;
AddHoleLogic();
}
else if (type == 1)
{
_requestStageData.item_costs[1]++;
MergeBoxLogic();
}
else if (type == 2)
{
_requestStageData.item_costs[2]++;
ClearHolesLogic(); //清除孔洞到看不见的缓冲区
}
}
private void AddHoleLogic()
-212
View File
@@ -1,212 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{CCAB24A6-6FF2-C7CF-A23C-3333B03C1031}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spine-unity", "spine-unity.csproj", "{E6CC61BE-6A03-8D46-39A1-45958C3ADCE2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Notifications.Tests", "Unity.Notifications.Tests.csproj", "{8F7983D2-0AEE-EEF8-16FD-5E606E5E0AAE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BigoAds", "BigoAds.csproj", "{E4E50BED-B167-A1FD-EE29-FDEA2AC44DB5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OPS.Obfuscator", "OPS.Obfuscator.csproj", "{2FF4C4EE-32DC-8C37-D9F9-308E808D1385}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Advertisement.IosSupport.Editor", "Unity.Advertisement.IosSupport.Editor.csproj", "{9C5344AE-E14C-BA05-E829-E263036CA93E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaxSdk.Scripts", "MaxSdk.Scripts.csproj", "{C0910C7B-08B1-0ED8-23B8-E8EEDA7991F5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppsFlyer", "AppsFlyer.csproj", "{823BE132-B742-B98C-CA91-E6A2FA72763C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spine-unity-editor", "spine-unity-editor.csproj", "{9DBAB8D1-6262-4B69-7F60-2B80575E7EBE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Advertisement.IosSupport", "Unity.Advertisement.IosSupport.csproj", "{8565A774-6C47-2850-7391-2A687BD3E5F7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KwaiAds", "KwaiAds.csproj", "{DBB3AF48-E1D8-28DF-DF54-B9B36EE16A69}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Notifications.Android", "Unity.Notifications.Android.csproj", "{9FFEC6A0-056A-B97C-FD56-8398ABE095A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DOTweenPro.EditorScripts", "DOTweenPro.EditorScripts.csproj", "{B98B084D-9F92-C1B7-61DD-63F23FCB2670}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{0E0684EC-DADC-6671-B71F-77955DA315F3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDKConfig", "SDKConfig.csproj", "{1279406F-8E59-39C3-3AAC-FDF4168E8797}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleMobileAds.Editor", "GoogleMobileAds.Editor.csproj", "{BF9AAFE0-93FB-B2F8-B146-3679BCB5B1F0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DOTween.Modules", "DOTween.Modules.csproj", "{9E4D6757-63B1-6BC2-B279-BDA16351BF08}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Notifications.iOS", "Unity.Notifications.iOS.csproj", "{FD14F670-BF58-C801-F23C-A22D536A0E46}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DOTweenPro.Scripts", "DOTweenPro.Scripts.csproj", "{B7603A93-AA88-1BF4-560B-052975006E30}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VosacoSDK", "VosacoSDK.csproj", "{3FCA76B3-71BA-9D13-AB22-13E720201F79}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaxSdk.Scripts.IntegrationManager.Editor", "MaxSdk.Scripts.IntegrationManager.Editor.csproj", "{3DB78DCD-8BC0-0E26-8DD2-F3148A511981}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Notifications", "Unity.Notifications.csproj", "{7C62C3B4-DFF6-7F93-926B-2FCB8938D80D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Notifications.Unified", "Unity.Notifications.Unified.csproj", "{C02F481A-C9AC-E205-F11F-2D455DC55C80}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppsFlyer.Editor", "AppsFlyer.Editor.csproj", "{80BC7B6D-389C-523A-D585-DF16CBDCCF65}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Android.Notifications.Tests", "Unity.Android.Notifications.Tests.csproj", "{710807AE-33D8-CD1F-563E-531EDD7A7769}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Advertisement.IosSupport.Editor.Tests", "Unity.Advertisement.IosSupport.Editor.Tests.csproj", "{17178E51-0DA7-2570-93FF-F2B269552B6C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebView", "WebView.csproj", "{31CCF576-260A-94DD-6353-60BE7958EE5F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor-firstpass", "Assembly-CSharp-Editor-firstpass.csproj", "{33ECA254-7128-6F8A-944E-414503E66C75}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirebaseMessagingActivityGenerator", "FirebaseMessagingActivityGenerator.csproj", "{36572005-0C6D-B79F-8D91-CD6B4D208D85}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests.csproj", "{7529929D-F6EE-8F57-E0BF-6EA8528F1D1A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Notifications.Unified.Tests", "Unity.Notifications.Unified.Tests.csproj", "{F109F274-476E-BB58-E20B-98C003D1D3A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Advertisement.IosSupport.Tests", "Unity.Advertisement.IosSupport.Tests.csproj", "{A944EF73-AECD-D8D2-C40B-0ADC4BF48B4A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.iOS.Notifications.Tests", "Unity.iOS.Notifications.Tests.csproj", "{BA27FA21-C115-5EFE-4E11-AE0CE613BBB2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CCAB24A6-6FF2-C7CF-A23C-3333B03C1031}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CCAB24A6-6FF2-C7CF-A23C-3333B03C1031}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CCAB24A6-6FF2-C7CF-A23C-3333B03C1031}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CCAB24A6-6FF2-C7CF-A23C-3333B03C1031}.Release|Any CPU.Build.0 = Release|Any CPU
{E6CC61BE-6A03-8D46-39A1-45958C3ADCE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E6CC61BE-6A03-8D46-39A1-45958C3ADCE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E6CC61BE-6A03-8D46-39A1-45958C3ADCE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E6CC61BE-6A03-8D46-39A1-45958C3ADCE2}.Release|Any CPU.Build.0 = Release|Any CPU
{8F7983D2-0AEE-EEF8-16FD-5E606E5E0AAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F7983D2-0AEE-EEF8-16FD-5E606E5E0AAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F7983D2-0AEE-EEF8-16FD-5E606E5E0AAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F7983D2-0AEE-EEF8-16FD-5E606E5E0AAE}.Release|Any CPU.Build.0 = Release|Any CPU
{E4E50BED-B167-A1FD-EE29-FDEA2AC44DB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E4E50BED-B167-A1FD-EE29-FDEA2AC44DB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E4E50BED-B167-A1FD-EE29-FDEA2AC44DB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E4E50BED-B167-A1FD-EE29-FDEA2AC44DB5}.Release|Any CPU.Build.0 = Release|Any CPU
{2FF4C4EE-32DC-8C37-D9F9-308E808D1385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FF4C4EE-32DC-8C37-D9F9-308E808D1385}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FF4C4EE-32DC-8C37-D9F9-308E808D1385}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2FF4C4EE-32DC-8C37-D9F9-308E808D1385}.Release|Any CPU.Build.0 = Release|Any CPU
{9C5344AE-E14C-BA05-E829-E263036CA93E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C5344AE-E14C-BA05-E829-E263036CA93E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C5344AE-E14C-BA05-E829-E263036CA93E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C5344AE-E14C-BA05-E829-E263036CA93E}.Release|Any CPU.Build.0 = Release|Any CPU
{C0910C7B-08B1-0ED8-23B8-E8EEDA7991F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C0910C7B-08B1-0ED8-23B8-E8EEDA7991F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C0910C7B-08B1-0ED8-23B8-E8EEDA7991F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C0910C7B-08B1-0ED8-23B8-E8EEDA7991F5}.Release|Any CPU.Build.0 = Release|Any CPU
{823BE132-B742-B98C-CA91-E6A2FA72763C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{823BE132-B742-B98C-CA91-E6A2FA72763C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{823BE132-B742-B98C-CA91-E6A2FA72763C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{823BE132-B742-B98C-CA91-E6A2FA72763C}.Release|Any CPU.Build.0 = Release|Any CPU
{9DBAB8D1-6262-4B69-7F60-2B80575E7EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DBAB8D1-6262-4B69-7F60-2B80575E7EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DBAB8D1-6262-4B69-7F60-2B80575E7EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DBAB8D1-6262-4B69-7F60-2B80575E7EBE}.Release|Any CPU.Build.0 = Release|Any CPU
{8565A774-6C47-2850-7391-2A687BD3E5F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8565A774-6C47-2850-7391-2A687BD3E5F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8565A774-6C47-2850-7391-2A687BD3E5F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8565A774-6C47-2850-7391-2A687BD3E5F7}.Release|Any CPU.Build.0 = Release|Any CPU
{DBB3AF48-E1D8-28DF-DF54-B9B36EE16A69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DBB3AF48-E1D8-28DF-DF54-B9B36EE16A69}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DBB3AF48-E1D8-28DF-DF54-B9B36EE16A69}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DBB3AF48-E1D8-28DF-DF54-B9B36EE16A69}.Release|Any CPU.Build.0 = Release|Any CPU
{9FFEC6A0-056A-B97C-FD56-8398ABE095A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FFEC6A0-056A-B97C-FD56-8398ABE095A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9FFEC6A0-056A-B97C-FD56-8398ABE095A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9FFEC6A0-056A-B97C-FD56-8398ABE095A7}.Release|Any CPU.Build.0 = Release|Any CPU
{B98B084D-9F92-C1B7-61DD-63F23FCB2670}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B98B084D-9F92-C1B7-61DD-63F23FCB2670}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B98B084D-9F92-C1B7-61DD-63F23FCB2670}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B98B084D-9F92-C1B7-61DD-63F23FCB2670}.Release|Any CPU.Build.0 = Release|Any CPU
{0E0684EC-DADC-6671-B71F-77955DA315F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0E0684EC-DADC-6671-B71F-77955DA315F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0E0684EC-DADC-6671-B71F-77955DA315F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0E0684EC-DADC-6671-B71F-77955DA315F3}.Release|Any CPU.Build.0 = Release|Any CPU
{1279406F-8E59-39C3-3AAC-FDF4168E8797}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1279406F-8E59-39C3-3AAC-FDF4168E8797}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1279406F-8E59-39C3-3AAC-FDF4168E8797}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1279406F-8E59-39C3-3AAC-FDF4168E8797}.Release|Any CPU.Build.0 = Release|Any CPU
{BF9AAFE0-93FB-B2F8-B146-3679BCB5B1F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF9AAFE0-93FB-B2F8-B146-3679BCB5B1F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF9AAFE0-93FB-B2F8-B146-3679BCB5B1F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF9AAFE0-93FB-B2F8-B146-3679BCB5B1F0}.Release|Any CPU.Build.0 = Release|Any CPU
{9E4D6757-63B1-6BC2-B279-BDA16351BF08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9E4D6757-63B1-6BC2-B279-BDA16351BF08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9E4D6757-63B1-6BC2-B279-BDA16351BF08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9E4D6757-63B1-6BC2-B279-BDA16351BF08}.Release|Any CPU.Build.0 = Release|Any CPU
{FD14F670-BF58-C801-F23C-A22D536A0E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD14F670-BF58-C801-F23C-A22D536A0E46}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD14F670-BF58-C801-F23C-A22D536A0E46}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD14F670-BF58-C801-F23C-A22D536A0E46}.Release|Any CPU.Build.0 = Release|Any CPU
{B7603A93-AA88-1BF4-560B-052975006E30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B7603A93-AA88-1BF4-560B-052975006E30}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B7603A93-AA88-1BF4-560B-052975006E30}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B7603A93-AA88-1BF4-560B-052975006E30}.Release|Any CPU.Build.0 = Release|Any CPU
{3FCA76B3-71BA-9D13-AB22-13E720201F79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3FCA76B3-71BA-9D13-AB22-13E720201F79}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3FCA76B3-71BA-9D13-AB22-13E720201F79}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3FCA76B3-71BA-9D13-AB22-13E720201F79}.Release|Any CPU.Build.0 = Release|Any CPU
{3DB78DCD-8BC0-0E26-8DD2-F3148A511981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DB78DCD-8BC0-0E26-8DD2-F3148A511981}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DB78DCD-8BC0-0E26-8DD2-F3148A511981}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DB78DCD-8BC0-0E26-8DD2-F3148A511981}.Release|Any CPU.Build.0 = Release|Any CPU
{7C62C3B4-DFF6-7F93-926B-2FCB8938D80D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C62C3B4-DFF6-7F93-926B-2FCB8938D80D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C62C3B4-DFF6-7F93-926B-2FCB8938D80D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C62C3B4-DFF6-7F93-926B-2FCB8938D80D}.Release|Any CPU.Build.0 = Release|Any CPU
{C02F481A-C9AC-E205-F11F-2D455DC55C80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C02F481A-C9AC-E205-F11F-2D455DC55C80}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C02F481A-C9AC-E205-F11F-2D455DC55C80}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C02F481A-C9AC-E205-F11F-2D455DC55C80}.Release|Any CPU.Build.0 = Release|Any CPU
{80BC7B6D-389C-523A-D585-DF16CBDCCF65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80BC7B6D-389C-523A-D585-DF16CBDCCF65}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80BC7B6D-389C-523A-D585-DF16CBDCCF65}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80BC7B6D-389C-523A-D585-DF16CBDCCF65}.Release|Any CPU.Build.0 = Release|Any CPU
{710807AE-33D8-CD1F-563E-531EDD7A7769}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{710807AE-33D8-CD1F-563E-531EDD7A7769}.Debug|Any CPU.Build.0 = Debug|Any CPU
{710807AE-33D8-CD1F-563E-531EDD7A7769}.Release|Any CPU.ActiveCfg = Release|Any CPU
{710807AE-33D8-CD1F-563E-531EDD7A7769}.Release|Any CPU.Build.0 = Release|Any CPU
{17178E51-0DA7-2570-93FF-F2B269552B6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17178E51-0DA7-2570-93FF-F2B269552B6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17178E51-0DA7-2570-93FF-F2B269552B6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17178E51-0DA7-2570-93FF-F2B269552B6C}.Release|Any CPU.Build.0 = Release|Any CPU
{31CCF576-260A-94DD-6353-60BE7958EE5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{31CCF576-260A-94DD-6353-60BE7958EE5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{31CCF576-260A-94DD-6353-60BE7958EE5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{31CCF576-260A-94DD-6353-60BE7958EE5F}.Release|Any CPU.Build.0 = Release|Any CPU
{33ECA254-7128-6F8A-944E-414503E66C75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33ECA254-7128-6F8A-944E-414503E66C75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33ECA254-7128-6F8A-944E-414503E66C75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{33ECA254-7128-6F8A-944E-414503E66C75}.Release|Any CPU.Build.0 = Release|Any CPU
{36572005-0C6D-B79F-8D91-CD6B4D208D85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{36572005-0C6D-B79F-8D91-CD6B4D208D85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36572005-0C6D-B79F-8D91-CD6B4D208D85}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36572005-0C6D-B79F-8D91-CD6B4D208D85}.Release|Any CPU.Build.0 = Release|Any CPU
{7529929D-F6EE-8F57-E0BF-6EA8528F1D1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7529929D-F6EE-8F57-E0BF-6EA8528F1D1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7529929D-F6EE-8F57-E0BF-6EA8528F1D1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7529929D-F6EE-8F57-E0BF-6EA8528F1D1A}.Release|Any CPU.Build.0 = Release|Any CPU
{F109F274-476E-BB58-E20B-98C003D1D3A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F109F274-476E-BB58-E20B-98C003D1D3A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F109F274-476E-BB58-E20B-98C003D1D3A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F109F274-476E-BB58-E20B-98C003D1D3A3}.Release|Any CPU.Build.0 = Release|Any CPU
{A944EF73-AECD-D8D2-C40B-0ADC4BF48B4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A944EF73-AECD-D8D2-C40B-0ADC4BF48B4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A944EF73-AECD-D8D2-C40B-0ADC4BF48B4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A944EF73-AECD-D8D2-C40B-0ADC4BF48B4A}.Release|Any CPU.Build.0 = Release|Any CPU
{BA27FA21-C115-5EFE-4E11-AE0CE613BBB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA27FA21-C115-5EFE-4E11-AE0CE613BBB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA27FA21-C115-5EFE-4E11-AE0CE613BBB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA27FA21-C115-5EFE-4E11-AE0CE613BBB2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+1 -1
View File
@@ -770,7 +770,7 @@ PlayerSettings:
webGLPowerPreference: 2
scriptingDefineSymbols:
Android: JarvisRelease1
iPhone: JarvisRelease1
iPhone: JarvisRelease
additionalCompilerArguments: {}
platformArchitecture: {}
scriptingBackend:
+22 -22
View File
@@ -19,7 +19,7 @@ MonoBehaviour:
width: 1920
height: 989
m_ShowMode: 4
m_Title: Inspector
m_Title: Hierarchy
m_RootView: {fileID: 3}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
@@ -146,7 +146,7 @@ MonoBehaviour:
m_MinSize: {x: 500, y: 50}
m_MaxSize: {x: 40480, y: 8096}
vertical: 0
controlID: 144
controlID: 148
draggingID: 0
--- !u!114 &7
MonoBehaviour:
@@ -173,7 +173,7 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 50}
m_MaxSize: {x: 24288, y: 8096}
vertical: 0
controlID: 17
controlID: 62
draggingID: 0
--- !u!114 &8
MonoBehaviour:
@@ -273,8 +273,8 @@ MonoBehaviour:
y: 0
width: 308
height: 939
m_MinSize: {x: 277, y: 71}
m_MaxSize: {x: 4002, y: 4021}
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 16}
m_Panes:
- {fileID: 16}
@@ -353,7 +353,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: c0faffff
m_ExpandedIDs: e878f5ffec78f5fffc78f5ff0879f5ff4aacf5ff4eacf5ff5eacf5ff6aacf5ff16dff5ff1adff5ff2adff5ff36dff5ff26fbfffff4ffffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -746,9 +746,9 @@ MonoBehaviour:
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 5.756234, y: -51.764393, z: 25.001}
m_Target: {x: -4.525265, y: 1.0310006, z: 25.044537}
speed: 2
m_Value: {x: 5.756234, y: -51.764393, z: 25.001}
m_Value: {x: -4.525265, y: 1.0310006, z: 25.044537}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@@ -798,9 +798,9 @@ MonoBehaviour:
speed: 2
m_Value: {x: 0, y: 0, z: 0, w: 1}
m_Size:
m_Target: 31.594297
m_Target: 27.240633
speed: 2
m_Value: 31.594297
m_Value: 27.240633
m_Ortho:
m_Target: 1
speed: 2
@@ -870,7 +870,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets
- Assets/Scripts/Roy/newweb
m_Globs: []
m_OriginalText:
m_ImportLogFlags: 0
@@ -878,16 +878,16 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 16
m_LastFolders:
- Assets
- Assets/Scripts/Roy/newweb
m_LastFoldersGridSize: 16
m_LastProjectPath: D:\git_test\BingoGrassland_unity_a
m_LastProjectPath: D:\git_test\MergeGangRush_unity_IOS
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: 267f0000
m_LastClickedID: 32550
m_ExpandedIDs: 00000000267f0000287f00002a7f00002c7f00002e7f0000307f0000327f0000347f0000367f0000387f00003a7f00003c7f00003e7f0000407f0000427f0000447f0000467f0000487f000000ca9a3bffffff7f
m_SelectedIDs: 7c7f0000
m_LastClickedID: 32636
m_ExpandedIDs: 00000000ee750000f0750000f2750000f4750000f6750000f8750000fa750000fc750000fe750000007600000276000006760000087600000a7600000c7600000e76000010760000727f000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -915,7 +915,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000267f0000287f00002a7f00002c7f00002e7f0000307f0000327f0000347f0000367f0000387f00003a7f00003c7f00003e7f0000407f0000427f0000447f0000467f0000487f0000
m_ExpandedIDs: 00000000ee750000f0750000f2750000f4750000f6750000f8750000fa750000fc750000fe75000000760000027600000476000006760000087600000a7600000c7600000e76000010760000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -942,22 +942,22 @@ MonoBehaviour:
m_ListAreaState:
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 0
m_HadKeyboardFocusLastEvent: 1
m_ExpandedInstanceIDs: c6230000486800005662000072770000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_Name: CipherKit
m_OriginalName: CipherKit
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_UserData: 67584
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_OriginalEventType: 0
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 10}
m_CreateAssetUtility: