21 Commits

Author SHA1 Message Date
fbabd442c0 Merge branch 'main' into dev_rustore
replace tuyoosdk, implement set DNS IPs
2026-06-04 11:56:52 +08:00
c0509da0fc fix: correct Java types and remove unused import in SDKManager
- Replace Kotlin-style bool/string with Java boolean/String
- Remove unused kotlinx.serialization.json.Json import

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 22:02:36 +08:00
c9fe482c8c update tuyoosdk, set DNS IPs 2026-06-03 15:57:50 +08:00
92d04aba61 sync from ty 2026-06-03 14:54:56 +08:00
c105818f00 update:更新BridgeFunc 的修改 2026-04-21 21:51:20 +08:00
6e7bd262de 更新BridgeFunc 2026-04-03 20:56:05 +08:00
7d59d4abc4 update:更新脚本 2026-04-03 19:00:04 +08:00
8082433feb update:合并存档文件 2026-04-03 18:30:42 +08:00
6866b7fca9 enhance ChangeLinkAccount functionality
- Added LoginTypeToBindType function to map login types to binding types.
- Updated ChangeLinkAccount method to handle account linking and unbinding with appropriate error handling.
- Ensured proper messaging for success and failure cases during account changes.
- Cleaned temporary SNS information after account change attempts.
2026-03-30 22:11:16 +08:00
9f5151c54c [U] sync with ft 2026-03-27 12:29:31 +08:00
62046f4bdc update:合并代码 2026-02-10 19:30:48 +08:00
a6db6d438c update:更新Rustore的Review 2026-02-02 15:23:24 +08:00
f233be2646 update:更新skuDetail 2026-01-30 20:58:54 +08:00
4636ddc74e update:rustore 支付 2026-01-30 20:37:19 +08:00
39a3505ce9 update:回到正式服 2026-01-30 20:27:34 +08:00
5410f88c6c update:更新Tysdk 2026-01-30 20:13:46 +08:00
b3869d3488 update:当前支付成功 2026-01-29 18:02:40 +08:00
9f1379c465 update:支付调整 2026-01-29 10:22:25 +08:00
333d8fa6f7 update:登陆检测链接更新 2026-01-28 16:40:53 +08:00
29bac5b580 update:成功vk登陆 2026-01-28 16:12:19 +08:00
13b931eb8e update:更新继承aar 和 集成 2026-01-27 20:04:02 +08:00
22 changed files with 2329 additions and 545 deletions

View File

@@ -6,7 +6,9 @@
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application android:extractNativeLibs="true" android:name="com.unity3d.player.TYApp" android:usesCleartextTraffic="true"> <application android:extractNativeLibs="true" android:name="com.unity3d.player.TYApp"
tools:replace="android:usesCleartextTraffic"
android:usesCleartextTraffic="true">
<activity android:name="com.unity3d.player.TYUnityActivity" <activity android:name="com.unity3d.player.TYUnityActivity"
android:theme="@style/UnityThemeSelector"> android:theme="@style/UnityThemeSelector">
<intent-filter> <intent-filter>

View File

