diff --git a/Assets/Poolakey/Demo/DemoSceneSettings.lighting b/Assets/Poolakey/Demo/DemoSceneSettings.lighting deleted file mode 100644 index 28cb3df..0000000 --- a/Assets/Poolakey/Demo/DemoSceneSettings.lighting +++ /dev/null @@ -1,63 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!850595691 &4890085278179872738 -LightingSettings: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: DemoSceneSettings - serializedVersion: 3 - m_GIWorkflowMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 1 - m_RealtimeEnvironmentLighting: 1 - m_BounceScale: 1 - m_AlbedoBoost: 1 - m_IndirectOutputScale: 1 - m_UsingShadowmask: 1 - m_BakeBackend: 1 - m_LightmapMaxSize: 1024 - m_BakeResolution: 40 - m_Padding: 2 - m_TextureCompression: 1 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAO: 0 - m_MixedBakeMode: 2 - m_LightmapsBakeMode: 1 - m_FilterMode: 1 - m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_RealtimeResolution: 2 - m_ForceWhiteAlbedo: 0 - m_ForceUpdates: 0 - m_FinalGather: 0 - m_FinalGatherRayCount: 256 - m_FinalGatherFiltering: 1 - m_PVRCulling: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 500 - m_PVREnvironmentSampleCount: 500 - m_PVREnvironmentReferencePointCount: 2048 - m_LightProbeSampleCountMultiplier: 4 - m_PVRBounces: 2 - m_PVRMinBounces: 2 - m_PVREnvironmentMIS: 0 - m_PVRFilteringMode: 2 - m_PVRDenoiserTypeDirect: 0 - m_PVRDenoiserTypeIndirect: 0 - m_PVRDenoiserTypeAO: 0 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 diff --git a/Assets/Poolakey/Demo/PoolakeyExample.cs b/Assets/Poolakey/Demo/PoolakeyExample.cs deleted file mode 100644 index 4b633ed..0000000 --- a/Assets/Poolakey/Demo/PoolakeyExample.cs +++ /dev/null @@ -1,39 +0,0 @@ -using UnityEngine; -using Poolakey; -using Poolakey.Scripts; -using UnityEngine.UI; - -public class PoolakeyExample : MonoBehaviour -{ - public Text ConsoleText; - - public Button Btn_InitIAB, Btn_StartPurchase, Btn_ConsumePurchase, Btn_subscribe,Btn_purchaseList; - - private Payment payment; - void Start() - { - Log("Poolakey Plugin Version: " + PluginVersion.VersionString); - SecurityCheck securityCheck = SecurityCheck.Disable(); - PaymentConfiguration paymentConfiguration = new PaymentConfiguration(securityCheck); - payment = new Payment(paymentConfiguration); - } - - public void Connect() - { - payment.connect(); - } - - public void PurchaseProduct() - { - payment.purchaseProduct("test"); - } - public void SubscribeProduct() - { - payment.subscribeProduct("test"); - } - - public void Log(string message) - { - ConsoleText.text += message + "\n"; - } -} diff --git a/Assets/Poolakey/Plugins/poolakeyunitybridge.aar b/Assets/Poolakey/Plugins/poolakeyunitybridge.aar deleted file mode 100644 index 742ac31..0000000 Binary files a/Assets/Poolakey/Plugins/poolakeyunitybridge.aar and /dev/null differ diff --git a/Assets/Poolakey/Scripts/Callbacks/ConnectionCallbackProxy.cs b/Assets/Poolakey/Scripts/Callbacks/ConnectionCallbackProxy.cs deleted file mode 100644 index f313a64..0000000 --- a/Assets/Poolakey/Scripts/Callbacks/ConnectionCallbackProxy.cs +++ /dev/null @@ -1,24 +0,0 @@ -using UnityEngine; - -namespace Poolakey.Scripts.Callbacks -{ - public class ConnectionCallbackProxy : AndroidJavaProxy - { - public ConnectionCallbackProxy() : base("com.farsitel.bazaar.callback.ConnectionCallback") {} - - void onConnect() - { - Debug.Log("onConnectttttt"); - } - - void onDisconnect() - { - Debug.Log("onDisconnect"); - } - - void onFailure() - { - Debug.Log("onFailure"); - } - } -} \ No newline at end of file diff --git a/Assets/Poolakey/Scripts/Callbacks/PaymentCallbackProxy.cs b/Assets/Poolakey/Scripts/Callbacks/PaymentCallbackProxy.cs deleted file mode 100644 index 6862891..0000000 --- a/Assets/Poolakey/Scripts/Callbacks/PaymentCallbackProxy.cs +++ /dev/null @@ -1,24 +0,0 @@ -using UnityEngine; - -namespace Poolakey.Scripts.Callbacks -{ - public class PaymentCallbackProxy : AndroidJavaProxy - { - public PaymentCallbackProxy() : base("com.farsitel.bazaar.callback.PaymentCallback") {} - - void onSuccess(AndroidJavaObject purchaseEntity) - { - Debug.Log("onSuccess" + purchaseEntity); - } - - void onFailure(AndroidJavaObject throwable) - { - Debug.Log("onFailure"+throwable); - } - - void onCancel() - { - Debug.Log("onCancel"); - } - } -} \ No newline at end of file diff --git a/Assets/Poolakey/Scripts/Payment.cs b/Assets/Poolakey/Scripts/Payment.cs deleted file mode 100644 index e10a5a2..0000000 --- a/Assets/Poolakey/Scripts/Payment.cs +++ /dev/null @@ -1,55 +0,0 @@ -using UnityEngine; -using Poolakey.Scripts.Callbacks; -namespace Poolakey.Scripts -{ - public class Payment - { - PaymentConfiguration paymentConfiguration; - private AndroidJavaObject poolakeyBridge; - public Payment(PaymentConfiguration paymentConfiguration) - { - this.paymentConfiguration = paymentConfiguration; - poolakeyBridge = new AndroidJavaObject("com.farsitel.bazaar.PoolakeyBridge"); - } - public void connect() - { - poolakeyBridge.CallStatic( - "connect", - getActivity(), - paymentConfiguration.securityCheck.rsaPublicKey, - new ConnectionCallbackProxy() - ); - } - - public void purchaseProduct(string productId, string payload = null) - { - poolakeyBridge.CallStatic( - "purchaseProduct", - getActivity(), - paymentConfiguration.securityCheck.rsaPublicKey, - productId, - payload, - new PaymentCallbackProxy() - ); - } - - public void subscribeProduct(string productId, string payload = null) - { - poolakeyBridge.CallStatic( - "subscribeProduct", - getActivity(), - paymentConfiguration.securityCheck.rsaPublicKey, - productId, - payload, - new PaymentCallbackProxy() - ); - } - - private AndroidJavaObject getActivity() - { - AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); - AndroidJavaObject currentActivity = unityPlayer.GetStatic("currentActivity"); - return currentActivity; - } - } -} \ No newline at end of file diff --git a/README.md b/README.md index b5d3f0b..370a255 100644 --- a/README.md +++ b/README.md @@ -1 +1,17 @@ -# PoolakeyUnitySdk +
+ +[........... راهنمــــــای فـــــــارسی ..........](https://github.com/manjav/PoolakeyUnitySdk/blob/main/README_FA.md) + + +### Unity SDK for [Poolakey](https://github.com/cafebazaar/Poolakey) ( New Cafebazaar IAP ).

+ +Easy payment : + +```c# +var connectionResult = await payment.Connect(); +var purchaseResult = await payment.Purchase("productID"); +var consumeResult = await payment.Consume(purchaseResult.data.purchaseToken); +``` +

+## How to use? +For more information regarding the usage of Poolakey, please check out the [wiki](https://github.com/manjav/PoolakeyUnitySdk/wiki) page. \ No newline at end of file diff --git a/README_FA.md b/README_FA.md new file mode 100644 index 0000000..20ac808 --- /dev/null +++ b/README_FA.md @@ -0,0 +1,16 @@ +
+ +### [
........... English Readme ..........
](https://github.com/manjav/PoolakeyUnitySdk/blob/main/README.md) +
+ +##
پولکی (کتابخانه جدید و ساده پرداخت درون‌برنامه کافه بازار)

+

پیاده سازی بسیار آسان :

+ +```c# +var connectionResult = await payment.Connect(); +var purchaseResult = await payment.Purchase("productID"); +var consumeResult = await payment.Consume(purchaseResult.data.purchaseToken); +``` +

+ +## [
پیاده سازی گام به گام کتابخانه
](https://github.com/manjav/PoolakeyUnitySdk/wiki/%DB%B1.-%D9%86%D8%B5%D8%A8-SDK) \ No newline at end of file diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..fba0afc --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,10 @@ +*.iml +/app/production +.gradle +/local.properties +.idea +.DS_Store +/build +/captures +.externalNativeBuild +*.ks \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..51fa14c --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,71 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + ext.kotlin_version = '1.3.72' + repositories { + google() + jcenter() + } + dependencies { + classpath "com.android.tools.build:gradle:4.1.2" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + maven { url 'https://jitpack.io' } + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 29 + buildToolsVersion '29.0.2' + + defaultConfig { + minSdkVersion 9 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + } + + compileOptions + { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + + +dependencies { + implementation "com.github.cafebazaar.Poolakey:poolakey:1.1.0-beta02" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} + +task deleteJar(type: Delete) { + delete 'Poolakey.jar' +} +task createJar(type: Copy) { + from('build/intermediates/packaged-classes/release/') + into('build') + include('classes.jar') + rename('classes.jar', 'Poolakey.jar') +} +task updateAAR(type: Copy) { + from('build/outputs/aar') + into('../unity/Assets/Poolakey/Plugins/') + include(project.name + '.aar') +} + +project.tasks.whenTaskAdded { Task theTask -> + if (theTask.name == 'assembleRelease') { + theTask.dependsOn(updateAAR) // Compile the custom task after compiling apk + } +} \ No newline at end of file diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..98bed16 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..f6b961f Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..4f80cc6 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Jun 29 12:14:03 IRDT 2021 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip diff --git a/android/gradlew b/android/gradlew new file mode 100644 index 0000000..cccdd3d --- /dev/null +++ b/android/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..983dec7 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = "poolakeyunitybridge" \ No newline at end of file diff --git a/android/src/androidTest/java/com/farsitel/bazaar/ExampleInstrumentedTest.kt b/android/src/androidTest/java/com/farsitel/bazaar/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..3207e5f --- /dev/null +++ b/android/src/androidTest/java/com/farsitel/bazaar/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.farsitel.bazaar + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.farsitel.bazaar", appContext.packageName) + } +} \ No newline at end of file diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..115a21e --- /dev/null +++ b/android/src/main/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/android/src/main/java/com/farsitel/bazaar/PaymentActivity.kt b/android/src/main/java/com/farsitel/bazaar/PaymentActivity.kt new file mode 100644 index 0000000..d325d32 --- /dev/null +++ b/android/src/main/java/com/farsitel/bazaar/PaymentActivity.kt @@ -0,0 +1,130 @@ +package com.farsitel.bazaar + +import android.app.Activity +import android.content.Intent +import android.os.Bundle +import androidx.fragment.app.FragmentActivity +import com.farsitel.bazaar.callback.PaymentCallback +import ir.cafebazaar.poolakey.request.PurchaseRequest +import java.security.InvalidParameterException + +class PaymentActivity : FragmentActivity() { + private var productId: String? = null + private var payload: String? = null + private var command: Command? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initArgs() + when (command) { + Command.PurchaseProduct -> purchaseProduct() + Command.Subscribe -> subscribeProduct() + else -> throw InvalidParameterException("Undefined command: $command") + } + } + + private fun purchaseProduct() { + PoolakeyKotlinBridge.payment.purchaseProduct( + this@PaymentActivity, + PurchaseRequest(productId!!, REQUEST_CODE, payload) + ) { + purchaseFlowBegan { + // Bazaar's billing screen has opened successfully + paymentCallback?.onStart() + } + failedToBeginFlow { throwable -> + // Failed to open Bazaar's billing screen + paymentCallback?.onFailure(throwable.message, throwable.stackTrace.joinToString("\n")) + finish() + } + } + } + + private fun subscribeProduct() { + PoolakeyKotlinBridge.payment.subscribeProduct( + this@PaymentActivity, + PurchaseRequest(productId!!, REQUEST_CODE, payload) + ) { + purchaseFlowBegan { + // Bazaar's billing screen has opened successfully + paymentCallback?.onStart() + } + failedToBeginFlow { throwable -> + // Failed to open Bazaar's billing screen + paymentCallback?.onFailure(throwable.message, throwable.stackTrace.joinToString("\n")) + finish() + } + } + } + + private fun initArgs() { + productId = intent.extras?.getString(KEY_PRODUCT_ID) + payload = intent.extras?.getString(KEY_PAYLOAD) + command = Command.valueOf(requireNotNull(intent.extras?.getString(KEY_COMMAND))) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + PoolakeyKotlinBridge.payment.onActivityResult(requestCode, resultCode, data) { + purchaseSucceed { purchaseInfo -> + // User purchased the product + paymentCallback?.onSuccess( + purchaseInfo.orderId, + purchaseInfo.purchaseToken, + purchaseInfo.payload, + purchaseInfo.packageName, + purchaseInfo.purchaseState.ordinal, + purchaseInfo.purchaseTime, + purchaseInfo.productId, + purchaseInfo.originalJson, + purchaseInfo.dataSignature + ) + finish() + } + purchaseCanceled { + // User canceled the purchase + paymentCallback?.onCancel() + finish() + } + purchaseFailed { throwable -> + paymentCallback?.onFailure(throwable.message, throwable.stackTrace.joinToString("\n")) + finish() + } + } + } + + override fun onDestroy() { + super.onDestroy(); + paymentCallback = null + } + + companion object { + + private const val REQUEST_CODE: Int = 1000 + private const val KEY_PRODUCT_ID = "productId" + private const val KEY_PAYLOAD = "payload" + private const val KEY_COMMAND = "command" + var paymentCallback: PaymentCallback? = null + + @JvmStatic + fun start( + activity: Activity, + command: Command, + productId: String, + callback: PaymentCallback, + payload: String? + ) { + paymentCallback = callback + val intent = Intent(activity, PaymentActivity::class.java) + intent.putExtra(KEY_PRODUCT_ID, productId) + intent.putExtra(KEY_PAYLOAD, payload) + intent.putExtra(KEY_COMMAND, command.name) + activity.startActivity(intent) + } + } + + enum class Command { + PurchaseProduct, + Subscribe + } +} \ No newline at end of file diff --git a/android/src/main/java/com/farsitel/bazaar/PoolakeyBridge.java b/android/src/main/java/com/farsitel/bazaar/PoolakeyBridge.java new file mode 100644 index 0000000..6288e25 --- /dev/null +++ b/android/src/main/java/com/farsitel/bazaar/PoolakeyBridge.java @@ -0,0 +1,76 @@ +package com.farsitel.bazaar; + +import android.app.Activity; +import android.util.Log; + +import com.farsitel.bazaar.callback.ConnectionCallback; +import com.farsitel.bazaar.callback.ConsumeCallback; +import com.farsitel.bazaar.callback.PaymentCallback; +import com.farsitel.bazaar.callback.SKUDetailsCallback; + +import java.lang.reflect.Field; + +public class PoolakeyBridge { + public static final String TAG = "PoolakeyBridge"; + private static PoolakeyBridge instance; + + private Class mUnityPlayerClass; + private Field mUnityPlayerActivityField; + + private PoolakeyBridge() { + try { + // Using reflection to remove reference to Unity library. + mUnityPlayerClass = Class.forName("com.unity3d.player.UnityPlayer"); + mUnityPlayerActivityField = mUnityPlayerClass.getField("currentActivity"); + } catch (ClassNotFoundException e) { + Log.i(TAG, "Could not find UnityPlayer class: " + e.getMessage()); + } catch (NoSuchFieldException e) { + Log.i(TAG, "Could not find currentActivity field: " + e.getMessage()); + } catch (Exception e) { + Log.i(TAG, "Unknown exception occurred locating UnitySendMessage(): " + e.getMessage()); + } + } + + public static PoolakeyBridge getInstance() { + if (instance == null) { + instance = new PoolakeyBridge(); + } + return instance; + } + + private Activity getCurrentActivity() { + if (mUnityPlayerActivityField != null) + try { + Activity activity = (Activity) mUnityPlayerActivityField.get(mUnityPlayerClass); + if (activity == null) + Log.e(TAG, "The Unity Activity does not exist. This could be due to a low memory situation"); + return activity; + } catch (Exception e) { + Log.i(TAG, "Error getting currentActivity: " + e.getMessage()); + } + return null; + } + + public void connect(String rsaPublicKey, ConnectionCallback callback) { + PoolakeyKotlinBridge.INSTANCE.connect(getCurrentActivity(), rsaPublicKey, callback); + } + + public void disconnect() { + PoolakeyKotlinBridge.INSTANCE.disconnect(); + } + + public void getSkuDetails(String type, String productId, SKUDetailsCallback callback) { + PoolakeyKotlinBridge.INSTANCE.getSkuDetails(type, productId, callback); + } + + public void purchase(String type, String productId, String payload, PaymentCallback callback) { + PaymentActivity.Command cmd = PaymentActivity.Command.PurchaseProduct; + if (!type.equalsIgnoreCase("inApp")) + cmd = PaymentActivity.Command.Subscribe; + PoolakeyKotlinBridge.INSTANCE.startActivity(getCurrentActivity(), cmd, callback, productId, payload); + } + + public void consume(String token, ConsumeCallback callback) { + PoolakeyKotlinBridge.INSTANCE.consume(token, callback); + } +} diff --git a/android/src/main/java/com/farsitel/bazaar/PoolakeyKotlinBridge.kt b/android/src/main/java/com/farsitel/bazaar/PoolakeyKotlinBridge.kt new file mode 100644 index 0000000..7909109 --- /dev/null +++ b/android/src/main/java/com/farsitel/bazaar/PoolakeyKotlinBridge.kt @@ -0,0 +1,92 @@ +package com.farsitel.bazaar + +import android.app.Activity +import android.content.Context +import com.farsitel.bazaar.callback.ConnectionCallback +import com.farsitel.bazaar.callback.ConsumeCallback +import com.farsitel.bazaar.callback.PaymentCallback +import com.farsitel.bazaar.callback.SKUDetailsCallback +import ir.cafebazaar.poolakey.Connection +import ir.cafebazaar.poolakey.ConnectionState +import ir.cafebazaar.poolakey.Payment +import ir.cafebazaar.poolakey.config.PaymentConfiguration +import ir.cafebazaar.poolakey.config.SecurityCheck + +object PoolakeyKotlinBridge { + lateinit var payment: Payment + lateinit var connection: Connection + + fun connect(context: Context, rsaPublicKey: String?, callback: ConnectionCallback) { + val securityCheck = if (rsaPublicKey != null) { + SecurityCheck.Enable(rsaPublicKey) + } else { + SecurityCheck.Disable + } + val paymentConfig = PaymentConfiguration(localSecurityCheck = securityCheck) + payment = Payment(context = context, config = paymentConfig) + connection = payment.connect { + connectionFailed{ throwable -> callback.onFailure(throwable.message, throwable.stackTrace.joinToString { "\n" }) } + connectionSucceed { + callback.onConnect() + } + disconnected { + callback.onDisconnect() + } + } + } + + fun disconnect() { + connection.disconnect(); + } + + + fun getSkuDetails(type: String, productId: String, callback: SKUDetailsCallback) { + if (connection.getState() != ConnectionState.Connected) { + callback.onFailure("Connection not found.", "In order to getting ske details, connect to Poolakey!") + return + } + when (type) { + "inApp" -> + payment.getInAppSkuDetails(skuIds = listOf(productId)) { + getSkuDetailsSucceed(callback::onSuccess) + getSkuDetailsFailed{ throwable -> callback.onFailure(throwable.message, throwable.stackTrace.joinToString { "\n" }) } + } + else -> + payment.getSubscriptionSkuDetails(skuIds = listOf(productId)) { + getSkuDetailsSucceed(callback::onSuccess) + getSkuDetailsFailed{ throwable -> callback.onFailure(throwable.message, throwable.stackTrace.joinToString { "\n" }) } + } + } + } + + fun startActivity( + activity: Activity, + command: PaymentActivity.Command, + callback: PaymentCallback, + productId: String, + payload: String + ) { + if (connection.getState() != ConnectionState.Connected) { + callback.onFailure("Connection not found.", "In order to purchasing, connect to Poolakey!") + return + } + PaymentActivity.start( + activity, + command, + productId, + callback, + payload + ) + } + + fun consume(purchaseToken: String, callback: ConsumeCallback) { + if (connection.getState() != ConnectionState.Connected) { + callback.onFailure("Connection not found.", "In order to consumption, connect to Poolakey!") + return + } + payment.consumeProduct(purchaseToken) { + consumeSucceed(callback::onSuccess) + consumeFailed { throwable -> callback.onFailure(throwable.message, throwable.stackTrace.joinToString { "\n" }) } + } + } +} \ No newline at end of file diff --git a/android/src/main/java/com/farsitel/bazaar/callback/ConnectionCallback.java b/android/src/main/java/com/farsitel/bazaar/callback/ConnectionCallback.java new file mode 100644 index 0000000..19ed031 --- /dev/null +++ b/android/src/main/java/com/farsitel/bazaar/callback/ConnectionCallback.java @@ -0,0 +1,7 @@ +package com.farsitel.bazaar.callback; + +public interface ConnectionCallback { + void onConnect(); + void onDisconnect(); + void onFailure(String message, String stackTrace); +} \ No newline at end of file diff --git a/android/src/main/java/com/farsitel/bazaar/callback/ConsumeCallback.java b/android/src/main/java/com/farsitel/bazaar/callback/ConsumeCallback.java new file mode 100644 index 0000000..6241452 --- /dev/null +++ b/android/src/main/java/com/farsitel/bazaar/callback/ConsumeCallback.java @@ -0,0 +1,6 @@ +package com.farsitel.bazaar.callback; + +public interface ConsumeCallback { + void onSuccess(); + void onFailure(String message, String stackTrace); +} diff --git a/android/src/main/java/com/farsitel/bazaar/callback/PaymentCallback.java b/android/src/main/java/com/farsitel/bazaar/callback/PaymentCallback.java new file mode 100644 index 0000000..c7cac39 --- /dev/null +++ b/android/src/main/java/com/farsitel/bazaar/callback/PaymentCallback.java @@ -0,0 +1,8 @@ +package com.farsitel.bazaar.callback; + +public interface PaymentCallback { + void onStart(); + void onCancel(); + void onSuccess(String orderId, String purchaseToken, String payload, String packageName, int purchaseState, long purchaseTime, String productId, String originalJson, String dataSignature); + void onFailure(String message, String stackTrace); +} diff --git a/android/src/main/java/com/farsitel/bazaar/callback/SKUDetailsCallback.java b/android/src/main/java/com/farsitel/bazaar/callback/SKUDetailsCallback.java new file mode 100644 index 0000000..e9819dc --- /dev/null +++ b/android/src/main/java/com/farsitel/bazaar/callback/SKUDetailsCallback.java @@ -0,0 +1,10 @@ +package com.farsitel.bazaar.callback; + +import java.util.List; + +import ir.cafebazaar.poolakey.entity.SkuDetails; + +public interface SKUDetailsCallback { + void onSuccess(List data); + void onFailure(String message, String stackTrace); +} diff --git a/android/src/test/java/com/farsitel/bazaar/ExampleUnitTest.kt b/android/src/test/java/com/farsitel/bazaar/ExampleUnitTest.kt new file mode 100644 index 0000000..fb9c9e5 --- /dev/null +++ b/android/src/test/java/com/farsitel/bazaar/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.farsitel.bazaar + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/images/Auto-resulotion.png b/images/Auto-resulotion.png new file mode 100644 index 0000000..5edee28 Binary files /dev/null and b/images/Auto-resulotion.png differ diff --git a/images/Poolakey-unity.jpg b/images/Poolakey-unity.jpg new file mode 100644 index 0000000..07b2502 Binary files /dev/null and b/images/Poolakey-unity.jpg differ diff --git a/images/Unity-package.png b/images/Unity-package.png new file mode 100644 index 0000000..66054a7 Binary files /dev/null and b/images/Unity-package.png differ diff --git a/.gitignore b/unity/.gitignore similarity index 100% rename from .gitignore rename to unity/.gitignore diff --git a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md b/unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/CHANGELOG.md rename to unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md diff --git a/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll rename to unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll diff --git a/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.165.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.165.dll old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.165.dll rename to unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.165.dll diff --git a/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.165.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.165.dll old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.165.dll rename to unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.165.dll diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll rename to unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.165.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.165.dll old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.165.dll rename to unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.165.dll diff --git a/Assets/ExternalDependencyManager/Editor/LICENSE b/unity/Assets/ExternalDependencyManager/Editor/LICENSE old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/LICENSE rename to unity/Assets/ExternalDependencyManager/Editor/LICENSE diff --git a/Assets/ExternalDependencyManager/Editor/README.md b/unity/Assets/ExternalDependencyManager/Editor/README.md old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/README.md rename to unity/Assets/ExternalDependencyManager/Editor/README.md diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.165_manifest.txt b/unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.165_manifest.txt old mode 100755 new mode 100644 similarity index 100% rename from Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.165_manifest.txt rename to unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.165_manifest.txt diff --git a/Assets/PluginVersion.cs b/unity/Assets/PluginVersion.cs similarity index 100% rename from Assets/PluginVersion.cs rename to unity/Assets/PluginVersion.cs diff --git a/Assets/Poolakey/Demo/DemoScene.unity b/unity/Assets/Poolakey/Demo/DemoScene.unity similarity index 89% rename from Assets/Poolakey/Demo/DemoScene.unity rename to unity/Assets/Poolakey/Demo/DemoScene.unity index 5a6663c..28dbf77 100644 --- a/Assets/Poolakey/Demo/DemoScene.unity +++ b/unity/Assets/Poolakey/Demo/DemoScene.unity @@ -332,85 +332,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 46620564} m_CullTransparentMesh: 0 ---- !u!1 &54525781 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 54525782} - - component: {fileID: 54525784} - - component: {fileID: 54525783} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &54525782 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 54525781} - 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_Children: [] - m_Father: {fileID: 942527682} - m_RootOrder: 0 - 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 &54525783 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 54525781} - 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.26415092, g: 0.26415092, b: 0.26415092, 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: 30 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 41 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Gem 1 Purchase ---- !u!222 &54525784 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 54525781} - m_CullTransparentMesh: 0 --- !u!1 &65512612 GameObject: m_ObjectHideFlags: 0 @@ -544,82 +465,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 65512612} m_CullTransparentMesh: 0 ---- !u!1 &402571137 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 402571138} - - component: {fileID: 402571140} - - component: {fileID: 402571139} - m_Layer: 5 - m_Name: Poolakey - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &402571138 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 402571137} - 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_Children: - - {fileID: 659579307} - - {fileID: 942527682} - - {fileID: 1831972368} - - {fileID: 1551777331} - - {fileID: 562756172} - m_Father: {fileID: 1478282524} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -10.999878, y: -217} - m_SizeDelta: {x: -56.2, y: 93} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &402571139 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 402571137} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 5 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!222 &402571140 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 402571137} - m_CullTransparentMesh: 0 --- !u!1 &488007352 GameObject: m_ObjectHideFlags: 0 @@ -632,7 +477,7 @@ GameObject: - component: {fileID: 488007355} - component: {fileID: 488007354} m_Layer: 5 - m_Name: Text (1) + m_Name: VersionText m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -699,7 +544,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 488007352} m_CullTransparentMesh: 0 ---- !u!1 &526519379 +--- !u!1 &797998921 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -707,78 +552,89 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 526519380} - - component: {fileID: 526519382} - - component: {fileID: 526519381} + - component: {fileID: 797998922} + - component: {fileID: 797998925} + - component: {fileID: 797998924} + - component: {fileID: 797998923} m_Layer: 5 - m_Name: Text + m_Name: Viewport m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &526519380 +--- !u!224 &797998922 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 526519379} + m_GameObject: {fileID: 797998921} 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_Children: [] - m_Father: {fileID: 1831972368} + m_Children: + - {fileID: 1222095547} + m_Father: {fileID: 962587538} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &526519381 + m_Pivot: {x: 0, y: 1} +--- !u!114 &797998923 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 526519379} + m_GameObject: {fileID: 797998921} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, a: 1} + 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_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 30 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 41 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Gem 1 Consume ---- !u!222 &526519382 + m_Sprite: {fileID: 10917, 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 &797998924 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 526519379} + m_GameObject: {fileID: 797998921} m_CullTransparentMesh: 0 ---- !u!1 &562756171 +--- !u!114 &797998925 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 797998921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &814206080 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -786,103 +642,129 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 562756172} - - component: {fileID: 562756175} - - component: {fileID: 562756174} - - component: {fileID: 562756173} + - component: {fileID: 814206081} m_Layer: 5 - m_Name: PurchaseList + m_Name: Sliding Area m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &562756172 +--- !u!224 &814206081 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 562756171} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 814206080} + 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_Children: - - {fileID: 2124225835} - m_Father: {fileID: 402571138} - m_RootOrder: 4 + - {fileID: 1475558599} + m_Father: {fileID: 46620565} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &562756173 +--- !u!1 &901594886 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 901594889} + - component: {fileID: 901594888} + - component: {fileID: 901594887} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &901594887 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 562756171} + m_GameObject: {fileID: 901594886} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, 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: Highlighted - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 562756174} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1478282520} - m_TargetAssemblyTypeName: - m_MethodName: GetPurchases - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &562756174 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &901594888 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 562756171} + m_GameObject: {fileID: 901594886} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &901594889 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 901594886} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &948878754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 948878758} + - component: {fileID: 948878757} + - component: {fileID: 948878755} + - component: {fileID: 948878756} + m_Layer: 5 + m_Name: ConsolText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &948878755 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 948878754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} @@ -893,25 +775,62 @@ MonoBehaviour: 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 &562756175 + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!114 &948878756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 948878754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &948878757 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 562756171} + m_GameObject: {fileID: 948878754} m_CullTransparentMesh: 0 ---- !u!1 &659579306 +--- !u!224 &948878758 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 948878754} + 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_Children: [] + m_Father: {fileID: 1222095547} + m_RootOrder: 0 + 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: 1497.724, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!1 &962587537 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -919,58 +838,59 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 659579307} - - component: {fileID: 659579309} - - component: {fileID: 659579308} - - component: {fileID: 659579310} + - component: {fileID: 962587538} + - component: {fileID: 962587541} + - component: {fileID: 962587540} + - component: {fileID: 962587539} m_Layer: 5 - m_Name: InitSDK + m_Name: Scroll View m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &659579307 +--- !u!224 &962587538 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 659579306} + m_GameObject: {fileID: 962587537} 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_Children: - - {fileID: 1274805729} - m_Father: {fileID: 402571138} - m_RootOrder: 0 + - {fileID: 797998922} + - {fileID: 46620565} + m_Father: {fileID: 1478282524} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &659579308 + m_SizeDelta: {x: 0, y: 396} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &962587539 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 659579306} + m_GameObject: {fileID: 962587537} 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_Color: {r: 0, g: 0, b: 0, a: 0.392} 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_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -980,71 +900,45 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!222 &659579309 +--- !u!222 &962587540 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 659579306} + m_GameObject: {fileID: 962587537} m_CullTransparentMesh: 0 ---- !u!114 &659579310 +--- !u!114 &962587541 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 659579306} + m_GameObject: {fileID: 962587537} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, 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: Highlighted - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 659579308} - m_OnClick: + m_Content: {fileID: 1222095547} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 797998922} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 46620566} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1478282520} - m_TargetAssemblyTypeName: PoolakeyExample, Assembly-CSharp - m_MethodName: Connect - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!1 &735449358 + m_Calls: [] +--- !u!1 &1222095546 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1052,78 +946,152 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 735449359} - - component: {fileID: 735449361} - - component: {fileID: 735449360} + - component: {fileID: 1222095547} + - component: {fileID: 1222095549} + - component: {fileID: 1222095548} m_Layer: 5 - m_Name: Text + m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &735449359 +--- !u!224 &1222095547 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 735449358} + m_GameObject: {fileID: 1222095546} 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_Children: [] - m_Father: {fileID: 1551777331} + m_Children: + - {fileID: 948878758} + m_Father: {fileID: 797998922} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: -0.000004615777, y: 0.000035887217} m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1222095548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222095546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &1222095549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222095546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1369244106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1369244107} + - component: {fileID: 1369244109} + - component: {fileID: 1369244108} + m_Layer: 5 + m_Name: CafebazaarLogo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1369244107 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369244106} + 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_Children: [] + m_Father: {fileID: 1478282524} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -0.5, y: -44} + m_SizeDelta: {x: 119.3, y: 57.599976} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &735449360 +--- !u!114 &1369244108 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 735449358} + m_GameObject: {fileID: 1369244106} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, a: 1} - m_RaycastTarget: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 30 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 41 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Subscibe ---- !u!222 &735449361 + m_Sprite: {fileID: 21300000, guid: 587bece7f5947f2429793afe0202a271, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1369244109 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 735449358} + m_GameObject: {fileID: 1369244106} m_CullTransparentMesh: 0 ---- !u!1 &797998921 +--- !u!1 &1475558598 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1131,44 +1099,42 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 797998922} - - component: {fileID: 797998925} - - component: {fileID: 797998924} - - component: {fileID: 797998923} + - component: {fileID: 1475558599} + - component: {fileID: 1475558601} + - component: {fileID: 1475558600} m_Layer: 5 - m_Name: Viewport + m_Name: Handle m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &797998922 +--- !u!224 &1475558599 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 797998921} + m_GameObject: {fileID: 1475558598} 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_Children: - - {fileID: 1222095547} - m_Father: {fileID: 962587538} + m_Children: [] + m_Father: {fileID: 814206081} m_RootOrder: 0 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, y: 1} ---- !u!114 &797998923 + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1475558600 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 797998921} + m_GameObject: {fileID: 1475558598} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -1182,7 +1148,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -1192,28 +1158,15 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!222 &797998924 +--- !u!222 &1475558601 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 797998921} + m_GameObject: {fileID: 1475558598} m_CullTransparentMesh: 0 ---- !u!114 &797998925 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 797998921} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 0 ---- !u!1 &814206080 +--- !u!1 &1478282519 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1221,35 +1174,116 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 814206081} + - component: {fileID: 1478282524} + - component: {fileID: 1478282523} + - component: {fileID: 1478282522} + - component: {fileID: 1478282521} + - component: {fileID: 1478282520} m_Layer: 5 - m_Name: Sliding Area + m_Name: MainPanel m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &814206081 +--- !u!114 &1478282520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1478282519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ef68ec4d8afa84b8f924191f02ef19f0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1478282521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1478282519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1478282522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1478282519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1024, y: 1024} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1478282523 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1478282519} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1478282524 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 814206080} + m_GameObject: {fileID: 1478282519} 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_LocalScale: {x: 0, y: 0, z: 0} m_Children: - - {fileID: 1475558599} - m_Father: {fileID: 46620565} - m_RootOrder: 0 + - {fileID: 1587869380155104686} + - {fileID: 1369244107} + - {fileID: 962587538} + - {fileID: 488007353} + - {fileID: 65512613} + m_Father: {fileID: 0} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -20, y: -20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &901594886 + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1858509431 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1257,65 +1291,78 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 901594889} - - component: {fileID: 901594888} - - component: {fileID: 901594887} - m_Layer: 0 - m_Name: EventSystem + - component: {fileID: 1858509432} + - component: {fileID: 1858509434} + - component: {fileID: 1858509433} + m_Layer: 5 + m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &901594887 -MonoBehaviour: +--- !u!224 &1858509432 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 901594886} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &901594888 + m_GameObject: {fileID: 1858509431} + 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_Children: [] + m_Father: {fileID: 65512613} + m_RootOrder: 0 + 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 &1858509433 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 901594886} + m_GameObject: {fileID: 1858509431} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &901594889 -Transform: + m_Material: {fileID: 0} + m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, 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: 28 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 41 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Clear +--- !u!222 &1858509434 +CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 901594886} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &942527681 + m_GameObject: {fileID: 1858509431} + m_CullTransparentMesh: 0 +--- !u!1 &1587869379013910476 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1323,82 +1370,103 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 942527682} - - component: {fileID: 942527684} - - component: {fileID: 942527683} - - component: {fileID: 942527685} + - component: {fileID: 1587869379013910477} + - component: {fileID: 1587869379013910479} + - component: {fileID: 1587869379013910478} m_Layer: 5 - m_Name: Gem1 + m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &942527682 +--- !u!224 &1587869379013910477 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 942527681} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 1587869379013910476} + 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_Children: - - {fileID: 54525782} - m_Father: {fileID: 402571138} - m_RootOrder: 1 + m_Children: [] + m_Father: {fileID: 1587869380416603015} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {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 &942527683 +--- !u!114 &1587869379013910478 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 942527681} + m_GameObject: {fileID: 1587869379013910476} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, 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 &942527684 + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 41 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Connect +--- !u!222 &1587869379013910479 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 942527681} + m_GameObject: {fileID: 1587869379013910476} m_CullTransparentMesh: 0 ---- !u!114 &942527685 +--- !u!1 &1587869379224001539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1587869379224001567} + - component: {fileID: 1587869379224001566} + - component: {fileID: 1587869379224001565} + - component: {fileID: 1587869379224001564} + m_Layer: 5 + m_Name: Subscribe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1587869379224001564 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 942527681} + m_GameObject: {fileID: 1587869379224001539} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -1432,13 +1500,13 @@ MonoBehaviour: m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 942527683} + m_TargetGraphic: {fileID: 1587869379224001565} m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1478282520} + - m_Target: {fileID: 0} m_TargetAssemblyTypeName: PoolakeyExample, Assembly-CSharp - m_MethodName: PurchaseProduct + m_MethodName: SubscribeProduct m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -1448,35 +1516,16 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 ---- !u!1 &948878754 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 948878758} - - component: {fileID: 948878757} - - component: {fileID: 948878755} - - component: {fileID: 948878756} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &948878755 +--- !u!114 &1587869379224001565 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 948878754} + m_GameObject: {fileID: 1587869379224001539} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} @@ -1487,62 +1536,45 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 0 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: ---- !u!114 &948878756 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 948878754} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &948878757 + 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 &1587869379224001566 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 948878754} + m_GameObject: {fileID: 1587869379224001539} m_CullTransparentMesh: 0 ---- !u!224 &948878758 +--- !u!224 &1587869379224001567 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 948878754} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 1587869379224001539} + 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_Children: [] - m_Father: {fileID: 1222095547} - m_RootOrder: 0 + m_Children: + - {fileID: 1587869380626477859} + m_Father: {fileID: 1587869380155104686} + m_RootOrder: 3 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: 1441.0088, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!1 &962587537 + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1587869379504262179 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1550,59 +1582,58 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 962587538} - - component: {fileID: 962587541} - - component: {fileID: 962587540} - - component: {fileID: 962587539} + - component: {fileID: 1587869379504262204} + - component: {fileID: 1587869379504262206} + - component: {fileID: 1587869379504262205} + - component: {fileID: 1587869379504262207} m_Layer: 5 - m_Name: Scroll View + m_Name: Consume m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &962587538 +--- !u!224 &1587869379504262204 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 962587537} + m_GameObject: {fileID: 1587869379504262179} 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_Children: - - {fileID: 797998922} - - {fileID: 46620565} - m_Father: {fileID: 1478282524} - m_RootOrder: 1 + - {fileID: 1587869380279135864} + m_Father: {fileID: 1587869380155104686} + m_RootOrder: 2 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: -261.1} - m_SizeDelta: {x: 0, y: -522} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &962587539 +--- !u!114 &1587869379504262205 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 962587537} + m_GameObject: {fileID: 1587869379504262179} 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: 0, g: 0, b: 0, a: 0.392} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -1612,45 +1643,113 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!222 &962587540 +--- !u!222 &1587869379504262206 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 962587537} + m_GameObject: {fileID: 1587869379504262179} m_CullTransparentMesh: 0 ---- !u!114 &962587541 +--- !u!114 &1587869379504262207 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 962587537} + m_GameObject: {fileID: 1587869379504262179} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: - m_Content: {fileID: 1222095547} - m_Horizontal: 0 - m_Vertical: 1 - m_MovementType: 1 - m_Elasticity: 0.1 - m_Inertia: 1 - m_DecelerationRate: 0.135 - m_ScrollSensitivity: 1 - m_Viewport: {fileID: 797998922} - m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 46620566} - m_HorizontalScrollbarVisibility: 2 - m_VerticalScrollbarVisibility: 2 - m_HorizontalScrollbarSpacing: -3 - m_VerticalScrollbarSpacing: -3 - m_OnValueChanged: + 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: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1587869379504262205} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1587869380155104681} + m_TargetAssemblyTypeName: PoolakeyExample, Assembly-CSharp + m_MethodName: Consume + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1587869379733683968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1587869379733683974} + 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.26415092, g: 0.26415092, b: 0.26415092, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] ---- !u!1 &1222095546 + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 41 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: purchase List +--- !u!222 &1587869379733683969 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1587869379733683974} + m_CullTransparentMesh: 0 +--- !u!1 &1587869379733683974 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1658,77 +1757,44 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1222095547} - - component: {fileID: 1222095549} - - component: {fileID: 1222095548} + - component: {fileID: 1587869379733683975} + - component: {fileID: 1587869379733683969} + - component: {fileID: 1587869379733683968} m_Layer: 5 - m_Name: Content + m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1222095547 +--- !u!224 &1587869379733683975 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1222095546} + m_GameObject: {fileID: 1587869379733683974} 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_Children: - - {fileID: 948878758} - m_Father: {fileID: 797998922} + m_Children: [] + m_Father: {fileID: 1587869380520777824} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} + m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.000004615777, y: 0.000035887217} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1222095548 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1222095546} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &1222095549 -MonoBehaviour: + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1587869379941113204 +CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1222095546} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1274805728 + m_GameObject: {fileID: 1587869379941113209} + m_CullTransparentMesh: 0 +--- !u!1 &1587869379941113209 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1736,9 +1802,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1274805729} - - component: {fileID: 1274805731} - - component: {fileID: 1274805730} + - component: {fileID: 1587869379941113210} + - component: {fileID: 1587869379941113204} + - component: {fileID: 1587869379941113211} m_Layer: 5 m_Name: Text m_TagString: Untagged @@ -1746,18 +1812,18 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1274805729 +--- !u!224 &1587869379941113210 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274805728} + m_GameObject: {fileID: 1587869379941113209} 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_Children: [] - m_Father: {fileID: 659579307} + m_Father: {fileID: 1587869380896503534} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1765,13 +1831,13 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1274805730 +--- !u!114 &1587869379941113211 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274805728} + m_GameObject: {fileID: 1587869379941113209} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} @@ -1790,7 +1856,7 @@ MonoBehaviour: m_FontSize: 30 m_FontStyle: 1 m_BestFit: 0 - m_MinSize: 3 + m_MinSize: 10 m_MaxSize: 41 m_Alignment: 4 m_AlignByGeometry: 0 @@ -1798,16 +1864,29 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: Connect ---- !u!222 &1274805731 + m_Text: Gem 1 Purchase +--- !u!222 &1587869380155104680 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274805728} + m_GameObject: {fileID: 1587869380155104685} m_CullTransparentMesh: 0 ---- !u!1 &1369244106 +--- !u!114 &1587869380155104681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1587869380155104685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a53fa97845622047a65db02032e1a69, type: 3} + m_Name: + m_EditorClassIdentifier: + ConsoleText: {fileID: 948878755} +--- !u!1 &1587869380155104685 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1815,149 +1894,129 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1369244107} - - component: {fileID: 1369244109} - - component: {fileID: 1369244108} + - component: {fileID: 1587869380155104686} + - component: {fileID: 1587869380155104680} + - component: {fileID: 1587869380155104687} + - component: {fileID: 1587869380155104681} m_Layer: 5 - m_Name: CafebazaarLogo + m_Name: Poolakey m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1369244107 +--- !u!224 &1587869380155104686 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1369244106} + m_GameObject: {fileID: 1587869380155104685} 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_Children: [] + m_Children: + - {fileID: 1587869380416603015} + - {fileID: 1587869380896503534} + - {fileID: 1587869379504262204} + - {fileID: 1587869379224001567} + - {fileID: 1587869380520777824} m_Father: {fileID: 1478282524} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 1} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: -0.5, y: -44} - m_SizeDelta: {x: 119.3, y: 57.599976} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1369244108 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -177.58} + m_SizeDelta: {x: 0, y: 93} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1587869380155104687 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1369244106} + m_GameObject: {fileID: 1587869380155104685} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 587bece7f5947f2429793afe0202a271, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1369244109 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1369244106} - m_CullTransparentMesh: 0 ---- !u!1 &1475558598 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1475558599} - - component: {fileID: 1475558601} - - component: {fileID: 1475558600} - m_Layer: 5 - m_Name: Handle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1475558599 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!224 &1587869380279135864 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1475558598} + m_GameObject: {fileID: 1587869380279135871} 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_Children: [] - m_Father: {fileID: 814206081} + m_Father: {fileID: 1587869379504262204} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1475558600 +--- !u!114 &1587869380279135865 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1475558598} + m_GameObject: {fileID: 1587869380279135871} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, 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 &1475558601 + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 41 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Gem 1 Consume +--- !u!222 &1587869380279135866 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1475558598} + m_GameObject: {fileID: 1587869380279135871} m_CullTransparentMesh: 0 ---- !u!1 &1478282519 +--- !u!1 &1587869380279135871 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1965,147 +2024,176 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1478282524} - - component: {fileID: 1478282523} - - component: {fileID: 1478282522} - - component: {fileID: 1478282521} - - component: {fileID: 1478282520} + - component: {fileID: 1587869380279135864} + - component: {fileID: 1587869380279135866} + - component: {fileID: 1587869380279135865} m_Layer: 5 - m_Name: MainPanel + m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1478282520 +--- !u!114 &1587869380416603008 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1478282519} + m_GameObject: {fileID: 1587869380416603014} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ef68ec4d8afa84b8f924191f02ef19f0, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: - ConsoleText: {fileID: 948878755} - Btn_InitIAB: {fileID: 659579310} - Btn_StartPurchase: {fileID: 942527685} - Btn_ConsumePurchase: {fileID: 1831972371} - Btn_subscribe: {fileID: 1551777328} - Btn_purchaseList: {fileID: 562756173} ---- !u!114 &1478282521 -MonoBehaviour: + 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 &1587869380416603009 +CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1478282519} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1478282522 + m_GameObject: {fileID: 1587869380416603014} + m_CullTransparentMesh: 0 +--- !u!114 &1587869380416603010 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1478282519} + m_GameObject: {fileID: 1587869380416603014} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1024, y: 1024} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0.5 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &1478282523 -Canvas: + 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: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1587869380416603008} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1587869380155104681} + m_TargetAssemblyTypeName: PoolakeyExample, Assembly-CSharp + m_MethodName: Connect + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &1587869380416603014 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1478282519} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &1478282524 + serializedVersion: 6 + m_Component: + - component: {fileID: 1587869380416603015} + - component: {fileID: 1587869380416603009} + - component: {fileID: 1587869380416603008} + - component: {fileID: 1587869380416603010} + m_Layer: 5 + m_Name: Connect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1587869380416603015 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1478282519} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 1587869380416603014} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 1369244107} - - {fileID: 962587538} - - {fileID: 402571138} - - {fileID: 488007353} - - {fileID: 65512613} - m_Father: {fileID: 0} - m_RootOrder: 2 + - {fileID: 1587869379013910477} + m_Father: {fileID: 1587869380155104686} + m_RootOrder: 0 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, y: 0} ---- !u!1 &1551777327 -GameObject: + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &1587869380520777824 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1551777331} - - component: {fileID: 1551777330} - - component: {fileID: 1551777329} - - component: {fileID: 1551777328} - m_Layer: 5 - m_Name: Subscribe - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1551777328 + m_GameObject: {fileID: 1587869380520777831} + 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_Children: + - {fileID: 1587869379733683975} + m_Father: {fileID: 1587869380155104686} + m_RootOrder: 4 + 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: 0.5} +--- !u!114 &1587869380520777825 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1551777327} + m_GameObject: {fileID: 1587869380520777831} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -2139,13 +2227,13 @@ MonoBehaviour: m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 1551777329} + m_TargetGraphic: {fileID: 1587869380520777826} m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1478282520} + - m_Target: {fileID: 1587869380155104681} m_TargetAssemblyTypeName: PoolakeyExample, Assembly-CSharp - m_MethodName: SubscribeProduct + m_MethodName: GetPurchaseSkuDetails m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -2155,13 +2243,13 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 ---- !u!114 &1551777329 +--- !u!114 &1587869380520777826 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1551777327} + m_GameObject: {fileID: 1587869380520777831} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -2185,35 +2273,34 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1551777330 +--- !u!222 &1587869380520777827 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1551777327} + m_GameObject: {fileID: 1587869380520777831} m_CullTransparentMesh: 0 ---- !u!224 &1551777331 -RectTransform: +--- !u!1 &1587869380520777831 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1551777327} - 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_Children: - - {fileID: 735449359} - m_Father: {fileID: 402571138} - m_RootOrder: 3 - 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: 0.5} ---- !u!1 &1831972367 + serializedVersion: 6 + m_Component: + - component: {fileID: 1587869380520777824} + - component: {fileID: 1587869380520777827} + - component: {fileID: 1587869380520777826} + - component: {fileID: 1587869380520777825} + m_Layer: 5 + m_Name: GetPurchases + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1587869380626477858 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2221,82 +2308,92 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1831972368} - - component: {fileID: 1831972370} - - component: {fileID: 1831972369} - - component: {fileID: 1831972371} + - component: {fileID: 1587869380626477859} + - component: {fileID: 1587869380626477885} + - component: {fileID: 1587869380626477884} m_Layer: 5 - m_Name: Gem1 Consume + m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1831972368 +--- !u!224 &1587869380626477859 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1831972367} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 1587869380626477858} + 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_Children: - - {fileID: 526519380} - m_Father: {fileID: 402571138} - m_RootOrder: 2 + m_Children: [] + m_Father: {fileID: 1587869379224001567} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {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 &1831972369 +--- !u!114 &1587869380626477884 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1831972367} + m_GameObject: {fileID: 1587869380626477858} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, 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 &1831972370 + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 41 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Subscibe +--- !u!222 &1587869380626477885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1587869380626477858} + m_CullTransparentMesh: 0 +--- !u!222 &1587869380896503528 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1831972367} + m_GameObject: {fileID: 1587869380896503533} m_CullTransparentMesh: 0 ---- !u!114 &1831972371 +--- !u!114 &1587869380896503529 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1831972367} + m_GameObject: {fileID: 1587869380896503533} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -2330,13 +2427,13 @@ MonoBehaviour: m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 1831972369} + m_TargetGraphic: {fileID: 1587869380896503535} m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1478282520} - m_TargetAssemblyTypeName: - m_MethodName: Gem1Consume + - m_Target: {fileID: 1587869380155104681} + m_TargetAssemblyTypeName: PoolakeyExample, Assembly-CSharp + m_MethodName: Purchase m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -2346,86 +2443,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 ---- !u!1 &1858509431 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1858509432} - - component: {fileID: 1858509434} - - component: {fileID: 1858509433} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1858509432 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1858509431} - 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_Children: [] - m_Father: {fileID: 65512613} - m_RootOrder: 0 - 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 &1858509433 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1858509431} - 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.26415092, g: 0.26415092, b: 0.26415092, 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: 28 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 41 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Clear ---- !u!222 &1858509434 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1858509431} - m_CullTransparentMesh: 0 ---- !u!1 &2124225834 +--- !u!1 &1587869380896503533 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2433,74 +2451,64 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2124225835} - - component: {fileID: 2124225837} - - component: {fileID: 2124225836} + - component: {fileID: 1587869380896503534} + - component: {fileID: 1587869380896503528} + - component: {fileID: 1587869380896503535} + - component: {fileID: 1587869380896503529} m_Layer: 5 - m_Name: Text + m_Name: Purchase m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2124225835 +--- !u!224 &1587869380896503534 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2124225834} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 1587869380896503533} + 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_Children: [] - m_Father: {fileID: 562756172} - m_RootOrder: 0 + m_Children: + - {fileID: 1587869379941113210} + m_Father: {fileID: 1587869380155104686} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2124225836 +--- !u!114 &1587869380896503535 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2124225834} + m_GameObject: {fileID: 1587869380896503533} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, a: 1} + 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_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 30 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 41 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: purchase List ---- !u!222 &2124225837 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2124225834} - m_CullTransparentMesh: 0 + 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 diff --git a/unity/Assets/Poolakey/Demo/PoolakeyExample.cs b/unity/Assets/Poolakey/Demo/PoolakeyExample.cs new file mode 100644 index 0000000..547826e --- /dev/null +++ b/unity/Assets/Poolakey/Demo/PoolakeyExample.cs @@ -0,0 +1,78 @@ +using UnityEngine; +using Poolakey.Scripts; +using UnityEngine.UI; +using Poolakey; +using Poolakey.Scripts.Data; + +public class PoolakeyExample : MonoBehaviour +{ + public Text ConsoleText; + + private Payment payment; + private PurchaseInfo purchase; + + void Start() + { + Log("Poolakey Plugin Version: " + PluginVersion.VersionString); + + // TODO: SecurityCheck.Enable("Your RSA key"); + SecurityCheck securityCheck = SecurityCheck.Disable(); + PaymentConfiguration paymentConfiguration = new PaymentConfiguration(securityCheck); + payment = new Payment(paymentConfiguration); + } + + public async void Connect() + { + var result = await payment.Connect(); + Log($"{result.message}, {result.stackTrace}"); + } + + public async void GetPurchaseSkuDetails() + { + var result = await payment.GetSkuDetails("productID"); + if (result.status == Status.Success) + { + foreach (var sku in result.data) + { + Log(sku.ToString()); + } + } + } + + public async void Purchase() + { + var result = await payment.Purchase("productID"); + Log($"{result.message}, {result.stackTrace}"); + if (result.status == Status.Success) + { + purchase = result.data; + Log(purchase.ToString()); + } + } + public async void Subscribe() + { + var result = await payment.Purchase("productID", Payment.Type.subscription); + Log($"{result.message}, {result.stackTrace}"); + if (result.status == Status.Success) + { + purchase = result.data; + Log(purchase.ToString()); + } + } + + public async void Consume() + { + var result = await payment.Consume(purchase.purchaseToken); + Log($"{result.message}, {result.stackTrace}"); + } + + public void Log(string message) + { + ConsoleText.text += message + "\n"; + } + + void OnApplicationQuit() + { + payment.Disconnect(); + } +} diff --git a/unity/Assets/Poolakey/Plugins/poolakeyunitybridge.aar b/unity/Assets/Poolakey/Plugins/poolakeyunitybridge.aar new file mode 100644 index 0000000..119bfcf Binary files /dev/null and b/unity/Assets/Poolakey/Plugins/poolakeyunitybridge.aar differ diff --git a/unity/Assets/Poolakey/Scripts/Callbacks/BaseCallbackProxy.cs b/unity/Assets/Poolakey/Scripts/Callbacks/BaseCallbackProxy.cs new file mode 100644 index 0000000..cb92967 --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Callbacks/BaseCallbackProxy.cs @@ -0,0 +1,19 @@ +using System.Threading.Tasks; +using Poolakey.Scripts.Data; +using UnityEngine; + +namespace Poolakey.Scripts.Callbacks +{ + public class BaseCallbackProxy : AndroidJavaProxy + { + protected Result result; + public BaseCallbackProxy(string address) : base(address) { } + + public async Task WaitForResult() + { + while (result == null) + await Task.Delay(100); + return result; + } + } +} \ No newline at end of file diff --git a/unity/Assets/Poolakey/Scripts/Callbacks/ConnectionCallbackProxy.cs b/unity/Assets/Poolakey/Scripts/Callbacks/ConnectionCallbackProxy.cs new file mode 100644 index 0000000..ba128ab --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Callbacks/ConnectionCallbackProxy.cs @@ -0,0 +1,24 @@ +using Poolakey.Scripts.Data; + +namespace Poolakey.Scripts.Callbacks +{ + public class ConnectionCallbackProxy : BaseCallbackProxy + { + public ConnectionCallbackProxy() : base("com.farsitel.bazaar.callback.ConnectionCallback") { } + + void onConnect() + { + result = new Result(Status.Success, "Connection Succeed."); + } + + void onDisconnect() + { + result = new Result(Status.Disconnect, "Connection Disconnect."); + } + + void onFailure(string message, string stackTrace) + { + result = new Result(Status.Failure, message, stackTrace); + } + } +} \ No newline at end of file diff --git a/unity/Assets/Poolakey/Scripts/Callbacks/ConsumeCallbackProxy.cs b/unity/Assets/Poolakey/Scripts/Callbacks/ConsumeCallbackProxy.cs new file mode 100644 index 0000000..03d3f62 --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Callbacks/ConsumeCallbackProxy.cs @@ -0,0 +1,19 @@ +using Poolakey.Scripts.Data; + +namespace Poolakey.Scripts.Callbacks +{ + public class ConsumeCallbackProxy : BaseCallbackProxy + { + public ConsumeCallbackProxy() : base("com.farsitel.bazaar.callback.ConsumeCallback") { } + + void onSuccess() + { + result = new Result(Status.Success, "Consumption Succeed."); + } + + void onFailure(string message, string stackTrace) + { + result = new Result(Status.Failure, message, stackTrace); + } + } +} \ No newline at end of file diff --git a/unity/Assets/Poolakey/Scripts/Callbacks/PaymentCallbackProxy.cs b/unity/Assets/Poolakey/Scripts/Callbacks/PaymentCallbackProxy.cs new file mode 100644 index 0000000..71de9e0 --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Callbacks/PaymentCallbackProxy.cs @@ -0,0 +1,36 @@ +using System; +using Poolakey.Scripts.Data; + +namespace Poolakey.Scripts.Callbacks +{ + public class PaymentCallbackProxy : BaseCallbackProxy + { + private Action onStartAction; + + public PaymentCallbackProxy(Action onStartAction) : base("com.farsitel.bazaar.callback.PaymentCallback") + { + this.onStartAction = onStartAction; + } + + void onStart() + { + onStartAction?.Invoke(new PurchaseResult(Status.Start, null, "Purchase flow started.")); + } + + void onCancel() + { + result = new PurchaseResult(Status.Cancel, null, "Purchase flow canceled."); + } + + void onSuccess(string orderId, string purchaseToken, string payload, string packageName, int purchaseState, long purchaseTime, string productId, string originalJson, string dataSignature) + { + var data = new PurchaseInfo { orderId = orderId, purchaseToken = purchaseToken, payload = payload, packageName = packageName, purchaseState = (PurchaseInfo.State)purchaseState, purchaseTime = purchaseTime, productId = productId, originalJson = originalJson, dataSignature = dataSignature }; + result = new PurchaseResult(Status.Success, data, "Purchase Succeed."); + } + + void onFailure(string message, string stackTrace) + { + result = new PurchaseResult(Status.Failure, null, message, stackTrace); + } + } +} \ No newline at end of file diff --git a/unity/Assets/Poolakey/Scripts/Callbacks/SKUDetailsCallbackProxy.cs b/unity/Assets/Poolakey/Scripts/Callbacks/SKUDetailsCallbackProxy.cs new file mode 100644 index 0000000..700ef43 --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Callbacks/SKUDetailsCallbackProxy.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using Poolakey.Scripts.Data; +using UnityEngine; + +namespace Poolakey.Scripts.Callbacks +{ + public class SKUDetailsCallbackProxy : BaseCallbackProxy + { + public SKUDetailsCallbackProxy() : base("com.farsitel.bazaar.callback.SKUDetailsCallback"){} + + void onSuccess(AndroidJavaObject purchaseEntity) + { + var list = new List(); + var size = purchaseEntity.Call("size"); + for (int index = 0; index < size; index++) + { + list.Add(new SKUDetails(purchaseEntity.Call("get", index))); + } + result = new SKUDetailsResult(Status.Success, list, "Fetch SKU details completed."); + } + + void onFailure(string message, string stackTrace) + { + result = new SKUDetailsResult(Status.Failure, null, message, stackTrace); + } + } +} \ No newline at end of file diff --git a/unity/Assets/Poolakey/Scripts/Data/PurchaseInfo.cs b/unity/Assets/Poolakey/Scripts/Data/PurchaseInfo.cs new file mode 100644 index 0000000..73e2873 --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Data/PurchaseInfo.cs @@ -0,0 +1,13 @@ +using UnityEngine; +namespace Poolakey.Scripts.Data +{ + public class PurchaseInfo + { + public enum State { Purchased = 0, Refunded = 1 } + public string orderId, purchaseToken, payload, packageName, productId, originalJson, dataSignature; + public State purchaseState; + public long purchaseTime; + + override public string ToString() => $"orderId: {orderId}, purchaseToken: {purchaseToken}, productId: {productId}, purchaseState: {purchaseState}, purchaseTime: {purchaseTime}"; + } +} \ No newline at end of file diff --git a/unity/Assets/Poolakey/Scripts/Data/Result.cs b/unity/Assets/Poolakey/Scripts/Data/Result.cs new file mode 100644 index 0000000..bc0675c --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Data/Result.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; + +namespace Poolakey.Scripts.Data +{ + public enum Status { Success, Start, Cancel, Disconnect, Failure, Unknown } + public class Result + { + public Status status; + public string message; + public string stackTrace; + + public Result(Status status, string message, string stackTrace = null) + { + this.status = status; + this.message = message; + this.stackTrace = stackTrace; + } + } + + public class SKUDetailsResult : Result + { + public List data; + public SKUDetailsResult(Status status, List data, string message, string stackTrace = null) : base(status, message, stackTrace) + { + this.data = data; + } + } + public class PurchaseResult : Result + { + public PurchaseInfo data; + public PurchaseResult(Status status, PurchaseInfo data, string message, string stackTrace = null) : base(status, message, stackTrace) + { + this.data = data; + } + } +} \ No newline at end of file diff --git a/unity/Assets/Poolakey/Scripts/Data/SKUDetails.cs b/unity/Assets/Poolakey/Scripts/Data/SKUDetails.cs new file mode 100644 index 0000000..f8044d4 --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Data/SKUDetails.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace Poolakey.Scripts.Data +{ + public class SKUDetails + { + public string sku, type, title, price, description; + public SKUDetails(AndroidJavaObject entity) + { + this.sku = entity.Get("sku"); + this.type = entity.Get("type"); + this.title = entity.Get("title"); + this.price = entity.Get("price"); + this.description = entity.Get("description"); + } + + override public string ToString() => $"sku: {sku}, type: {type}, title: {title}, price: {price}, description: {description}"; + } +} \ No newline at end of file diff --git a/Assets/Poolakey/Scripts/Editor/CafeBazaarPlugin_Dependencies.xml b/unity/Assets/Poolakey/Scripts/Editor/CafeBazaarPlugin_Dependencies.xml similarity index 100% rename from Assets/Poolakey/Scripts/Editor/CafeBazaarPlugin_Dependencies.xml rename to unity/Assets/Poolakey/Scripts/Editor/CafeBazaarPlugin_Dependencies.xml diff --git a/unity/Assets/Poolakey/Scripts/Payment.cs b/unity/Assets/Poolakey/Scripts/Payment.cs new file mode 100644 index 0000000..162260a --- /dev/null +++ b/unity/Assets/Poolakey/Scripts/Payment.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using Poolakey.Scripts.Callbacks; +using System.Threading.Tasks; +using Poolakey.Scripts.Data; +using System; + +namespace Poolakey.Scripts +{ + public class Payment + { + public enum Type { inApp, subscription } + PaymentConfiguration paymentConfiguration; + private AndroidJavaObject poolakeyBridge; + public Payment(PaymentConfiguration paymentConfiguration) + { + this.paymentConfiguration = paymentConfiguration; + using (var pluginClass = new AndroidJavaClass("com.farsitel.bazaar.PoolakeyBridge")) + { + if (pluginClass != null) + { + poolakeyBridge = pluginClass.CallStatic("getInstance"); + } + } + } + + public async Task Connect(Action onComplete = null) + { + var callback = new ConnectionCallbackProxy(); + poolakeyBridge.Call("connect", paymentConfiguration.securityCheck.rsaPublicKey, callback); + var result = await callback.WaitForResult(); + onComplete?.Invoke(result); + return result; + } + public void Disconnect() + { + poolakeyBridge.Call("disconnect"); + } + + public async Task GetSkuDetails(string productId, Action onComplete = null, Type type = Type.inApp) + { + var callback = new SKUDetailsCallbackProxy(); + poolakeyBridge.Call("getSkuDetails", type.ToString(), productId, callback); + var result = (SKUDetailsResult)await callback.WaitForResult(); + onComplete?.Invoke(result); + return result; + } + + public async Task Purchase(string productId, Type type = Type.inApp, Action onStart = null, Action onComplete = null, string payload = "") + { + var callback = new PaymentCallbackProxy(onStart); + poolakeyBridge.Call("purchase", type.ToString(), productId, payload, callback); + var result = (PurchaseResult)await callback.WaitForResult(); + onComplete?.Invoke(result); + return result; + } + + public async Task Consume(string token, Action onComplete = null) + { + var callback = new ConsumeCallbackProxy(); + poolakeyBridge.Call("consume", token, callback); + var result = await callback.WaitForResult(); + onComplete?.Invoke(result); + return result; + } + } +} \ No newline at end of file diff --git a/Assets/Poolakey/Scripts/PaymentConfiguration.cs b/unity/Assets/Poolakey/Scripts/PaymentConfiguration.cs similarity index 100% rename from Assets/Poolakey/Scripts/PaymentConfiguration.cs rename to unity/Assets/Poolakey/Scripts/PaymentConfiguration.cs diff --git a/Assets/Poolakey/Scripts/SecurityCheck.cs b/unity/Assets/Poolakey/Scripts/SecurityCheck.cs similarity index 100% rename from Assets/Poolakey/Scripts/SecurityCheck.cs rename to unity/Assets/Poolakey/Scripts/SecurityCheck.cs diff --git a/Assets/Poolakey/Textures/Circle.png b/unity/Assets/Poolakey/Textures/Circle.png similarity index 100% rename from Assets/Poolakey/Textures/Circle.png rename to unity/Assets/Poolakey/Textures/Circle.png diff --git a/Assets/Poolakey/Textures/Login9Path.png b/unity/Assets/Poolakey/Textures/Login9Path.png similarity index 100% rename from Assets/Poolakey/Textures/Login9Path.png rename to unity/Assets/Poolakey/Textures/Login9Path.png diff --git a/Assets/Poolakey/Textures/bazaar-logo.png b/unity/Assets/Poolakey/Textures/bazaar-logo.png similarity index 100% rename from Assets/Poolakey/Textures/bazaar-logo.png rename to unity/Assets/Poolakey/Textures/bazaar-logo.png diff --git a/Packages/manifest.json b/unity/Packages/manifest.json similarity index 100% rename from Packages/manifest.json rename to unity/Packages/manifest.json diff --git a/Packages/packages-lock.json b/unity/Packages/packages-lock.json similarity index 100% rename from Packages/packages-lock.json rename to unity/Packages/packages-lock.json diff --git a/ProjectSettings/AndroidResolverDependencies.xml b/unity/ProjectSettings/AndroidResolverDependencies.xml similarity index 100% rename from ProjectSettings/AndroidResolverDependencies.xml rename to unity/ProjectSettings/AndroidResolverDependencies.xml diff --git a/ProjectSettings/AudioManager.asset b/unity/ProjectSettings/AudioManager.asset similarity index 100% rename from ProjectSettings/AudioManager.asset rename to unity/ProjectSettings/AudioManager.asset diff --git a/ProjectSettings/ClusterInputManager.asset b/unity/ProjectSettings/ClusterInputManager.asset similarity index 100% rename from ProjectSettings/ClusterInputManager.asset rename to unity/ProjectSettings/ClusterInputManager.asset diff --git a/ProjectSettings/DynamicsManager.asset b/unity/ProjectSettings/DynamicsManager.asset similarity index 100% rename from ProjectSettings/DynamicsManager.asset rename to unity/ProjectSettings/DynamicsManager.asset diff --git a/ProjectSettings/EditorBuildSettings.asset b/unity/ProjectSettings/EditorBuildSettings.asset similarity index 100% rename from ProjectSettings/EditorBuildSettings.asset rename to unity/ProjectSettings/EditorBuildSettings.asset diff --git a/ProjectSettings/EditorSettings.asset b/unity/ProjectSettings/EditorSettings.asset similarity index 100% rename from ProjectSettings/EditorSettings.asset rename to unity/ProjectSettings/EditorSettings.asset diff --git a/ProjectSettings/GraphicsSettings.asset b/unity/ProjectSettings/GraphicsSettings.asset similarity index 100% rename from ProjectSettings/GraphicsSettings.asset rename to unity/ProjectSettings/GraphicsSettings.asset diff --git a/ProjectSettings/GvhProjectSettings.xml b/unity/ProjectSettings/GvhProjectSettings.xml similarity index 100% rename from ProjectSettings/GvhProjectSettings.xml rename to unity/ProjectSettings/GvhProjectSettings.xml diff --git a/ProjectSettings/InputManager.asset b/unity/ProjectSettings/InputManager.asset similarity index 100% rename from ProjectSettings/InputManager.asset rename to unity/ProjectSettings/InputManager.asset diff --git a/ProjectSettings/NavMeshAreas.asset b/unity/ProjectSettings/NavMeshAreas.asset similarity index 100% rename from ProjectSettings/NavMeshAreas.asset rename to unity/ProjectSettings/NavMeshAreas.asset diff --git a/ProjectSettings/PackageManagerSettings.asset b/unity/ProjectSettings/PackageManagerSettings.asset similarity index 100% rename from ProjectSettings/PackageManagerSettings.asset rename to unity/ProjectSettings/PackageManagerSettings.asset diff --git a/ProjectSettings/Physics2DSettings.asset b/unity/ProjectSettings/Physics2DSettings.asset similarity index 100% rename from ProjectSettings/Physics2DSettings.asset rename to unity/ProjectSettings/Physics2DSettings.asset diff --git a/ProjectSettings/PresetManager.asset b/unity/ProjectSettings/PresetManager.asset similarity index 100% rename from ProjectSettings/PresetManager.asset rename to unity/ProjectSettings/PresetManager.asset diff --git a/ProjectSettings/ProjectSettings.asset b/unity/ProjectSettings/ProjectSettings.asset similarity index 100% rename from ProjectSettings/ProjectSettings.asset rename to unity/ProjectSettings/ProjectSettings.asset diff --git a/ProjectSettings/ProjectVersion.txt b/unity/ProjectSettings/ProjectVersion.txt similarity index 100% rename from ProjectSettings/ProjectVersion.txt rename to unity/ProjectSettings/ProjectVersion.txt diff --git a/ProjectSettings/QualitySettings.asset b/unity/ProjectSettings/QualitySettings.asset similarity index 100% rename from ProjectSettings/QualitySettings.asset rename to unity/ProjectSettings/QualitySettings.asset diff --git a/ProjectSettings/TagManager.asset b/unity/ProjectSettings/TagManager.asset similarity index 100% rename from ProjectSettings/TagManager.asset rename to unity/ProjectSettings/TagManager.asset diff --git a/ProjectSettings/TimeManager.asset b/unity/ProjectSettings/TimeManager.asset similarity index 100% rename from ProjectSettings/TimeManager.asset rename to unity/ProjectSettings/TimeManager.asset diff --git a/ProjectSettings/UnityConnectSettings.asset b/unity/ProjectSettings/UnityConnectSettings.asset similarity index 100% rename from ProjectSettings/UnityConnectSettings.asset rename to unity/ProjectSettings/UnityConnectSettings.asset diff --git a/ProjectSettings/VFXManager.asset b/unity/ProjectSettings/VFXManager.asset similarity index 100% rename from ProjectSettings/VFXManager.asset rename to unity/ProjectSettings/VFXManager.asset diff --git a/ProjectSettings/VersionControlSettings.asset b/unity/ProjectSettings/VersionControlSettings.asset similarity index 100% rename from ProjectSettings/VersionControlSettings.asset rename to unity/ProjectSettings/VersionControlSettings.asset diff --git a/ProjectSettings/XRSettings.asset b/unity/ProjectSettings/XRSettings.asset similarity index 100% rename from ProjectSettings/XRSettings.asset rename to unity/ProjectSettings/XRSettings.asset