@@ -7,23 +7,94 @@ import com.tuyoo.gamesdk.api.SDKAPI;
import com.tuyoo.gamesdk.api.SDKAPIConstant; import com.tuyoo.gamesdk.api.SDKAPIConstant;
import com.tuyoo.gamesdk.api.SDKCallBack; import com.tuyoo.gamesdk.api.SDKCallBack;
import com.tuyoo.gamesdk.api.SDKWrapper; import com.tuyoo.gamesdk.api.SDKWrapper;
import com.tuyoo.gamesdk.login.model.SnsInfo;
import org.json.JSONException;
import org.json.JSONObject;
public class SnsTest { public class SnsTest {
static final String TAG = "SNSTEST"; static final String TAG = "SNSTEST";
static final String GOName = "SDKTest";
public static void Bind(String type, String guserId) static SnsInfo tmpSnsInfo = null;
public static void Bind(String type, String userId)
{ {
SDKAPI.getIns().getSnsInfo(type, (snscode, snsInfo, snsmsg) ->{ SDKAPI.getIns().getSnsInfo(type, (snscode, snsInfo, snsmsg) ->{
if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo !=null) if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo != null)
{ {
SDKAPI.getIns().bindBySnsId(snsInfo, guserId, (bindcode, bindmsg)->{ SDKAPI.getIns().bindBySnsId(snsInfo, userId, (bindcode, bindmsg)->{
if(bindcode == SDKCallBack.CODE_SUCCESS) if(bindcode == SDKCallBack.CODE_SUCCESS)
{ {
Log.i(TAG, "LinkSns success"); try {
JSONObject result = new JSONObject();
result.put("code", bindcode);
result.put("userId", userId);
JSONObject serverResponse = new JSONObject(bindmsg);
JSONObject userInfo = serverResponse.getJSONObject("result");
result.put("loginData", userInfo);
UnityPlayer.UnitySendMessage(GOName, "BindCallback", result.toString());
} catch (JSONException e) {
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
}
else if(bindcode == SDKCallBack.CODE_FAILED)
{
try
{
JSONObject bindMsgObj = new JSONObject(bindmsg);
JSONObject bindMsgResult = bindMsgObj.getJSONObject("result");
int bindMsgResultCode = bindMsgResult.getInt("code");
if(bindMsgResultCode == 4)
{
SDKAPI.getIns().checkSnsInfo(snsInfo, (checkcode, checkMsg ) -> {
if(checkcode != SDKCallBack.CODE_SUCCESS)
{
Log.w(TAG, checkMsg);
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
return;
}
try {
tmpSnsInfo = snsInfo;
JSONObject checkMsgObj = new JSONObject(checkMsg);
JSONObject checkResult = checkMsgObj.getJSONObject("result");
String bindInfo = checkResult.getString("bindInfo");
int bindUserId = checkResult.getInt("userId");
JSONObject callbackMsg = new JSONObject();
callbackMsg.put("code", -1);
callbackMsg.put("userId", bindUserId);
callbackMsg.put("bindInfo", bindInfo);
UnityPlayer.UnitySendMessage(GOName, "BindCallback", callbackMsg.toString());
} catch (JSONException e) {
Log.i(TAG, e.toString());
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
});
}
else
{
Log.w(TAG, bindmsg);
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
}
catch (JSONException e)
{
Log.i(TAG, e.toString());
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
} }
else else
{ {
Log.i(TAG, String.format("LinkSns failed, code: %d, msg: %s", bindcode, bindmsg)); Log.w(TAG, bindmsg);
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
} }
}); });
} }
@@ -34,8 +105,32 @@ public class SnsTest {
}); });
} }
public static void Unbind(String type, int userId) public static void ChangeBind(int unbindUserId, int bindUserId)
{ {
if(tmpSnsInfo == null)
{
Log.i(TAG, "tmpSnsInfo is null");
return ;
}
SDKAPI.getIns().unbindBySnsId(tmpSnsInfo, String.valueOf(unbindUserId), (unbindCode, unbindMsg) -> {
Log.i(TAG, "unbindBySnsId code: " + unbindCode + " msg: " + unbindMsg);
if(unbindCode == SDKCallBack.CODE_SUCCESS)
{
SDKAPI.getIns().bindBySnsId(tmpSnsInfo, String.valueOf(bindUserId), (bindCode, bindMsg) -> {
Log.i(TAG, "bindBySnsId code: " + bindCode + " msg: " + bindMsg);
});
}
});
}
public static void RmSns()
{
tmpSnsInfo = null;
}
public static void GetSns(String accountType)
{
Log.i(TAG, "GetSns accountType: " + accountType);
} }
} }

View File

@@ -1,10 +1,11 @@
org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
org.gradle.parallel=true org.gradle.parallel=true
unityStreamingAssets=**STREAMING_ASSETS** unityStreamingAssets=**STREAMING_ASSETS**
android.useAndroidX=true
android.enableJetifier=true
# Android Resolver Properties Start # Android Resolver Properties Start
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
# Android Resolver Properties End # Android Resolver Properties End
android.suppressUnsupportedCompileSdk=35
**ADDITIONAL_PROPERTIES** **ADDITIONAL_PROPERTIES**

View File

@@ -17,6 +17,7 @@ android {
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11
} }
defaultConfig { defaultConfig {
@@ -28,6 +29,14 @@ android {
} }
versionCode **VERSIONCODE** versionCode **VERSIONCODE**
versionName '**VERSIONNAME**' versionName '**VERSIONNAME**'
// ↓↓↓ 这里放你的 VK ID 占位符 ↓↓↓
manifestPlaceholders = [
VKIDRedirectHost : "vk.ru",
VKIDRedirectScheme: "vk54432404",
VKIDClientID : "54432404",
VKIDClientSecret : "WD6BO0CwPXsKMaaFX8Qq"
]
} }
aaptOptions { aaptOptions {

View File

@@ -59,6 +59,13 @@ dependencies {
implementation "androidx.credentials:credentials-play-services-auth:1.3.0" implementation "androidx.credentials:credentials-play-services-auth:1.3.0"
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1" implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
implementation(platform("ru.rustore.sdk:bom:2025.11.01"))
implementation("ru.rustore.sdk:pay")
implementation "ru.rustore.sdk:review:10.0.0"
implementation "com.vk.id:vkid:2.5.1"
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:2.1.2"
// Android Resolver Dependencies Start // Android Resolver Dependencies Start
implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:7 implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:7
implementation 'com.applovin.mediation:facebook-adapter:[6.18.0.1]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8 implementation 'com.applovin.mediation:facebook-adapter:[6.18.0.1]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8
@@ -95,6 +102,7 @@ android {
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11
coreLibraryDesugaringEnabled true
} }
defaultConfig { defaultConfig {
@@ -103,6 +111,7 @@ android {
ndk { ndk {
abiFilters **ABIFILTERS** abiFilters **ABIFILTERS**
} }
versionCode **VERSIONCODE** versionCode **VERSIONCODE**
versionName '**VERSIONNAME**' versionName '**VERSIONNAME**'
consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**

View File

@@ -16,6 +16,17 @@ dependencyResolutionManagement {
**ARTIFACTORYREPOSITORY** **ARTIFACTORYREPOSITORY**
google() google()
mavenCentral() mavenCentral()
maven{
url "https://artifactory-external.vkpartner.ru/artifactory/vkid-sdk-android/"
}
maven{
url "https://artifactory-external.vkpartner.ru/artifactory/maven/"
}
maven{
url "https://artifactory-external.vkpartner.ru/artifactory/vk-id-captcha/android/"
}
// Android Resolver Repos Start // Android Resolver Repos Start
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/") def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
maven { maven {

View File

@@ -38,7 +38,6 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.12733836, g: 0.13418846, b: 0.12118524, a: 1}
m_UseRadianceAmbientProbe: 0 m_UseRadianceAmbientProbe: 0
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
@@ -123,6 +122,85 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &9113281
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9113282}
- component: {fileID: 9113284}
- component: {fileID: 9113283}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9113282
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
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: 678940590}
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: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &9113283
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Review
--- !u!222 &9113284
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_CullTransparentMesh: 1
--- !u!1 &29523098 --- !u!1 &29523098
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -365,6 +443,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 120435829} m_GameObject: {fileID: 120435829}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &159485066
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 159485067}
- component: {fileID: 159485069}
- component: {fileID: 159485068}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &159485067
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 159485066}
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: 1113066541}
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: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &159485068
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 159485066}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: L_VK
--- !u!222 &159485069
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 159485066}
m_CullTransparentMesh: 1
--- !u!1 &174456813 --- !u!1 &174456813
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -591,6 +748,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 231808344} m_GameObject: {fileID: 231808344}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &263924338
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 263924339}
- component: {fileID: 263924341}
- component: {fileID: 263924340}
- component: {fileID: 263924342}
m_Layer: 5
m_Name: VkLogin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &263924339
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
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: 959891290}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &263924340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &263924341
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
m_CullTransparentMesh: 1
--- !u!114 &263924342
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
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: 263924340}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &276006784 --- !u!1 &276006784
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -801,12 +1079,12 @@ MonoBehaviour:
m_RequiresColorTexture: 0 m_RequiresColorTexture: 0
m_Version: 2 m_Version: 2
m_TaaSettings: m_TaaSettings:
quality: 3 m_Quality: 3
frameInfluence: 0.1 m_FrameInfluence: 0.1
jitterScale: 1 m_JitterScale: 1
mipBias: 0 m_MipBias: 0
varianceClampScale: 0.9 m_VarianceClampScale: 0.9
contrastAdaptiveSharpening: 0 m_ContrastAdaptiveSharpening: 0
--- !u!1 &340278280 --- !u!1 &340278280
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -965,6 +1243,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 354913240} m_GameObject: {fileID: 354913240}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &365226264
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 365226265}
- component: {fileID: 365226268}
- component: {fileID: 365226267}
- component: {fileID: 365226266}
m_Layer: 5
m_Name: CVk
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &365226265
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
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: 425077563}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &365226266
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
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: 365226267}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &365226267
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &365226268
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
m_CullTransparentMesh: 1
--- !u!1 &407966797 --- !u!1 &407966797
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1044,6 +1443,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 407966797} m_GameObject: {fileID: 407966797}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &425077562
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 425077563}
- component: {fileID: 425077565}
- component: {fileID: 425077564}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &425077563
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 425077562}
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: 365226265}
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: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &425077564
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 425077562}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: C_VK
--- !u!222 &425077565
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 425077562}
m_CullTransparentMesh: 1
--- !u!1 &571824850 --- !u!1 &571824850
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1165,6 +1643,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 571824850} m_GameObject: {fileID: 571824850}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &678940589
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 678940590}
- component: {fileID: 678940593}
- component: {fileID: 678940592}
- component: {fileID: 678940591}
m_Layer: 5
m_Name: Review
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &678940590
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
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: 9113282}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &678940591
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
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: 678940592}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &678940592
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &678940593
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_CullTransparentMesh: 1
--- !u!1 &686445508 --- !u!1 &686445508
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2044,6 +2643,85 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
--- !u!1 &959891289
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 959891290}
- component: {fileID: 959891292}
- component: {fileID: 959891291}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &959891290
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959891289}
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: 263924339}
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: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &959891291
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959891289}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: VK
--- !u!222 &959891292
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959891289}
m_CullTransparentMesh: 1
--- !u!1 &1033367769 --- !u!1 &1033367769
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2276,11 +2954,14 @@ RectTransform:
- {fileID: 1956900235} - {fileID: 1956900235}
- {fileID: 1910171036} - {fileID: 1910171036}
- {fileID: 1188788676} - {fileID: 1188788676}
- {fileID: 263924339}
- {fileID: 1627053315} - {fileID: 1627053315}
- {fileID: 1668967320} - {fileID: 1668967320}
- {fileID: 834002869} - {fileID: 834002869}
- {fileID: 1094138236} - {fileID: 1094138236}
- {fileID: 698899140} - {fileID: 698899140}
- {fileID: 1113066541}
- {fileID: 365226265}
- {fileID: 948068709} - {fileID: 948068709}
- {fileID: 1033467961} - {fileID: 1033467961}
- {fileID: 571824851} - {fileID: 571824851}
@@ -2293,6 +2974,7 @@ RectTransform:
- {fileID: 1686948820} - {fileID: 1686948820}
- {fileID: 827533342} - {fileID: 827533342}
- {fileID: 1240291498} - {fileID: 1240291498}
- {fileID: 678940590}
m_Father: {fileID: 1451597222} m_Father: {fileID: 1451597222}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
@@ -2766,6 +3448,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1110300852} m_GameObject: {fileID: 1110300852}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1113066540
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1113066541}
- component: {fileID: 1113066544}
- component: {fileID: 1113066543}
- component: {fileID: 1113066542}
m_Layer: 5
m_Name: LVK
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1113066541
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
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: 159485067}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &1113066542
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
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: 1113066543}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &1113066543
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &1113066544
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
m_CullTransparentMesh: 1
--- !u!1 &1156426215 --- !u!1 &1156426215
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -4143,9 +4946,12 @@ MonoBehaviour:
_InitBtn: {fileID: 1956900236} _InitBtn: {fileID: 1956900236}
_loginGuestBtn: {fileID: 1910171037} _loginGuestBtn: {fileID: 1910171037}
_loginGoogleBtn: {fileID: 1188788679} _loginGoogleBtn: {fileID: 1188788679}
_loginVkBtn: {fileID: 263924342}
_loginFbBtn: {fileID: 1627053318} _loginFbBtn: {fileID: 1627053318}
_loginAppleBtn: {fileID: 1668967321} _loginAppleBtn: {fileID: 1668967321}
_loginTokenBtn: {fileID: 834002870} _loginTokenBtn: {fileID: 834002870}
_linkVkBtn: {fileID: 1113066542}
_checkVkBtn: {fileID: 365226266}
_linkGoogleBtn: {fileID: 1094138239} _linkGoogleBtn: {fileID: 1094138239}
_checkGoogleBtn: {fileID: 698899143} _checkGoogleBtn: {fileID: 698899143}
_linkFacbookBtn: {fileID: 948068712} _linkFacbookBtn: {fileID: 948068712}
@@ -4160,6 +4966,7 @@ MonoBehaviour:
_signoutBtn: {fileID: 1686948823} _signoutBtn: {fileID: 1686948823}
_fbShareLinkBtn: {fileID: 827533345} _fbShareLinkBtn: {fileID: 827533345}
_mfbShareLinkBtn: {fileID: 1240291501} _mfbShareLinkBtn: {fileID: 1240291501}
_reviewBtn: {fileID: 678940591}
_messageTxt: {fileID: 2070325010} _messageTxt: {fileID: 2070325010}
--- !u!4 &1788702880 --- !u!4 &1788702880
Transform: Transform:

View File

@@ -513,6 +513,127 @@ MonoBehaviour:
m_MipBias: 0 m_MipBias: 0
m_VarianceClampScale: 0.9 m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0 m_ContrastAdaptiveSharpening: 0
--- !u!1 &385330068
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 385330072}
- component: {fileID: 385330071}
- component: {fileID: 385330070}
- component: {fileID: 385330069}
m_Layer: 5
m_Name: changebind
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &385330069
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
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: 385330070}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &385330070
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &385330071
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
m_CullTransparentMesh: 1
--- !u!224 &385330072
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
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: 465819806}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!1 &393321311 --- !u!1 &393321311
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -549,6 +670,85 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20} m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &465819805
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 465819806}
- component: {fileID: 465819808}
- component: {fileID: 465819807}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &465819806
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465819805}
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: 385330072}
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: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &465819807
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465819805}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: CBind
--- !u!222 &465819808
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465819805}
m_CullTransparentMesh: 1
--- !u!1 &471181945 --- !u!1 &471181945
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -670,7 +870,7 @@ GameObject:
- component: {fileID: 514656874} - component: {fileID: 514656874}
- component: {fileID: 514656873} - component: {fileID: 514656873}
m_Layer: 5 m_Layer: 5
m_Name: Check sns m_Name: rm sns
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@@ -1315,6 +1515,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 757589085} m_GameObject: {fileID: 757589085}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &839565401
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 839565402}
- component: {fileID: 839565405}
- component: {fileID: 839565404}
- component: {fileID: 839565403}
m_Layer: 5
m_Name: LoginBySns
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &839565402
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
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: 1387388941}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &839565403
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
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: 839565404}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &839565404
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &839565405
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
m_CullTransparentMesh: 1
--- !u!1 &845062987 --- !u!1 &845062987
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1506,7 +1827,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: CSNS m_Text: RM SNS
--- !u!222 &875109649 --- !u!222 &875109649
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1706,11 +2027,13 @@ RectTransform:
- {fileID: 1956900235} - {fileID: 1956900235}
- {fileID: 1299164145} - {fileID: 1299164145}
- {fileID: 1472314934} - {fileID: 1472314934}
- {fileID: 839565402}
- {fileID: 1274822429} - {fileID: 1274822429}
- {fileID: 1095319726} - {fileID: 1095319726}
- {fileID: 514656872} - {fileID: 514656872}
- {fileID: 599093755} - {fileID: 599093755}
- {fileID: 730871748} - {fileID: 730871748}
- {fileID: 385330072}
m_Father: {fileID: 1451597222} m_Father: {fileID: 1451597222}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
@@ -2276,6 +2599,87 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1299164144} m_GameObject: {fileID: 1299164144}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1387388940
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1387388941}
- component: {fileID: 1387388943}
- component: {fileID: 1387388942}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1387388941
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387388940}
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: 839565402}
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: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1387388942
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387388940}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 'loginSNS
'
--- !u!222 &1387388943
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387388940}
m_CullTransparentMesh: 1
--- !u!1 &1422461756 --- !u!1 &1422461756
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2871,9 +3275,10 @@ MonoBehaviour:
loginBtn: {fileID: 1472314935} loginBtn: {fileID: 1472314935}
logoutBtn: {fileID: 1274822430} logoutBtn: {fileID: 1274822430}
getSnsBtn: {fileID: 1095319727} getSnsBtn: {fileID: 1095319727}
checkSnsBtn: {fileID: 514656873} rmSnsBtn: {fileID: 514656873}
loginBySns: {fileID: 839565403}
bindBtn: {fileID: 599093756} bindBtn: {fileID: 599093756}
unbindBtn: {fileID: 730871749} changeBindBtn: {fileID: 385330069}
--- !u!1 &1905578657 --- !u!1 &1905578657
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -16,6 +16,8 @@ public class SDKTest : MonoBehaviour
private Button _loginGuestBtn; private Button _loginGuestBtn;
[SerializeField] [SerializeField]
private Button _loginGoogleBtn; private Button _loginGoogleBtn;
[SerializeField] // 海外VkId 登陆
private Button _loginVkBtn;
[SerializeField] [SerializeField]
private Button _loginFbBtn; private Button _loginFbBtn;
[SerializeField] [SerializeField]
@@ -23,6 +25,10 @@ public class SDKTest : MonoBehaviour
[SerializeField] [SerializeField]
private Button _loginTokenBtn; private Button _loginTokenBtn;
[SerializeField] [SerializeField]
private Button _linkVkBtn;
[SerializeField]
private Button _checkVkBtn;
[SerializeField]
private Button _linkGoogleBtn; private Button _linkGoogleBtn;
[SerializeField] [SerializeField]
private Button _checkGoogleBtn; private Button _checkGoogleBtn;
@@ -50,6 +56,10 @@ public class SDKTest : MonoBehaviour
private Button _fbShareLinkBtn; private Button _fbShareLinkBtn;
[SerializeField] [SerializeField]
private Button _mfbShareLinkBtn; private Button _mfbShareLinkBtn;
[SerializeField]
private Button _reviewBtn;
[SerializeField] [SerializeField]
private Text _messageTxt; private Text _messageTxt;
@@ -64,7 +74,7 @@ public class SDKTest : MonoBehaviour
//=============================================================================== //===============================================================================
//====================== Test Server =========================== //====================== Test Server ===========================
// UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com"); // UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com");
// config.Set("AGG_SERVER", "https://128-hwsfsdk-sdk-test01.qijihdhk.com"); config.Set("AGG_SERVER", "https://128-hwsfsdk-sdk-test01.qijihdhk.com");
//====================== Test Server =========================== //====================== Test Server ===========================
//=============================================================================== //===============================================================================
// //
@@ -72,6 +82,8 @@ public class SDKTest : MonoBehaviour
_loginGuestBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGuest)); _loginGuestBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGuest));
_loginGoogleBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGoogle)); _loginGoogleBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGoogle));
_loginFbBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwFacebook)); _loginFbBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwFacebook));
_loginVkBtn.onClick.AddListener(()=> OnLogin(EAccoutType.hwVkid));
#if UNITY_IOS #if UNITY_IOS
_loginAppleBtn.onClick.AddListener(() => OnLogin(EAccoutType.Apple)); _loginAppleBtn.onClick.AddListener(() => OnLogin(EAccoutType.Apple));
#endif #endif
@@ -79,6 +91,8 @@ public class SDKTest : MonoBehaviour
_logOutBtn.onClick.AddListener(OnLogout); _logOutBtn.onClick.AddListener(OnLogout);
_linkGoogleBtn.onClick.AddListener(OnLinkGoogle); _linkGoogleBtn.onClick.AddListener(OnLinkGoogle);
_checkGoogleBtn.onClick.AddListener(OncheckGoogle); _checkGoogleBtn.onClick.AddListener(OncheckGoogle);
_linkVkBtn.onClick.AddListener(OnLinkVkId);
_checkVkBtn.onClick.AddListener(OnCheckVKId);
_linkFacbookBtn.onClick.AddListener(OnLinkFacebook); _linkFacbookBtn.onClick.AddListener(OnLinkFacebook);
_linkAppleBtn.onClick.AddListener(OnLinkApple); _linkAppleBtn.onClick.AddListener(OnLinkApple);
_checkFacbookBtn.onClick.AddListener(OncheckFacebook); _checkFacbookBtn.onClick.AddListener(OncheckFacebook);
@@ -90,6 +104,7 @@ public class SDKTest : MonoBehaviour
_signoutBtn.onClick.AddListener(OnSignoutBtn); _signoutBtn.onClick.AddListener(OnSignoutBtn);
_fbShareLinkBtn.onClick.AddListener(OnFBShareLinkBtn); _fbShareLinkBtn.onClick.AddListener(OnFBShareLinkBtn);
_mfbShareLinkBtn.onClick.AddListener(OnMessengerShareLinkBtn); _mfbShareLinkBtn.onClick.AddListener(OnMessengerShareLinkBtn);
_reviewBtn.onClick.AddListener(OnReview);
Debug.Log("SDKTest Started"); Debug.Log("SDKTest Started");
} }
@@ -112,8 +127,8 @@ public class SDKTest : MonoBehaviour
var customId = TDAnalytics.GetDistinctId(); var customId = TDAnalytics.GetDistinctId();
var customId_2 = TDAnalytics.GetDistinctId("0caf287574bd4a9bb08be8995705ef6f"); var customId_2 = TDAnalytics.GetDistinctId("0caf287574bd4a9bb08be8995705ef6f");
Debug.Log($"customId = {customId}, customId_2 = {customId_2}"); Debug.Log($"customId = {customId}, customId_2 = {customId_2}");
UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com"); // UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com");
} }
int retryAttempt; int retryAttempt;
@@ -185,9 +200,11 @@ public class SDKTest : MonoBehaviour
#endif #endif
var purchaseInfo = new JObject(); var purchaseInfo = new JObject();
// purchaseInfo["ver"] = 2;
purchaseInfo["pfid"] = "TestPlayer"; purchaseInfo["pfid"] = "TestPlayer";
// purchaseInfo["sum"] = sku.ProdPrice;
purchaseInfo["customData"] = "{\"test\":\"test\"}"; purchaseInfo["customData"] = "{\"test\":\"test\"}";
// purchaseInfo[]
PaymentInfo payResult = await TYSdkFacade.Instance.Pay(sku, 1, sku.ProdPrice, purchaseInfo); PaymentInfo payResult = await TYSdkFacade.Instance.Pay(sku, 1, sku.ProdPrice, purchaseInfo);
_messageTxt.text = "\n" + $"Success : {payResult.isSuccess}"; _messageTxt.text = "\n" + $"Success : {payResult.isSuccess}";
@@ -206,6 +223,7 @@ public class SDKTest : MonoBehaviour
_messageTxt.text = "products count:::" + result.products.Count; _messageTxt.text = "products count:::" + result.products.Count;
_messageTxt.text += "\n" + result.products[0].ToString(); _messageTxt.text += "\n" + result.products[0].ToString();
sku = result.products[0]; sku = result.products[0];
Debug.Log($"sku = {sku}");
} }
else else
{ {
@@ -328,6 +346,12 @@ eb68f93a08156e04
Debug.Log($"[AD LOG]Rewarded ad revenue paid \n {adInfo.ToString()}"); Debug.Log($"[AD LOG]Rewarded ad revenue paid \n {adInfo.ToString()}");
} }
private async void OnLinkVkId()
{
_messageTxt.text = string.Empty;
var isSuccess = await TYSdkFacade.Instance.LinkAccount(EAccoutType.hwVkid);
_messageTxt.text = $"\n link VkId account : {isSuccess} {isSuccess.code}";
}
private async void OnLinkGoogle() private async void OnLinkGoogle()
{ {
@@ -350,6 +374,12 @@ eb68f93a08156e04
_messageTxt.text = $"\n link facebook account : {isSuccess}"; _messageTxt.text = $"\n link facebook account : {isSuccess}";
} }
private async void OnCheckVKId()
{
_messageTxt.text = string.Empty;
var isSuccess = await TYSdkFacade.Instance.LinkCheck(EAccoutType.hwVkid);
_messageTxt.text = $"\n google account linked : {isSuccess}";
}
private async void OncheckGoogle() private async void OncheckGoogle()
{ {
_messageTxt.text = string.Empty; _messageTxt.text = string.Empty;
@@ -379,6 +409,11 @@ eb68f93a08156e04
UnityBridgeFunc.MessengerShareLink("title", "content", "https://www.baidu.com"); UnityBridgeFunc.MessengerShareLink("title", "content", "https://www.baidu.com");
} }
private void OnReview()
{
UnityBridgeFunc.Review();
}
/* /*
public void OnTaBtn() public void OnTaBtn()
{ {

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using tysdk; using tysdk;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@@ -28,13 +29,17 @@ public class UnbindTest : MonoBehaviour
private Button getSnsBtn; private Button getSnsBtn;
[SerializeField] [SerializeField]
private Button checkSnsBtn; private Button rmSnsBtn;
[SerializeField]
private Button loginBySns;
[SerializeField] [SerializeField]
private Button bindBtn; private Button bindBtn;
[SerializeField] [SerializeField]
private Button unbindBtn; private Button changeBindBtn;
private EAccoutType accoutType; private EAccoutType accoutType;
@@ -56,9 +61,10 @@ public class UnbindTest : MonoBehaviour
}); loginBtn.onClick.AddListener(OnLogin); }); loginBtn.onClick.AddListener(OnLogin);
logoutBtn.onClick.AddListener(OnLogout); logoutBtn.onClick.AddListener(OnLogout);
getSnsBtn.onClick.AddListener(OnGetSns); getSnsBtn.onClick.AddListener(OnGetSns);
checkSnsBtn.onClick.AddListener(OnCheckSns); rmSnsBtn.onClick.AddListener(OnRmSns);
loginBySns.onClick.AddListener(OnLoginBySns);
bindBtn.onClick.AddListener(OnBind); bindBtn.onClick.AddListener(OnBind);
unbindBtn.onClick.AddListener(OnUnbind); changeBindBtn.onClick.AddListener(OnChangeBind);
Debug.Log("========== Init ============="); Debug.Log("========== Init =============");
TYSdkFacade.Instance.Init(); TYSdkFacade.Instance.Init();
Debug.Log($"AccoutType {accoutType}"); Debug.Log($"AccoutType {accoutType}");
@@ -96,7 +102,14 @@ public class UnbindTest : MonoBehaviour
t.CallStatic("GetSns", accoutType.ToString()); t.CallStatic("GetSns", accoutType.ToString());
} }
private async void OnCheckSns() private void OnRmSns()
{
Debug.Log("========== Get SNS =============");
using var t = new AndroidJavaClass(Cls);
t.CallStatic("RmSns") ;
}
private async void OnLoginBySns()
{ {
try try
{ {
@@ -115,6 +128,7 @@ public class UnbindTest : MonoBehaviour
} }
} }
private int buserId;
private async void OnBind() private async void OnBind()
{ {
try try
@@ -126,6 +140,7 @@ public class UnbindTest : MonoBehaviour
{ {
var info = await PlayFabTool.GetPFPlayerInfoBySDKId(linkResult.userId, "6DC6D"); var info = await PlayFabTool.GetPFPlayerInfoBySDKId(linkResult.userId, "6DC6D");
Debug.Log(info?.ToString() ?? "[UnbindTest::OnBind] info is null"); Debug.Log(info?.ToString() ?? "[UnbindTest::OnBind] info is null");
buserId = linkResult.userId;
} }
} }
catch (Exception e) catch (Exception e)
@@ -134,21 +149,17 @@ public class UnbindTest : MonoBehaviour
} }
} }
public void BindCallback(string message) private async void OnChangeBind()
{ {
try
}
private void OnUnbind()
{
using (var t = new AndroidJavaClass(Cls))
{ {
t.CallStatic("Unbind"); Debug.Log("========== Change Bind =============");
var result = await TYSdkFacade.Instance.ChangeLinkAccount(accoutType, buserId, loginInfo.userId);
Debug.Log($"Change Bind Result Code:{result.code}, UserId:{result.userId}, msg:{result.msg}");
}
catch (Exception e)
{
Debug.LogException(e);
} }
} }
public void UnbindCallback(string message)
{
}
} }

View File

@@ -76,6 +76,12 @@ MonoBehaviour:
type: 3} type: 3}
dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
type: 3} type: 3}
terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
type: 3}
terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
type: 3}
terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
type: 3}
m_AssetVersion: 2 m_AssetVersion: 2
m_OpaqueLayerMask: m_OpaqueLayerMask:
serializedVersion: 2 serializedVersion: 2

View File

@@ -7,7 +7,7 @@ public class ConfigManager {
public static String SDK_GAMEID = "20587"; public static String SDK_GAMEID = "20587";
public static String SDK_PROJECTID = "20587"; public static String SDK_PROJECTID = "20587";
public static String SDK_CLOUDID = "128"; public static String SDK_CLOUDID = "128";
public static String SDK_CLIENTID = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster"; public static String SDK_CLIENTID = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.rustore.FishingTravel";
public static String SDK_LOGIN_SERVER_URL = "https://128-hwsfsdk-sdk-online01.qijihdhk.com"; public static String SDK_LOGIN_SERVER_URL = "https://128-hwsfsdk-sdk-online01.qijihdhk.com";
@@ -22,10 +22,11 @@ public class ConfigManager {
public static final String UNITY_FACADE_NAME = "TYSdkFacade"; public static final String UNITY_FACADE_NAME = "TYSdkFacade";
public static final String LOGIN_CALLBACK_FUNCTION_NAME = "LoginResult"; public static final String LOGIN_CALLBACK_FUNCTION_NAME = "LoginResult";
public static final String LINKACCOUT_CALLBACK_FUNCTION_NAME = "LinkAccoutResult"; public static final String LINKACCOUT_CALLBACK_FUNCTION_NAME = "LinkAccoutResult";
public static final String CHANGELINK_CALLBACK_FUNCTION_NAME = "ChangeLinkAccountResult";
public static final String CHECKLINK_CALLBACK_FUNCTION_NAME = "CheckLinkResult"; public static final String CHECKLINK_CALLBACK_FUNCTION_NAME = "CheckLinkResult";
public static final String PAY_CALLBACK_FUNCTION_NAME = "PayResult"; public static final String PAY_CALLBACK_FUNCTION_NAME = "PayResult";
public static final String PAY_TYPE_CALLBACK_FUNCTION_NAME = "SKUListResult"; public static final String PAY_TYPE_CALLBACK_FUNCTION_NAME = "SKUListResult";
public static final String FCM_NOTICE_FUNCTION_NAME = "FCMCallback"; public static final String FCM_NOTICE_FUNCTION_NAME = "FCMCallback";
public static final String FCM_REALNAME_CALLBACK_FUNCTION_NAME = "RealNameCallback"; public static final String FCM_REALNAME_CALLBACK_FUNCTION_NAME = "RealNameCallback";
} }

View File

@@ -44,8 +44,6 @@ import org.json.JSONObject;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import kotlinx.serialization.json.Json;
public class SDKManager { public class SDKManager {
private final static Handler handler = new Handler(Looper.getMainLooper()); private final static Handler handler = new Handler(Looper.getMainLooper());
@@ -124,6 +122,7 @@ public class SDKManager {
public static void UnityResetServerUrl(String url) { public static void UnityResetServerUrl(String url) {
SDKLog.i("UnityResetServerUrl : " + url); SDKLog.i("UnityResetServerUrl : " + url);
SetDNSIPsEnable(false);
SDKAPI.getIns().updateServer(url); SDKAPI.getIns().updateServer(url);
} }
@@ -266,6 +265,41 @@ public class SDKManager {
tmpSnsInfo = null; tmpSnsInfo = null;
} }
public static void ChangeLinkAccount(String type, int oldUserId, int newUserId)
{
if(tmpSnsInfo == null)
{
String msg = "{\"code\":1, \"userId\": 0, \"msg\": \"tmpSnsInfo is null\"}";
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
return;
}
SDKAPI.getIns().unbindBySnsId(tmpSnsInfo, String.valueOf(oldUserId), (unbindCode, unbindMsg) -> {
Log.i(TAG, "unbindBySnsId code: " + unbindCode + " msg: " + unbindMsg);
if(unbindCode == SDKCallBack.CODE_SUCCESS)
{
SDKAPI.getIns().bindBySnsId(tmpSnsInfo, String.valueOf(newUserId), (bindCode, bindMsg) -> {
Log.i(TAG, "bindBySnsId code: " + bindCode + " msg: " + bindMsg);
if(bindCode == SDKCallBack.CODE_SUCCESS)
{
String msg = "{\"code\":0, \"userId\": " + newUserId + ", \"msg\": \"success\"}";
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
}
else
{
String msg = String.format("{\"code\":-1, \"userId\": 0, \"msg\": \"%s\"}", bindMsg);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
}
});
}
else
{
String msg = String.format("{\"code\":1, \"userId\": 0, \"msg\": \"%s\"}", unbindMsg);
UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.CHANGELINK_CALLBACK_FUNCTION_NAME, msg);
}
});
}
public static void LinkCheck(String type) public static void LinkCheck(String type)
{ {
SDKAPI.getIns().getSnsInfo(type, (code, snsInfo, msg) -> { SDKAPI.getIns().getSnsInfo(type, (code, snsInfo, msg) -> {
@@ -476,20 +510,125 @@ public class SDKManager {
public static void Review() public static void Review()
{ {
ReviewManager manager = ReviewManagerFactory.create(SDKWrapper.getInstance().getContext()); // ReviewManager manager = ReviewManagerFactory.create(SDKWrapper.getInstance().getContext());
Task<ReviewInfo> request = manager.requestReviewFlow(); // Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(reqTask -> { // request.addOnCompleteListener(reqTask -> {
if (reqTask.isSuccessful()) { // if (reqTask.isSuccessful()) {
ReviewInfo reviewInfo = reqTask.getResult(); // ReviewInfo reviewInfo = reqTask.getResult();
Activity activity = UnityPlayer.currentActivity; // Activity activity = UnityPlayer.currentActivity;
manager.launchReviewFlow(activity, reviewInfo); // manager.launchReviewFlow(activity, reviewInfo);
} else { // } else {
@ReviewErrorCode int reviewErrorCode = ((ReviewException) request.getException()).getErrorCode(); // @ReviewErrorCode int reviewErrorCode = ((ReviewException) request.getException()).getErrorCode();
Log.e(TAG,"Review Error code: " + reviewErrorCode); // Log.e(TAG,"Review Error code: " + reviewErrorCode);
// }
// });
// Runnable
RuStoreReview();
}
//- Rustore相关接口
public interface ReviewResultCallback {
void onReviewSuccess(JSONObject result);
void onReviewError(int code, String msg);
}
// # 第一步 请求评分request
public static void RequestRustoreReView(ReviewResultCallback callback) {
JSONObject json = new JSONObject();
try {
json.put("action", "ACTION_REQUEST_REVIEW");
} catch (JSONException e) {
throw new RuntimeException(e);
}
SDKAPI.getIns().thirdExtend(json.toString(), (code, msg) -> {
Log.e(TAG, "====>RequestRustoreReView code= " + code + " msg= " + msg);
JSONObject result = new JSONObject();
try {
result.put("code", code);
if (code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS) {
Log.e(TAG, "RequestRustoreReView Success: " + msg);
//获取成功msg即为对应的json字符串
// 成功时调用回调
if (callback != null) {
callback.onReviewSuccess(result);
}
} else {
Log.e(TAG, "RequestRustoreReView Failed: " + msg);
result.put("thirdExtend_errStr", msg);
// 失败时调用回调
if (callback != null) {
callback.onReviewError(code, msg);
}
}
//code 说明:
// 0 : 获取成功
// 26012001 : RuStoreNotInstalledException
// 26012002 : RuStoreOutdatedException
// 26012003 : RuStoreUserUnauthorizedException
// 26012004 : RuStoreUserBannedException
// 26012005 : RuStoreApplicationBannedException
// 26012006 : RuStoreRequestLimitReached
// 26012007 : RuStoreReviewExists
// 26012008 : RuStoreInvalidReviewInfo
// 26012009 : RuStoreException
// -1 : 其他未知异常
// msg 说明:
// 失败时为error msg
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_REVIEW_CALLBACK, result.toString());
} catch (Exception e) {
SDKLog.e("SDKManager-RequestRustoreReView-Exception" + e);
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_REVIEW_CALLBACK, result.toString());
} }
}); });
} }
// # 第二步展示评分UI 。请求评分request成功后调用且一次成功的request只能调用一次展示
public static void LaunchRustoreView(){
JSONObject json = new JSONObject();
try {
json.put("action", "ACTION_LAUNCH_REVIEW");
} catch (JSONException e) {
throw new RuntimeException(e);
}
SDKAPI.getIns().thirdExtend(json.toString(), (code, msg) -> {
Log.e(TAG, "====>LaunchRustoreView code= " + code + " msg= " + msg);
JSONObject result = new JSONObject();
try {
result.put("code", code);
if (code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS) {
Log.e(TAG, "LaunchRustoreView Success: " + msg);
//获取成功msg即为对应的json字符串
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
} else {
Log.e(TAG, "LaunchRustoreView Failed: " + msg);
result.put("thirdExtend_errStr", msg);
}
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
} catch (Exception e) {
SDKLog.e("SDKManager-LaunchRustoreReView-Exception" + e);
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
}
});
}
public static void RuStoreReview(){
RequestRustoreReView(new ReviewResultCallback() {
@Override
public void onReviewSuccess(JSONObject result) {
LaunchRustoreView();
}
@Override
public void onReviewError(int code, String msg) {
}
});
}
public static void FBShareLink(String title, String content, String url) public static void FBShareLink(String title, String content, String url)
{ {
Log.e(TAG,"FBShareLink : " + title + " " + content + " " + url); Log.e(TAG,"FBShareLink : " + title + " " + content + " " + url);
@@ -526,6 +665,18 @@ public class SDKManager {
} }
} }
public static void SetDNSIPsEnable(boolean enable) {
SDKAPI.enableDoh(enable);
if(enable) {
SDKAPI.setHttpDnsIps(new String[]{
"34.111.1.231",
"2600:1901:0:c31b::"
});
}
else{
SDKAPI.setHttpDnsIps(new String[0]);
}
}
} }

View File

@@ -12,6 +12,7 @@ public class TYApp extends Application {
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
SDKAPI.getIns().onApplicationCreate(this); SDKAPI.getIns().onApplicationCreate(this);
SDKManager.SetDNSIPsEnable(true);
} }
@Override @Override
@@ -19,4 +20,5 @@ public class TYApp extends Application {
super.attachBaseContext(base); super.attachBaseContext(base);
SDKAPI.getIns().onAttachBaseContext(base, this); SDKAPI.getIns().onAttachBaseContext(base, this);
} }
} }

View File

@@ -147,6 +147,20 @@ extern "C" {
} }
} }
NSInteger LoginTypeToBindType(NSInteger loginType)
{
switch (loginType) {
case XYLoginWithApple:
return XYBindApple;
case XYLoginWithFB:
return XYBindFB;
case XYLoginWithGoogle:
return XYBindGoodle;
default:
return -1;
}
}
const char* UnityLoginBySnsInfo() const char* UnityLoginBySnsInfo()
{ {
NSLog(@"TYSdkInterface UnityLoginBySnsInfo"); NSLog(@"TYSdkInterface UnityLoginBySnsInfo");
@@ -387,10 +401,6 @@ extern "C" {
}]; }];
} }
void UnlinkGoogle()
{
}
void LinkFacebook(const int userId) void LinkFacebook(const int userId)
{ {
@@ -412,10 +422,6 @@ extern "C" {
}]; }];
} }
void UnlinkFacebook()
{
}
void LinkApple(const int userId) void LinkApple(const int userId)
{ {
@@ -437,11 +443,60 @@ extern "C" {
}]; }];
} }
void UnlinkApple() void ChangeLinkAccount(const int accoutType, const int oldUserId, const int newUserId)
{ {
NSLog(@"TYSdkInterface ChangeLinkAccount accoutType:%d oldUserId:%d newUserId:%d", accoutType, oldUserId, newUserId);
if (g_snsLoginType == -1)
{
UnitySendMessage("TYSdkFacade", "ChangeLinkAccountResult",
"{\"code\":1, \"userId\": 0, \"msg\": \"g_snsLoginType is invalid\"}");
return;
}
NSInteger bindTypeValue = LoginTypeToBindType(g_snsLoginType);
if (bindTypeValue == -1)
{
UnitySendMessage("TYSdkFacade", "ChangeLinkAccountResult",
"{\"code\":1, \"userId\": 0, \"msg\": \"unsupported account type\"}");
return;
}
XYBindType bindType = (XYBindType)bindTypeValue;
XYBindReq *unbindReq = [XYBindReq initUnBindWithPlatform:bindType UserId:(NSUInteger)oldUserId];
[XYApi XYUnBindByBindReq:unbindReq completionHandler:^(XYResp * _Nonnull unbindResp) {
NSLog(@"TYSdkInterface ChangeLinkAccount unbind code:%ld msg:%@", (long)unbindResp.errCode, unbindResp.errStr);
if (unbindResp.errCode == XYSuccess)
{
XYBindReq *bindReq = [XYBindReq initBindWithPlatform:bindType UserId:(NSUInteger)newUserId];
[XYApi XYBindByBindReq:bindReq isUnbindGuest:@"false" completionHandler:^(XYResp * _Nonnull bindResp) {
NSLog(@"TYSdkInterface ChangeLinkAccount bind code:%ld msg:%@", (long)bindResp.errCode, bindResp.errStr);
if (bindResp.errCode == XYSuccess)
{
NSString *msg = [NSString stringWithFormat:@"{\"code\":0, \"userId\": %d, \"msg\": \"success\"}", newUserId];
UnitySendMessage("TYSdkFacade", "ChangeLinkAccountResult", AllocCString(msg));
}
else
{
NSString *errStr = bindResp.errStr ? bindResp.errStr : @"bind failed";
NSString *msg = [NSString stringWithFormat:@"{\"code\":-1, \"userId\": 0, \"msg\": \"%@\"}", errStr];
UnitySendMessage("TYSdkFacade", "ChangeLinkAccountResult", AllocCString(msg));
}
}];
}
else
{
NSString *errStr = unbindResp.errStr ? unbindResp.errStr : @"unbind failed";
NSString *msg = [NSString stringWithFormat:@"{\"code\":1, \"userId\": 0, \"msg\": \"%@\"}", errStr];
UnitySendMessage("TYSdkFacade", "ChangeLinkAccountResult", AllocCString(msg));
}
}];
} }
void FBShareLink(const char* title, const char* content, const char* url) void FBShareLink(const char* title, const char* content, const char* url)
{ {
NSLog(@"TYSdkInterface FBShareLink"); NSLog(@"TYSdkInterface FBShareLink");

View File

@@ -71,6 +71,49 @@ namespace tysdk
return tcs.Task; return tcs.Task;
} }
/// <summary>
/// 重置已注册 callback 的超时时间:取消先前安排的延时 <see cref="CancellationTokenSource.Cancel"/>,
/// 并从<strong>当前时刻</strong>起在 <paramref name="newTimeout"/> 后触发取消(与构造时传入的延时等价,见 <see cref="CancellationTokenSource.CancelAfter(System.TimeSpan)"/>)。
/// </summary>
/// <typeparam name="T">Callback 数据类型</typeparam>
/// <param name="newTimeout">新的超时时间;若需立即按超时处理可使用 <see cref="TimeSpan.Zero"/></param>
/// <returns>找到未完成 pending 并成功重置则为 true</returns>
public bool ResetCallbackTimeout<T>(TimeSpan newTimeout) where T : class
{
if (_disposed)
throw new ObjectDisposedException(nameof(TYSDKCallbackManager));
var callbackId = typeof(T).Name;
if (!_callbacks.TryGetValue(callbackId, out var entry))
{
UnityEngine.Debug.LogWarning($"[TYSDKCallbackManager] No pending callback found for type: {callbackId}");
return false;
}
if (entry.Task.IsCompleted)
{
UnityEngine.Debug.LogWarning($"[TYSDKCallbackManager] Callback {callbackId} already completed, cannot reset timeout");
return false;
}
var cts = entry.CancellationTokenSource;
if (cts == null)
return false;
try
{
cts.CancelAfter(newTimeout);
UnityEngine.Debug.Log($"[TYSDKCallbackManager] Reset timeout for {callbackId} to {newTimeout.TotalSeconds}s");
return true;
}
catch (ObjectDisposedException)
{
UnityEngine.Debug.LogWarning($"[TYSDKCallbackManager] CancellationTokenSource already disposed for {callbackId}");
return false;
}
}
/// <summary> /// <summary>
/// 触发callback /// 触发callback
/// </summary> /// </summary>

View File

@@ -38,7 +38,9 @@ namespace tysdk
{"google", EAccoutType.hwGoogle}, {"google", EAccoutType.hwGoogle},
{"fb", EAccoutType.hwFacebook}, {"fb", EAccoutType.hwFacebook},
{"tyGuest", EAccoutType.hwGuest}, {"tyGuest", EAccoutType.hwGuest},
{"ios13", EAccoutType.Apple} {"ios13", EAccoutType.Apple},
{"vk.global.app",EAccoutType.hwVkid},
}; };
private static EAccoutType ConvertAccoutType(string accountType) private static EAccoutType ConvertAccoutType(string accountType)
@@ -138,6 +140,11 @@ namespace tysdk
public static bool IsLoggedIn => _accountInfo != null; public static bool IsLoggedIn => _accountInfo != null;
// 记录一下渠道,保证客户端可以调用
public static string Channel => "hwVkid";
//-
public void Logout() public void Logout()
{ {
@@ -159,6 +166,7 @@ namespace tysdk
var userId = (int)ulong.Parse(deviceId, System.Globalization.NumberStyles.HexNumber); var userId = (int)ulong.Parse(deviceId, System.Globalization.NumberStyles.HexNumber);
Debug.Log($"userId -> {userId}");
_accountInfo = new AccountInfo() _accountInfo = new AccountInfo()
{ {
userId = userId, userId = userId,
@@ -171,7 +179,7 @@ namespace tysdk
}; };
#elif UNITY_ANDROID || UNITY_IOS #elif UNITY_ANDROID || UNITY_IOS
var task = TYSDKCallbackManager.Instance.RegisterCallback<LoginInfo>(TimeSpan.FromSeconds(30)); var task = TYSDKCallbackManager.Instance.RegisterCallback<LoginInfo>(TimeSpan.FromSeconds(120));
UnityBridgeFunc.UnityLogin(accoutType); UnityBridgeFunc.UnityLogin(accoutType);
@@ -364,6 +372,51 @@ namespace tysdk
UnityBridgeFunc.CleanLinkTmpSnsInfo(); UnityBridgeFunc.CleanLinkTmpSnsInfo();
} }
#if UNITY_EDITOR
public async Task<ChangeLinkResult> ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId)
{
await Task.Delay(300);
return new ChangeLinkResult(){code = 1};
}
#elif UNITY_IOS || UNITY_ANDROID
public async Task<ChangeLinkResult> ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId)
{
var task = TYSDKCallbackManager.Instance.RegisterCallback<ChangeLinkResult>(TimeSpan.FromSeconds(30));
UnityBridgeFunc.ChangeLinkAccount(accoutType, oldUserId, newUserId);
try
{
var result = await task;
if (result.code == 0)
{
_accountInfo.AddLinkedAccount(accoutType);
_accountInfo.Save();
}
return result;
}
catch (Exception e)
{
Debug.LogWarning($"[TYSdkFacade] Change link account failed: {e}");
return new ChangeLinkResult() { code = 1 };
}
finally
{
CleanLinkTempSnSInfo();
}
}
#endif
public void ChangeLinkAccountResult(string message)
{
JObject data = JObject.Parse(message);
var result = new ChangeLinkResult()
{
code = (int)data["code"],
userId = (int)data["userId"],
msg = (string)data["msg"]
};
TYSDKCallbackManager.Instance.TryTriggerCallback(result);
}
/// <summary> /// <summary>
/// 检查是否已经绑定 /// 检查是否已经绑定
/// <returns> /// <returns>
@@ -432,7 +485,7 @@ namespace tysdk
list.Add(appid); list.Add(appid);
#if UNITY_ANDROID #if UNITY_ANDROID
string clientid = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster"; string clientid = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster";
#elif UNITY_IOS #elif UNITY_IOS
string clientid = "IOS_5.00_tyGuest,facebook,appStore.appStore.0-hall20587.appStore.FishingMaster"; string clientid = "IOS_5.00_tyGuest,facebook,appStore.appStore.0-hall20587.appStore.FishingMaster";
#endif #endif

View File

@@ -20,6 +20,8 @@ namespace tysdk
|___/ |___/
=================================================*/ =================================================*/
private bool _payFirstNegativeHandled;
//public async Task<PaymentInfo> Pay(string prodId, string prodPrice, string prodName, int count, string pType, string price_amount_micros =null) //public async Task<PaymentInfo> Pay(string prodId, string prodPrice, string prodName, int count, string pType, string price_amount_micros =null)
public async Task<PaymentInfo> Pay(SKUDetail prod, int count, float usdprice, JObject purchaseInfo) public async Task<PaymentInfo> Pay(SKUDetail prod, int count, float usdprice, JObject purchaseInfo)
{ {
@@ -49,16 +51,13 @@ namespace tysdk
orderId = orderId, orderId = orderId,
productId = prodId, productId = prodId,
price = prodPrice price = prodPrice
}; };
return result; return result;
#elif UNITY_ANDROID #elif UNITY_ANDROID
var pType = "googleiab.global.app"; // var pType = "googleiab.global.app";
var pType = tysdk.AccountInfo.hwPayType;
var task = TYSDKCallbackManager.Instance.RegisterCallback<PaymentInfo>(TimeSpan.FromSeconds(30)); var task = TYSDKCallbackManager.Instance.RegisterCallback<PaymentInfo>(TimeSpan.FromSeconds(30));
try try
{ {
//UnityBridgeFunc.UnityKnow(prodId, prodName, count.ToString(), orderId, extraInfo); //UnityBridgeFunc.UnityKnow(prodId, prodName, count.ToString(), orderId, extraInfo);
@@ -76,6 +75,10 @@ namespace tysdk
Debug.LogWarning($"[TYSdkFacade::Pay] Faild {e.Message}"); Debug.LogWarning($"[TYSdkFacade::Pay] Faild {e.Message}");
return new PaymentInfo(){code = "-1"}; return new PaymentInfo(){code = "-1"};
} }
finally
{
_payFirstNegativeHandled = false;
}
#elif UNITY_IOS #elif UNITY_IOS
@@ -95,6 +98,10 @@ namespace tysdk
Debug.LogWarning($"[TYSdkFacade::Pay] Faild {e.Message}"); Debug.LogWarning($"[TYSdkFacade::Pay] Faild {e.Message}");
return new PaymentInfo(){code = "-1"}; return new PaymentInfo(){code = "-1"};
} }
finally
{
_payFirstNegativeHandled = false;
}
#endif #endif
} }
@@ -108,7 +115,16 @@ namespace tysdk
result.msg = jresult["errStr"].ToString(); result.msg = jresult["errStr"].ToString();
if(result.code == "-1") if(result.code == "-1")
{ {
Debug.Log("[TYSdkFacade] pay failed: waiting next pay callback"); if (!_payFirstNegativeHandled)
{
_payFirstNegativeHandled = true;
TYSDKCallbackManager.Instance.ResetCallbackTimeout<PaymentInfo>(TimeSpan.FromSeconds(5));
Debug.Log("[TYSdkFacade] pay failed (first time): reset timeout to 5s, waiting next pay callback");
}
else
{
Debug.Log("[TYSdkFacade] pay failed: waiting next pay callback");
}
return; return;
} }
TYSDKCallbackManager.Instance.TryTriggerCallback(result); TYSDKCallbackManager.Instance.TryTriggerCallback(result);
@@ -135,7 +151,7 @@ namespace tysdk
//商品列表的回调 //商品列表的回调
public void SKUListResult(string json) public void SKUListResult(string json)
{ {
Debug.Log("[TYSdkFacade] GetSKUList callback"); Debug.Log($"[TYSdkFacade] GetSKUList callback -> accountChannel: {_accountInfo.channel}");
var jresult = JObject.Parse(json); var jresult = JObject.Parse(json);
int code = int.Parse(jresult["code"].ToString()); int code = int.Parse(jresult["code"].ToString());
var result = new ProductListInfo(); var result = new ProductListInfo();
@@ -144,11 +160,26 @@ namespace tysdk
string productStr = jresult["respObj"].ToString(); string productStr = jresult["respObj"].ToString();
result.code = code; result.code = code;
#if UNITY_ANDROID && !UNITY_EDITOR #if UNITY_ANDROID && !UNITY_EDITOR
var jsonObjList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SKUDetail>>(productStr); var jsonObjList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SKUDetail>>(productStr);
result.products = jsonObjList; result.products = jsonObjList;
// var accountChannel = _accountInfo.channel;
// if (accountChannel == EAccoutType.hwVkid)
// {
// result.ReadSkuFromData(productStr, accountChannel);
// }
// else
// {
// // var jsonObjList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SKUDetail>>(productStr);
// // result.products = jsonObjList;
// result.BaseReadSkuFromData(productStr);
// }
// result.BaseReadSkuFromData(productStr);
#elif UNITY_IOS && !UNITY_EDITOR #elif UNITY_IOS && !UNITY_EDITOR
result.ReadSKUFromJson(productStr); result.ReadSKUFromJson(productStr);
#endif #endif
} }
TYSDKCallbackManager.Instance.TryTriggerCallback(result); TYSDKCallbackManager.Instance.TryTriggerCallback(result);

View File

@@ -1,6 +1,8 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace tysdk namespace tysdk
{ {
@@ -8,11 +10,18 @@ namespace tysdk
{ {
hwGoogle, hwGoogle,
hwFacebook, hwFacebook,
hwGuest, hwGuest,
hwVkid, hwVkid,
Apple, Apple,
none none
} }
public static class AccountInfo
{
public static string hwVkid = "vk.global.app";
public static string hwPayType = "rustore.global.app";
public static string googlePayType = "googleiab.global.app";
}
public class LoginInfo public class LoginInfo
{ {
@@ -34,6 +43,13 @@ namespace tysdk
public Dictionary<string, string> bindInfo; public Dictionary<string, string> bindInfo;
} }
public class ChangeLinkResult
{
public int code;
public int userId;
public string msg;
}
public class LinkCheckInfo public class LinkCheckInfo
{ {
public int code; public int code;
@@ -91,6 +107,18 @@ namespace tysdk
} }
#endif #endif
// public List<SKUDetail> BaseReadSkuFromData(string productData)
// {
// var jsonObjList = JsonConvert.DeserializeObject<List<SKUDetail>>(productData);
// products = jsonObjList;
// return jsonObjList;
// }
// public List<SKUDetail> ReadSkuFromData(string productData, EAccoutType accountChannel)
// {
// var jsonObjList = JsonConvert.DeserializeObject<List<SKUDetail>>(productData);
// products = jsonObjList;
// return jsonObjList;
// }
} }
#if UNITY_IOS #if UNITY_IOS
@@ -115,30 +143,57 @@ namespace tysdk
} }
} }
#else #else
public class SKUDetail // 注意 这个值支持Rustore
{ // #if UNITY_RUSTORE_ANDROID
public string description; public class SKUDetail
public string ourProductId;
public string price;
public string price_amount_micros;
public string price_currency_code;
public string productId;
public string title;
public string type;
public override string ToString()
{ {
return Newtonsoft.Json.JsonConvert.SerializeObject(this); public string description;
public string ourProductId;
public string productId;
public string price;
public string title;
public string currency;
public string price_amount; //- 具体的值
//- 防止编译报错
public string price_currency_code => currency;
public string ProdPriceStr => $"₽{ProdPrice}";
public float ProdPrice => float.Parse(price) / 100 ;
public string ProdID => ourProductId;
public string ProdKey => productId;
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
} }
// #else
public string ProdPriceStr => price; // public class SKUDetail
public float ProdPrice => float.Parse(price_amount_micros) / 1000000; // {
public string ProdID => ourProductId; // public string description;
public string ProdKey => productId; // public string ourProductId;
} // public string price;
// [JsonProperty("price_amount_micros")]
// public string price_amount_micros { get; set; }
// public string price_currency_code;
// public string productId;
// public string title;
// public string type;
//
// public override string ToString()
// {
// return Newtonsoft.Json.JsonConvert.SerializeObject(this);
// }
//
// public string ProdPriceStr => price;
// public float ProdPrice => float.Parse(price_amount_micros) / 1000000;
//
// public string ProdID => ourProductId;
// public string ProdKey => productId;
// }
// #endif
#endif #endif
public class ATTInfo public class ATTInfo
{ {
public bool isAccepted; public bool isAccepted;

View File

@@ -1,445 +1,447 @@
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using UnityEngine; using UnityEngine;
namespace tysdk namespace tysdk
{ {
public static class UnityBridgeFunc public static class UnityBridgeFunc
{ {
#if UNITY_EDITOR #if UNITY_EDITOR
//初始化sdk //初始化sdk
public static void InitSDK(){} public static void InitSDK(){}
//更新登录支付域名 //更新登录支付域名
public static void UnityResetServerUrl(string url){} public static void UnityResetServerUrl(string url){}
//登录 //登录
public static void UnityLoginByTokenFun(string token){} public static void UnityLoginByTokenFun(string token){}
public static string UnityLoginBySnsInfoFun() => null; public static string UnityLoginBySnsInfoFun() => null;
public static void UnityLogin(EAccoutType accoutType){} public static void UnityLogin(EAccoutType accoutType){}
public static void CleanLinkTmpSnsInfo() { } public static void CleanLinkTmpSnsInfo() { }
public static void LinkAccount(EAccoutType accoutType){} public static void LinkAccount(EAccoutType accoutType){}
public static void UnlinkAccount(EAccoutType accoutType){} public static void ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId){}
public static void LinkCheck(EAccoutType accoutType){} public static void LinkCheck(EAccoutType accoutType){}
public static void UnityGetIdentityFun(string type){} public static void UnityGetIdentityFun(string type){}
public static void UnityLogOutByChannel(EAccoutType accoutType){} public static void UnityLogOutByChannel(EAccoutType accoutType){}
//支付new //支付new
public static void UnityKnowNew(string productId, string productPrice, string productName, public static void UnityKnowNew(string productId, string productPrice, string productName,
string productCount, string prodorderId, string appInfo, string pType) { } string productCount, string prodorderId, string appInfo, string pType) { }
//支付 //支付
public static void UnityKnow(String productId, String productName, String productCount, public static void UnityKnow(String productId, String productName, String productCount,
String prodorderId, String appInfo) {} String prodorderId, String appInfo) {}
//获取商品列表 //获取商品列表
public static void GetSKUList() { } public static void GetSKUList() { }
//打点 //打点
public static void SetGaUserInfo(string userId){} public static void SetGaUserInfo(string userId){}
public static void SetGaCommonInfo(string SetGaCommonInfo){} public static void SetGaCommonInfo(string SetGaCommonInfo){}
public static void GAReportParams(int type, string eventstr, string paramstr){} public static void GAReportParams(int type, string eventstr, string paramstr){}
//ATT //ATT
public static void RequestATT(){} public static void RequestATT(){}
public static int GetATT() {return 1;} public static int GetATT() {return 1;}
public static void Review() { } public static void Review() { }
public static void FBShareLink(string title, string content, string url) { } public static void FBShareLink(string title, string content, string url) { }
public static void MessengerShareLink(string title, string content, string url) { } public static void MessengerShareLink(string title, string content, string url) { }
#elif UNITY_ANDROID #elif UNITY_ANDROID
private static string SDK_CLASS = "com.unity3d.player.SDKManager"; private static string EAccountTypeToStr(EAccoutType accoutType)
{
//初始化sdk return accoutType == EAccoutType.hwVkid ? AccountInfo.hwVkid : accoutType.ToString();
public static void InitSDK(){ }
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{ private static string SDK_CLASS = "com.unity3d.player.SDKManager";
using(var activityCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{ //初始化sdk
var activity = activityCls.GetStatic<AndroidJavaObject>("currentActivity"); public static void InitSDK(){
sdkManager.CallStatic("InitSDK", activity); using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
} {
} using(var activityCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
} {
//更新登录支付域名 var activity = activityCls.GetStatic<AndroidJavaObject>("currentActivity");
public static void UnityResetServerUrl(string url) sdkManager.CallStatic("InitSDK", activity);
{ }
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) }
{ }
sdkManager.CallStatic("UnityResetServerUrl", url); //更新登录支付域名
} public static void UnityResetServerUrl(string url)
} {
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
//登录 {
public static void UnityLoginByTokenFun(string token) sdkManager.CallStatic("UnityResetServerUrl", url);
{ }
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) }
{
sdkManager.CallStatic("UnityLoginByTokenFun", token); //登录
} public static void UnityLoginByTokenFun(string token)
} {
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
public static String UnityLoginBySnsInfoFun() {
{ sdkManager.CallStatic("UnityLoginByTokenFun", token);
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) }
{ }
return sdkManager.CallStatic<string>("UnityLoginBySnsInfo");
} public static String UnityLoginBySnsInfoFun()
} {
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
public static void UnityLogin(EAccoutType accoutType) {
{ return sdkManager.CallStatic<string>("UnityLoginBySnsInfo");
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) }
{ }
sdkManager.CallStatic("UnityLogin", accoutType.ToString());
} public static void UnityLogin(EAccoutType accoutType)
} {
var accountInfo = EAccountTypeToStr(accoutType);
public static void UnityGetIdentityFun(string type) using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{ {
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) Debug.Log($"UnityLogin -> {accountInfo}");
{ sdkManager.CallStatic("UnityLogin",accountInfo);
sdkManager.CallStatic("UnityGetIdentityFun", type); }
}
} }
public static void UnityLogOutByChannel(EAccoutType accoutType) public static void UnityGetIdentityFun(string type)
{ {
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) {
{ sdkManager.CallStatic("UnityGetIdentityFun", type);
sdkManager.CallStatic("UnityLogOutByChannel", accoutType.ToString()); }
} }
}
public static void UnityLogOutByChannel(EAccoutType accoutType)
public static void LinkAccount(EAccoutType accoutType) {
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) var accountInfo = EAccountTypeToStr(accoutType);
{ using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
string userId = TYSdkFacade.TYAccountInfo.strUserId; {
sdkManager.CallStatic("LinkAccount", accoutType.ToString(), userId); sdkManager.CallStatic("UnityLogOutByChannel", accountInfo);
} }
} }
public static void CleanLinkTmpSnsInfo(){ public static void LinkAccount(EAccoutType accoutType)
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) {
{ string userId = TYSdkFacade.TYAccountInfo.strUserId;
using(var activityCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (var sdkManager = new AndroidJavaClass(SDK_CLASS))
{ {
sdkManager.CallStatic("CleanLinkTmpSnsInfo"); var accountInfo = EAccountTypeToStr(accoutType);
} sdkManager.CallStatic("LinkAccount",accountInfo,userId);
} }
} }
public static void UnlinkAccount(EAccoutType accoutType) public static void CleanLinkTmpSnsInfo(){
{ using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) {
{ using(var activityCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
sdkManager.CallStatic("UnlinkAccount", accoutType.ToString()); {
} sdkManager.CallStatic("CleanLinkTmpSnsInfo");
} }
}
public static void LinkCheck(EAccoutType accoutType) }
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) public static void ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId)
{ {
sdkManager.CallStatic("LinkCheck", accoutType.ToString()); var accountInfo = EAccountTypeToStr(accoutType);
} using (var sdkManager = new AndroidJavaClass(SDK_CLASS))
} {
sdkManager.CallStatic("ChangeLinkAccount", accountInfo, oldUserId, newUserId);
//支付new }
public static void UnityKnowNew(string productId, string productPrice, string productName, }
string productCount, string prodorderId, string appInfo,string pType)
{ public static void LinkCheck(EAccoutType accoutType)
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) {
{ var accountInfo = EAccountTypeToStr(accoutType);
sdkManager.CallStatic("UnityKnowNew", productId, productPrice, productName, using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
productCount, prodorderId, appInfo,pType); {
} sdkManager.CallStatic("LinkCheck",accountInfo);
} }
}
//支付
//支付new
public static void UnityKnow(String productId, String productName, String productCount, String prodorderId, String appInfo) public static void UnityKnowNew(string productId, string productPrice, string productName,
{ string productCount, string prodorderId, string appInfo,string pType)
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) {
{ using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
sdkManager.CallStatic("UnityKnow", productId, productName, productCount, prodorderId, appInfo); {
} sdkManager.CallStatic("UnityKnowNew", productId, productPrice, productName,
} productCount, prodorderId, appInfo,pType);
}
//获取商品列表 }
public static void GetSKUList()
{ //支付
UnityEngine.Debug.Log("UnityBridgeFunc.GetSKUList()");
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) public static void UnityKnow(String productId, String productName, String productCount, String prodorderId, String appInfo)
{ {
sdkManager.CallStatic("thirdExtend"); using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
} {
} sdkManager.CallStatic("UnityKnow", productId, productName, productCount, prodorderId, appInfo);
}
//打点 }
public static void SetGaUserInfo(string userId)
{ //获取商品列表
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) public static void GetSKUList()
{ {
sdkManager.CallStatic("SetGaUserInfo", userId); UnityEngine.Debug.Log("UnityBridgeFunc.GetSKUList()");
} using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
} {
sdkManager.CallStatic("thirdExtend");
public static void SetGaCommonInfo(string SetGaCommonInfo) }
{ }
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{ //打点
sdkManager.CallStatic("SetGaCommonInfo", SetGaCommonInfo); public static void SetGaUserInfo(string userId)
} {
} using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
public static void GAReportParams(int type, string eventstr, string paramstr) sdkManager.CallStatic("SetGaUserInfo", userId);
{ }
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) }
{
sdkManager.CallStatic("GAReportParams", type, eventstr, paramstr); public static void SetGaCommonInfo(string SetGaCommonInfo)
} {
} using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("SetGaCommonInfo", SetGaCommonInfo);
//ATT }
public static void RequestATT(){} }
public static int GetATT() {return 1;} public static void GAReportParams(int type, string eventstr, string paramstr)
{
public static void Review() using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{ {
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) sdkManager.CallStatic("GAReportParams", type, eventstr, paramstr);
{ }
sdkManager.CallStatic("Review"); }
}
}
//ATT
public static void FBShareLink(string title, string content, string url) public static void RequestATT(){}
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) public static int GetATT() {return 1;}
{
sdkManager.CallStatic("FBShareLink", title, content, url); public static void Review()
} {
} using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
public static void MessengerShareLink(string title, string content, string url) sdkManager.CallStatic("Review");
{ // sdkManager.CallStataic("RuStoreReview");
using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) }
{ }
sdkManager.CallStatic("MessengerShareLink", title, content, url);
} public static void FBShareLink(string title, string content, string url)
} {
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
#elif UNITY_IOS {
sdkManager.CallStatic("FBShareLink", title, content, url);
//更新登录支付域名 }
[DllImport("__Internal")] }
public static extern void UnityResetServerUrl(string url);
public static void MessengerShareLink(string title, string content, string url)
//登录 {
[DllImport("__Internal")] using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
public static extern void UnityLoginByTokenFun(string token); {
sdkManager.CallStatic("MessengerShareLink", title, content, url);
[DllImport("__Internal")] }
private static extern IntPtr UnityLoginBySnsInfo(); }
public static string UnityLoginBySnsInfoFun() #elif UNITY_IOS
{
IntPtr ptr = UnityLoginBySnsInfo(); //更新登录支付域名
[DllImport("__Internal")]
if (ptr == IntPtr.Zero) public static extern void UnityResetServerUrl(string url);
{
return string.Empty; //登录
} [DllImport("__Internal")]
public static extern void UnityLoginByTokenFun(string token);
// Convert C string to C# string
string result = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ptr); [DllImport("__Internal")]
return result ?? string.Empty; private static extern IntPtr UnityLoginBySnsInfo();
}
public static string UnityLoginBySnsInfoFun()
public static void UnityLogin(EAccoutType accoutType) {
{ IntPtr ptr = UnityLoginBySnsInfo();
switch (accoutType)
{ if (ptr == IntPtr.Zero)
case EAccoutType.hwGoogle: {
UnityLoginByGoogle(); return string.Empty;
break; }
case EAccoutType.hwFacebook:
UnityLoginByFacebook(); // Convert C string to C# string
break; string result = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ptr);
case EAccoutType.hwGuest: return result ?? string.Empty;
UnityLoginByGuest(); }
break;
case EAccoutType.Apple: public static void UnityLogin(EAccoutType accoutType)
UnityLoginByApple(); {
break; switch (accoutType)
} {
} case EAccoutType.hwGoogle:
UnityLoginByGoogle();
[DllImport("__Internal")] break;
public static extern void UnityLoginByGuest(); case EAccoutType.hwFacebook:
UnityLoginByFacebook();
[DllImport("__Internal")] break;
public static extern void UnityLoginByGoogle(); case EAccoutType.hwGuest:
UnityLoginByGuest();
[DllImport("__Internal")] break;
public static extern void UnityLoginByFacebook(); case EAccoutType.Apple:
UnityLoginByApple();
[DllImport("__Internal")] break;
public static extern void UnityLoginByApple(); }
}
[DllImport("__Internal")]
public static extern void UnityGetIdentityFun(string type); [DllImport("__Internal")]
private static extern void UnityLoginByGuest();
[DllImport("__Internal")]
public static extern void UnityLoginOut(); [DllImport("__Internal")]
private static extern void UnityLoginByGoogle();
public static void UnityLogOutByChannel(EAccoutType accoutType)
{ [DllImport("__Internal")]
switch (accoutType) private static extern void UnityLoginByFacebook();
{
case EAccoutType.hwGoogle: [DllImport("__Internal")]
UnityLogoutGoogle(); private static extern void UnityLoginByApple();
break;
case EAccoutType.hwFacebook: [DllImport("__Internal")]
UnityLogoutFacebook(); public static extern void UnityGetIdentityFun(string type);
break;
case EAccoutType.hwGuest: [DllImport("__Internal")]
UnityLogoutGuest(); public static extern void UnityLoginOut();
break;
case EAccoutType.Apple: public static void UnityLogOutByChannel(EAccoutType accoutType)
UnityLogoutApple(); {
break; switch (accoutType)
} {
} case EAccoutType.hwGoogle:
UnityLogoutGoogle();
[DllImport("__Internal")] break;
private static extern void UnityLogoutGoogle(); case EAccoutType.hwFacebook:
UnityLogoutFacebook();
[DllImport("__Internal")] break;
private static extern void UnityLogoutFacebook(); case EAccoutType.hwGuest:
UnityLogoutGuest();
[DllImport("__Internal")] break;
private static extern void UnityLogoutGuest(); case EAccoutType.Apple:
UnityLogoutApple();
[DllImport("__Internal")] break;
private static extern void UnityLogoutApple(); }
}
public static void LinkAccount(EAccoutType accoutType)
{ [DllImport("__Internal")]
var userId = TYSdkFacade.TYAccountInfo.userId; private static extern void UnityLogoutGoogle();
switch (accoutType) [DllImport("__Internal")]
{ private static extern void UnityLogoutFacebook();
case EAccoutType.hwGoogle:
LinkGoogle(userId); [DllImport("__Internal")]
break; private static extern void UnityLogoutGuest();
case EAccoutType.hwFacebook:
LinkFacebook(userId); [DllImport("__Internal")]
break; private static extern void UnityLogoutApple();
case EAccoutType.Apple:
LinkApple(userId); public static void LinkAccount(EAccoutType accoutType)
break; {
} var userId = TYSdkFacade.TYAccountInfo.userId;
}
switch (accoutType)
public static void UnlinkAccount(EAccoutType accoutType) {
{ case EAccoutType.hwGoogle:
switch (accoutType) LinkGoogle(userId);
{ break;
case EAccoutType.hwGoogle: case EAccoutType.hwFacebook:
UnlinkGoogle(); LinkFacebook(userId);
break; break;
case EAccoutType.hwFacebook: case EAccoutType.Apple:
UnlinkFacebook(); LinkApple(userId);
break; break;
} }
} }
[DllImport("__Internal")] private static extern void LinkGoogle(int userId);
[DllImport("__Internal")] private static extern void UnlinkGoogle(); [DllImport("__Internal")] private static extern void LinkGoogle(int userId);
[DllImport("__Internal")] private static extern void LinkFacebook(int userId); [DllImport("__Internal")] private static extern void LinkFacebook(int userId);
[DllImport("__Internal")] private static extern void UnlinkFacebook(); [DllImport("__Internal")] private static extern void LinkApple(int userId);
[DllImport("__Internal")] private static extern void LinkApple(int userId);
[DllImport("__Internal")] private static extern void UnlinkApple(); [DllImport("__Internal")]
public static extern void ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId);
public static void LinkCheck(EAccoutType accoutType)
{ public static void LinkCheck(EAccoutType accoutType)
switch (accoutType) {
{ switch (accoutType)
case EAccoutType.hwGoogle: {
IsLinkedGoogle(); case EAccoutType.hwGoogle:
break; IsLinkedGoogle();
case EAccoutType.hwFacebook: break;
IsLinkedFacebook(); case EAccoutType.hwFacebook:
break; IsLinkedFacebook();
break;
case EAccoutType.Apple:
IsLinkedApple(); case EAccoutType.Apple:
break; IsLinkedApple();
} break;
} }
}
[DllImport("__Internal")] public static extern void CleanLinkTmpSnsInfo();
[DllImport("__Internal")] private static extern void IsLinkedGoogle(); [DllImport("__Internal")] public static extern void CleanLinkTmpSnsInfo();
[DllImport("__Internal")] private static extern void IsLinkedFacebook();
[DllImport("__Internal")] private static extern void IsLinkedApple(); [DllImport("__Internal")] private static extern void IsLinkedGoogle();
[DllImport("__Internal")] private static extern void IsLinkedFacebook();
[DllImport("__Internal")] private static extern void IsLinkedApple();
//支付
[DllImport("__Internal")]
public static extern void UnityKnow(string userId, string productId, string productPrice, string productName, //支付
string productCount, string prodorderId, string appInfo); [DllImport("__Internal")]
public static extern void UnityKnow(string userId, string productId, string productPrice, string productName,
//获取商品列表 string productCount, string prodorderId, string appInfo);
[DllImport("__Internal")]
public static extern void GetSKUList(); //获取商品列表
[DllImport("__Internal")]
//打点 public static extern void GetSKUList();
[DllImport("__Internal")]
public static extern void SetGaUserInfo(string userId); //打点
[DllImport("__Internal")]
[DllImport("__Internal")] public static extern void SetGaUserInfo(string userId);
public static extern void SetGaCommonInfo(string SetGaCommonInfo);
[DllImport("__Internal")]
[DllImport("__Internal")] public static extern void SetGaCommonInfo(string SetGaCommonInfo);
public static extern void GAReportParams(int type, string eventstr, string paramstr);
[DllImport("__Internal")]
//ATT public static extern void GAReportParams(int type, string eventstr, string paramstr);
[DllImport("__Internal")]
public static extern void RequestATT(); //ATT
[DllImport("__Internal")]
[DllImport("__Internal")] public static extern void RequestATT();
public static extern int GetATT();
[DllImport("__Internal")]
[DllImport("__Internal")] public static extern int GetATT();
public static extern void FBShareLink(string title, string content, string url);
[DllImport("__Internal")]
[DllImport("__Internal")] public static extern void FBShareLink(string title, string content, string url);
public static extern void MessengerShareLink(string title, string content, string url);
[DllImport("__Internal")]
#endif public static extern void MessengerShareLink(string title, string content, string url);
}
} #endif
}
}

View File

@@ -173,7 +173,7 @@ PlayerSettings:
tvOS: 0 tvOS: 0
overrideDefaultApplicationIdentifier: 1 overrideDefaultApplicationIdentifier: 1
AndroidBundleVersionCode: 1 AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 25 AndroidMinSdkVersion: 26
AndroidTargetSdkVersion: 35 AndroidTargetSdkVersion: 35
AndroidPreferredInstallLocation: 1 AndroidPreferredInstallLocation: 1
aotOptions: aotOptions: