Fhub link

This commit is contained in:
Sewmina Dilshan 2023-05-20 13:49:50 +05:30
parent 3db7622e7b
commit 6b9a2e7b80
56 changed files with 31288 additions and 30182 deletions

142
.gitignore vendored
View File

@ -1,72 +1,72 @@
# This .gitignore file should be placed at the root of your Unity project directory # This .gitignore file should be placed at the root of your Unity project directory
# #
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
# #
/[Ll]ibrary/ /[Ll]ibrary/
/[Tt]emp/ /[Tt]emp/
/[Oo]bj/ /[Oo]bj/
/[Bb]uild/ /[Bb]uild/
/[Bb]uilds/ /[Bb]uilds/
/[Ll]ogs/ /[Ll]ogs/
/[Uu]ser[Ss]ettings/ /[Uu]ser[Ss]ettings/
# MemoryCaptures can get excessive in size. # MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data # They also could contain extremely sensitive data
/[Mm]emoryCaptures/ /[Mm]emoryCaptures/
# Recordings can get excessive in size # Recordings can get excessive in size
/[Rr]ecordings/ /[Rr]ecordings/
# Uncomment this line if you wish to ignore the asset store tools plugin # Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools* # /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin # Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains* /[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory # Visual Studio cache directory
.vs/ .vs/
# Gradle cache directory # Gradle cache directory
.gradle/ .gradle/
# Autogenerated VS/MD/Consulo solution and project files # Autogenerated VS/MD/Consulo solution and project files
ExportedObj/ ExportedObj/
.consulo/ .consulo/
*.csproj *.csproj
*.unityproj *.unityproj
*.sln *.sln
*.suo *.suo
*.tmp *.tmp
*.user *.user
*.userprefs *.userprefs
*.pidb *.pidb
*.booproj *.booproj
*.svd *.svd
*.pdb *.pdb
*.mdb *.mdb
*.opendb *.opendb
*.VC.db *.VC.db
# Unity3D generated meta files # Unity3D generated meta files
*.pidb.meta *.pidb.meta
*.pdb.meta *.pdb.meta
*.mdb.meta *.mdb.meta
# Unity3D generated file on crash reports # Unity3D generated file on crash reports
sysinfo.txt sysinfo.txt
# Builds # Builds
*.apk *.apk
*.aab *.aab
*.unitypackage *.unitypackage
*.app *.app
# Crashlytics generated file # Crashlytics generated file
crashlytics-build.properties crashlytics-build.properties
# Packed Addressables # Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
# Temporary auto-generated Android Assets # Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta /[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/* /[Aa]ssets/[Ss]treamingAssets/aa/*

View File

@ -1,52 +1,52 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class BackgroundControl_0 : MonoBehaviour public class BackgroundControl_0 : MonoBehaviour
{ {
[Header("BackgroundNum 0 -> 3")] [Header("BackgroundNum 0 -> 3")]
public int backgroundNum; public int backgroundNum;
public Sprite[] Layer_Sprites; public Sprite[] Layer_Sprites;
private GameObject[] Layer_Object = new GameObject[5]; private GameObject[] Layer_Object = new GameObject[5];
private int max_backgroundNum = 3; private int max_backgroundNum = 3;
public bool enableSwitching = false; public bool enableSwitching = false;
void Start() void Start()
{ {
for (int i = 0; i < Layer_Object.Length; i++){ for (int i = 0; i < Layer_Object.Length; i++){
Layer_Object[i] = GameObject.Find("Layer_" + i); Layer_Object[i] = GameObject.Find("Layer_" + i);
} }
ChangeSprite(); ChangeSprite();
} }
void Update() { void Update() {
if(!enableSwitching){return;} if(!enableSwitching){return;}
//for presentation without UIs //for presentation without UIs
if (Input.GetKeyDown(KeyCode.RightArrow)) NextBG(); if (Input.GetKeyDown(KeyCode.RightArrow)) NextBG();
if (Input.GetKeyDown(KeyCode.LeftArrow)) BackBG(); if (Input.GetKeyDown(KeyCode.LeftArrow)) BackBG();
} }
void ChangeSprite(){ void ChangeSprite(){
Layer_Object[0].GetComponent<SpriteRenderer>().sprite = Layer_Sprites[backgroundNum*5]; Layer_Object[0].GetComponent<SpriteRenderer>().sprite = Layer_Sprites[backgroundNum*5];
for (int i = 1; i < Layer_Object.Length; i++){ for (int i = 1; i < Layer_Object.Length; i++){
Sprite changeSprite = Layer_Sprites[backgroundNum*5 + i]; Sprite changeSprite = Layer_Sprites[backgroundNum*5 + i];
//Change Layer_1->7 //Change Layer_1->7
Layer_Object[i].GetComponent<SpriteRenderer>().sprite = changeSprite; Layer_Object[i].GetComponent<SpriteRenderer>().sprite = changeSprite;
//Change "Layer_(*)x" sprites in children of Layer_1->7 //Change "Layer_(*)x" sprites in children of Layer_1->7
Layer_Object[i].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = changeSprite; Layer_Object[i].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = changeSprite;
Layer_Object[i].transform.GetChild(1).GetComponent<SpriteRenderer>().sprite = changeSprite; Layer_Object[i].transform.GetChild(1).GetComponent<SpriteRenderer>().sprite = changeSprite;
} }
} }
public void NextBG(){ public void NextBG(){
backgroundNum = backgroundNum + 1; backgroundNum = backgroundNum + 1;
if (backgroundNum > max_backgroundNum) backgroundNum = 0; if (backgroundNum > max_backgroundNum) backgroundNum = 0;
ChangeSprite(); ChangeSprite();
} }
public void BackBG(){ public void BackBG(){
backgroundNum = backgroundNum - 1; backgroundNum = backgroundNum - 1;
if (backgroundNum < 0) backgroundNum = max_backgroundNum; if (backgroundNum < 0) backgroundNum = max_backgroundNum;
ChangeSprite(); ChangeSprite();
} }
} }

View File

@ -1,45 +1,45 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class ParallaxBackground_0 : MonoBehaviour public class ParallaxBackground_0 : MonoBehaviour
{ {
public bool Camera_Move; public bool Camera_Move;
public float Camera_MoveSpeed = 1.5f; public float Camera_MoveSpeed = 1.5f;
[Header("Layer Setting")] [Header("Layer Setting")]
public float[] Layer_Speed = new float[7]; public float[] Layer_Speed = new float[7];
public GameObject[] Layer_Objects = new GameObject[7]; public GameObject[] Layer_Objects = new GameObject[7];
private Transform _camera; private Transform _camera;
private float[] startPos = new float[7]; private float[] startPos = new float[7];
private float boundSizeX; private float boundSizeX;
private float sizeX; private float sizeX;
private GameObject Layer_0; private GameObject Layer_0;
void Start() void Start()
{ {
_camera = Camera.main.transform; _camera = Camera.main.transform;
sizeX = Layer_Objects[0].transform.localScale.x; sizeX = Layer_Objects[0].transform.localScale.x;
boundSizeX = Layer_Objects[0].GetComponent<SpriteRenderer>().sprite.bounds.size.x; boundSizeX = Layer_Objects[0].GetComponent<SpriteRenderer>().sprite.bounds.size.x;
for (int i=0;i<5;i++){ for (int i=0;i<5;i++){
startPos[i] = _camera.position.x; startPos[i] = _camera.position.x;
} }
} }
void Update(){ void Update(){
//Moving camera //Moving camera
if (Camera_Move){ if (Camera_Move){
_camera.position += Vector3.right * Time.deltaTime * Camera_MoveSpeed; _camera.position += Vector3.right * Time.deltaTime * Camera_MoveSpeed;
} }
for (int i=0;i<5;i++){ for (int i=0;i<5;i++){
float temp = (_camera.position.x * (1-Layer_Speed[i]) ); float temp = (_camera.position.x * (1-Layer_Speed[i]) );
float distance = _camera.position.x * Layer_Speed[i]; float distance = _camera.position.x * Layer_Speed[i];
Layer_Objects[i].transform.position = new Vector2 (startPos[i] + distance, _camera.position.y); Layer_Objects[i].transform.position = new Vector2 (startPos[i] + distance, _camera.position.y);
if (temp > startPos[i] + boundSizeX*sizeX){ if (temp > startPos[i] + boundSizeX*sizeX){
startPos[i] += boundSizeX*sizeX; startPos[i] += boundSizeX*sizeX;
}else if(temp < startPos[i] - boundSizeX*sizeX){ }else if(temp < startPos[i] - boundSizeX*sizeX){
startPos[i] -= boundSizeX*sizeX; startPos[i] -= boundSizeX*sizeX;
} }
} }
} }
} }

View File

@ -1,33 +1,33 @@
Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl.dll Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl.dll
Assets/PlayServicesResolver/Editor/Google.IOSResolver.dll Assets/PlayServicesResolver/Editor/Google.IOSResolver.dll
Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll
Assets/PlayServicesResolver/Editor/Google.JarResolver.dll Assets/PlayServicesResolver/Editor/Google.JarResolver.dll
Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.mm Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.mm
Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.h Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.h
Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.h Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.h
Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.mm Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.mm
Assets/Parse/LICENSE Assets/Parse/LICENSE
Assets/Parse/Plugins/Unity.Compat.dll Assets/Parse/Plugins/Unity.Compat.dll
Assets/Parse/Plugins/Unity.Tasks.dll Assets/Parse/Plugins/Unity.Tasks.dll
Assets/SignInSample/MainScene.unity Assets/SignInSample/MainScene.unity
Assets/SignInSample/SigninSampleScript.cs Assets/SignInSample/SigninSampleScript.cs
Assets/GoogleSignIn/Impl/GoogleSignInImpl.cs Assets/GoogleSignIn/Impl/GoogleSignInImpl.cs
Assets/GoogleSignIn/Impl/SignInHelperObject.cs Assets/GoogleSignIn/Impl/SignInHelperObject.cs
Assets/GoogleSignIn/Impl/NativeFuture.cs Assets/GoogleSignIn/Impl/NativeFuture.cs
Assets/GoogleSignIn/Impl/BaseObject.cs Assets/GoogleSignIn/Impl/BaseObject.cs
Assets/GoogleSignIn/GoogleSignIn.cs Assets/GoogleSignIn/GoogleSignIn.cs
Assets/GoogleSignIn/GoogleSignInConfiguration.cs Assets/GoogleSignIn/GoogleSignInConfiguration.cs
Assets/GoogleSignIn/Future.cs Assets/GoogleSignIn/Future.cs
Assets/GoogleSignIn/GoogleSignInUser.cs Assets/GoogleSignIn/GoogleSignInUser.cs
Assets/GoogleSignIn/GoogleSignInStatusCode.cs Assets/GoogleSignIn/GoogleSignInStatusCode.cs
Assets/GoogleSignIn/Editor/GoogleSignInDependencies.xml Assets/GoogleSignIn/Editor/GoogleSignInDependencies.xml
Assets/GoogleSignIn/Editor/GoogleSignInSupportDependencies.xml Assets/GoogleSignIn/Editor/GoogleSignInSupportDependencies.xml
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.md5 Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.md5
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.sha1 Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.sha1
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.md5 Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.md5
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.sha1 Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.sha1
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.sha1 Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.sha1
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom
Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.md5 Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.md5

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<linker> <linker>
<assembly fullname="System"> <assembly fullname="System">
<type fullname="System.ComponentModel.TypeConverter" preserve="all" /> <type fullname="System.ComponentModel.TypeConverter" preserve="all" />
<!-- <namespace fullname="System.ComponentModel" preserve="all" /> --> <!-- <namespace fullname="System.ComponentModel" preserve="all" /> -->
</assembly> </assembly>
</linker> </linker>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1">
<application> <application>
<uses-library android:required="false" android:name="org.apache.http.legacy" /> <uses-library android:required="false" android:name="org.apache.http.legacy" />
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3966734202864173~2020769855" /> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3966734202864173~2020769855" />
</application> </application>
</manifest> </manifest>

File diff suppressed because it is too large Load Diff

View File

@ -1,208 +1,208 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!29 &1 --- !u!29 &1
OcclusionCullingSettings: OcclusionCullingSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_OcclusionBakeSettings: m_OcclusionBakeSettings:
smallestOccluder: 5 smallestOccluder: 5
smallestHole: 0.25 smallestHole: 0.25
backfaceThreshold: 100 backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000 m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0} m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 9 serializedVersion: 9
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
m_FogDensity: 0.01 m_FogDensity: 0.01
m_LinearFogStart: 0 m_LinearFogStart: 0
m_LinearFogEnd: 300 m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1 m_AmbientIntensity: 1
m_AmbientMode: 3 m_AmbientMode: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0} m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5 m_HaloStrength: 0.5
m_FlareStrength: 1 m_FlareStrength: 1
m_FlareFadeSpeed: 3 m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0} m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0 m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128 m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1 m_ReflectionBounces: 1
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0 m_UseRadianceAmbientProbe: 0
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 12 serializedVersion: 12
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
m_IndirectOutputScale: 1 m_IndirectOutputScale: 1
m_AlbedoBoost: 1 m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0 m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0 m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 12 serializedVersion: 12
m_Resolution: 2 m_Resolution: 2
m_BakeResolution: 40 m_BakeResolution: 40
m_AtlasSize: 1024 m_AtlasSize: 1024
m_AO: 0 m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_CompAOExponent: 1 m_CompAOExponent: 1
m_CompAOExponentDirect: 0 m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0 m_ExtractAmbientOcclusion: 0
m_Padding: 2 m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1 m_LightmapsBakeMode: 1
m_TextureCompression: 1 m_TextureCompression: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1 m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256 m_FinalGatherRayCount: 256
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_MixedBakeMode: 2 m_MixedBakeMode: 2
m_BakeBackend: 0 m_BakeBackend: 0
m_PVRSampling: 1 m_PVRSampling: 1
m_PVRDirectSampleCount: 32 m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500 m_PVRSampleCount: 500
m_PVRBounces: 2 m_PVRBounces: 2
m_PVREnvironmentSampleCount: 500 m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048 m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 2 m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0 m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0 m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0 m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0 m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0 m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 0 m_PVREnvironmentMIS: 0
m_PVRCulling: 1 m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5 m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2 m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1 m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0 m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4 m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0} m_LightingSettings: {fileID: 0}
--- !u!196 &4 --- !u!196 &4
NavMeshSettings: NavMeshSettings:
serializedVersion: 2 serializedVersion: 2
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_BuildSettings: m_BuildSettings:
serializedVersion: 2 serializedVersion: 2
agentTypeID: 0 agentTypeID: 0
agentRadius: 0.5 agentRadius: 0.5
agentHeight: 2 agentHeight: 2
agentSlope: 45 agentSlope: 45
agentClimb: 0.4 agentClimb: 0.4
ledgeDropHeight: 0 ledgeDropHeight: 0
maxJumpAcrossDistance: 0 maxJumpAcrossDistance: 0
minRegionArea: 2 minRegionArea: 2
manualCellSize: 0 manualCellSize: 0
cellSize: 0.16666667 cellSize: 0.16666667
manualTileSize: 0 manualTileSize: 0
tileSize: 256 tileSize: 256
accuratePlacement: 0 accuratePlacement: 0
maxJobWorkers: 0 maxJobWorkers: 0
preserveTilesOutsideBounds: 0 preserveTilesOutsideBounds: 0
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &519420028 --- !u!1 &519420028
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 519420032} - component: {fileID: 519420032}
- component: {fileID: 519420031} - component: {fileID: 519420031}
- component: {fileID: 519420029} - component: {fileID: 519420029}
m_Layer: 0 m_Layer: 0
m_Name: Main Camera m_Name: Main Camera
m_TagString: MainCamera m_TagString: MainCamera
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!81 &519420029 --- !u!81 &519420029
AudioListener: AudioListener:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028} m_GameObject: {fileID: 519420028}
m_Enabled: 1 m_Enabled: 1
--- !u!20 &519420031 --- !u!20 &519420031
Camera: Camera:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028} m_GameObject: {fileID: 519420028}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 2 serializedVersion: 2
m_ClearFlags: 2 m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1 m_projectionMatrixMode: 1
m_GateFitMode: 2 m_GateFitMode: 2
m_FOVAxisMode: 0 m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24} m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0} m_LensShift: {x: 0, y: 0}
m_FocalLength: 50 m_FocalLength: 50
m_NormalizedViewPortRect: m_NormalizedViewPortRect:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0 y: 0
width: 1 width: 1
height: 1 height: 1
near clip plane: 0.3 near clip plane: 0.3
far clip plane: 1000 far clip plane: 1000
field of view: 60 field of view: 60
orthographic: 1 orthographic: 1
orthographic size: 5 orthographic size: 5
m_Depth: -1 m_Depth: -1
m_CullingMask: m_CullingMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
m_RenderingPath: -1 m_RenderingPath: -1
m_TargetTexture: {fileID: 0} m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0 m_TargetDisplay: 0
m_TargetEye: 0 m_TargetEye: 0
m_HDR: 1 m_HDR: 1
m_AllowMSAA: 0 m_AllowMSAA: 0
m_AllowDynamicResolution: 0 m_AllowDynamicResolution: 0
m_ForceIntoRT: 0 m_ForceIntoRT: 0
m_OcclusionCulling: 0 m_OcclusionCulling: 0
m_StereoConvergence: 10 m_StereoConvergence: 10
m_StereoSeparation: 0.022 m_StereoSeparation: 0.022
--- !u!4 &519420032 --- !u!4 &519420032
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028} m_GameObject: {fileID: 519420028}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@ -1,7 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2cda990e2423bbf4892e6590ba056729 guid: 2cda990e2423bbf4892e6590ba056729
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View File

@ -1,158 +1,158 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using GoogleMobileAds.Api; using GoogleMobileAds.Api;
using UnityEngine; using UnityEngine;
public class AdsManager : MonoBehaviour public class AdsManager : MonoBehaviour
{ {
// Start is called before the first frame update // Start is called before the first frame update
public static AdsManager instance; public static AdsManager instance;
void Awake(){ void Awake(){
if(instance!= null){Destroy(gameObject);} if(instance!= null){Destroy(gameObject);}
instance = this; instance = this;
} }
const string intAdId = "ca-app-pub-3966734202864173/1197808629"; const string intAdId = "ca-app-pub-3966734202864173/1197808629";
const string rewardedAdId = "ca-app-pub-3966734202864173/3725853326"; const string rewardedAdId = "ca-app-pub-3966734202864173/3725853326";
void Start() void Start()
{ {
DontDestroyOnLoad(gameObject); DontDestroyOnLoad(gameObject);
// Initialize the Google Mobile Ads SDK. // Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(initStatus => { Debug.Log("admob Init status : " + initStatus.ToString());}); MobileAds.Initialize(initStatus => { Debug.Log("admob Init status : " + initStatus.ToString());});
StartCoroutine(ReloadAds(true)); StartCoroutine(ReloadAds(true));
} }
private InterstitialAd interstitialAd; private InterstitialAd interstitialAd;
/// <summary> /// <summary>
/// Loads the interstitial ad. /// Loads the interstitial ad.
/// </summary> /// </summary>
public void LoadInterstitialAd() public void LoadInterstitialAd()
{ {
// Clean up the old ad before loading a new one. // Clean up the old ad before loading a new one.
if (interstitialAd != null) if (interstitialAd != null)
{ {
interstitialAd.Destroy(); interstitialAd.Destroy();
interstitialAd = null; interstitialAd = null;
} }
Debug.Log("Loading the interstitial ad."); Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad. // create our request used to load the ad.
var adRequest = new AdRequest.Builder() var adRequest = new AdRequest.Builder()
.AddKeyword("unity-admob-sample") .AddKeyword("unity-admob-sample")
.Build(); .Build();
// send the request to load the ad. // send the request to load the ad.
InterstitialAd.Load(intAdId, adRequest, InterstitialAd.Load(intAdId, adRequest,
(InterstitialAd ad, LoadAdError error) => (InterstitialAd ad, LoadAdError error) =>
{ {
// if error is not null, the load request failed. // if error is not null, the load request failed.
if (error != null || ad == null) if (error != null || ad == null)
{ {
Debug.LogError("interstitial ad failed to load an ad " + Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error); "with error : " + error);
return; return;
} }
Debug.Log("Interstitial ad loaded with response : " Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo()); + ad.GetResponseInfo());
interstitialAd = ad; interstitialAd = ad;
}); });
} }
public void ShowIntAd() public void ShowIntAd()
{ {
if (interstitialAd != null && interstitialAd.CanShowAd()) if (interstitialAd != null && interstitialAd.CanShowAd())
{ {
Debug.Log("Showing interstitial ad."); Debug.Log("Showing interstitial ad.");
interstitialAd.Show(); interstitialAd.Show();
} }
else else
{ {
Debug.LogError("Interstitial ad is not ready yet."); Debug.LogError("Interstitial ad is not ready yet.");
} }
StartCoroutine(ReloadAds(false)); StartCoroutine(ReloadAds(false));
} }
private RewardedAd rewardedAd; private RewardedAd rewardedAd;
/// <summary> /// <summary>
/// Loads the rewarded ad. /// Loads the rewarded ad.
/// </summary> /// </summary>
public void LoadRewardedAd() public void LoadRewardedAd()
{ {
// Clean up the old ad before loading a new one. // Clean up the old ad before loading a new one.
if (rewardedAd != null) if (rewardedAd != null)
{ {
rewardedAd.Destroy(); rewardedAd.Destroy();
rewardedAd = null; rewardedAd = null;
} }
Debug.Log("Loading the rewarded ad."); Debug.Log("Loading the rewarded ad.");
// create our request used to load the ad. // create our request used to load the ad.
var adRequest = new AdRequest.Builder().Build(); var adRequest = new AdRequest.Builder().Build();
// send the request to load the ad. // send the request to load the ad.
RewardedAd.Load(rewardedAdId, adRequest, RewardedAd.Load(rewardedAdId, adRequest,
(RewardedAd ad, LoadAdError error) => (RewardedAd ad, LoadAdError error) =>
{ {
// if error is not null, the load request failed. // if error is not null, the load request failed.
if (error != null || ad == null) if (error != null || ad == null)
{ {
Debug.LogError("Rewarded ad failed to load an ad " + Debug.LogError("Rewarded ad failed to load an ad " +
"with error : " + error); "with error : " + error);
return; return;
} }
Debug.Log("Rewarded ad loaded with response : " Debug.Log("Rewarded ad loaded with response : "
+ ad.GetResponseInfo()); + ad.GetResponseInfo());
rewardedAd = ad; rewardedAd = ad;
rewardedAd.OnAdPaid += OnRewardSuccess; rewardedAd.OnAdPaid += OnRewardSuccess;
}); });
} }
private void OnRewardSuccess(AdValue obj) private void OnRewardSuccess(AdValue obj)
{ {
GameManager.AdWatched(); GameManager.AdWatched();
} }
public void ShowRewardedAd() public void ShowRewardedAd()
{ {
const string rewardMsg = const string rewardMsg =
"Rewarded ad rewarded the user. Type: {0}, amount: {1}."; "Rewarded ad rewarded the user. Type: {0}, amount: {1}.";
if (rewardedAd != null && rewardedAd.CanShowAd()) if (rewardedAd != null && rewardedAd.CanShowAd())
{ {
rewardedAd.Show((Reward reward) => rewardedAd.Show((Reward reward) =>
{ {
// TODO: Reward the user. // TODO: Reward the user.
Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount)); Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount));
}); });
} }
StartCoroutine(ReloadAds(true)); StartCoroutine(ReloadAds(true));
} }
IEnumerator ReloadAds(bool rewarded){ IEnumerator ReloadAds(bool rewarded){
yield return new WaitForSeconds(2); yield return new WaitForSeconds(2);
LoadInterstitialAd(); LoadInterstitialAd();
if(rewarded){ if(rewarded){
LoadRewardedAd(); LoadRewardedAd();
} }
} }
} }

View File

@ -1,79 +1,79 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class AudioManager : MonoBehaviour public class AudioManager : MonoBehaviour
{ {
public static AudioManager instance { get; private set;} public static AudioManager instance { get; private set;}
public static bool isMute {get; private set;} public static bool isMute {get; private set;}
void Awake(){ void Awake(){
if(instance != null){Destroy(gameObject);return;} if(instance != null){Destroy(gameObject);return;}
instance =this; instance =this;
if(PlayerPrefs.HasKey("mute")){ if(PlayerPrefs.HasKey("mute")){
isMute = PlayerPrefs.GetInt("mute") == 1; isMute = PlayerPrefs.GetInt("mute") == 1;
}else{ }else{
isMute=false; isMute=false;
} }
Refresh(); Refresh();
} }
[SerializeField]private AudioSource sfxSource; [SerializeField]private AudioSource sfxSource;
[SerializeField]private AudioSource dropSfxSource; [SerializeField]private AudioSource dropSfxSource;
[SerializeField]private AudioClip[] lowHits, midHits, hardHits; [SerializeField]private AudioClip[] lowHits, midHits, hardHits;
[SerializeField]private AudioClip[] drop; [SerializeField]private AudioClip[] drop;
[SerializeField]private float dropMinPitch = 0.5f; [SerializeField]private float dropMinPitch = 0.5f;
[SerializeField]private float dropMaxPitch = 1.5f; [SerializeField]private float dropMaxPitch = 1.5f;
public void PlaySFX(AudioClip clip){ public void PlaySFX(AudioClip clip){
sfxSource.PlayOneShot(clip); sfxSource.PlayOneShot(clip);
} }
public static void PlaySfx(AudioClip clip){ public static void PlaySfx(AudioClip clip){
instance.PlaySFX(clip); instance.PlaySFX(clip);
} }
public static void HitSfx(float magnitude){ public static void HitSfx(float magnitude){
instance.hitSfx(magnitude); instance.hitSfx(magnitude);
} }
public static void DropSfx(float magnitude){ public static void DropSfx(float magnitude){
instance.dropSfx(magnitude); instance.dropSfx(magnitude);
} }
public static bool ToggleMute(){ public static bool ToggleMute(){
isMute = !isMute; isMute = !isMute;
Refresh(); Refresh();
PlayerPrefs.SetInt("mute", isMute ? 1 : 0); PlayerPrefs.SetInt("mute", isMute ? 1 : 0);
PlayerPrefs.Save(); PlayerPrefs.Save();
return isMute; return isMute;
} }
public static void Refresh(){ public static void Refresh(){
if(instance!=null){ if(instance!=null){
instance.sfxSource.volume = isMute ? 0 : 1; instance.sfxSource.volume = isMute ? 0 : 1;
instance.dropSfxSource.volume = isMute ? 0 : 1; instance.dropSfxSource.volume = isMute ? 0 : 1;
} }
} }
void hitSfx(float magnitude){ void hitSfx(float magnitude){
AudioClip selectedClip; AudioClip selectedClip;
if(magnitude < 0.5f){ if(magnitude < 0.5f){
selectedClip = lowHits[Random.Range(0,lowHits.Length)]; selectedClip = lowHits[Random.Range(0,lowHits.Length)];
}else if(magnitude < 1){ }else if(magnitude < 1){
selectedClip = midHits[Random.Range(0,midHits.Length)]; selectedClip = midHits[Random.Range(0,midHits.Length)];
}else{ }else{
selectedClip = hardHits[Random.Range(0,hardHits.Length)]; selectedClip = hardHits[Random.Range(0,hardHits.Length)];
} }
Debug.Log("Playing hit sfx for " + magnitude); Debug.Log("Playing hit sfx for " + magnitude);
sfxSource.PlayOneShot(selectedClip); sfxSource.PlayOneShot(selectedClip);
} }
void dropSfx(float magnitude){ void dropSfx(float magnitude){
float diff = dropMaxPitch - dropMinPitch; float diff = dropMaxPitch - dropMinPitch;
float mult = magnitude / 10f; float mult = magnitude / 10f;
dropSfxSource.pitch = dropMinPitch + (diff * mult); dropSfxSource.pitch = dropMinPitch + (diff * mult);
dropSfxSource.volume = mult; dropSfxSource.volume = mult;
Debug.Log($"Playing drop sfx for { magnitude } : {mult}, pitch: {dropSfxSource.pitch}, volume: {dropSfxSource.volume}"); Debug.Log($"Playing drop sfx for { magnitude } : {mult}, pitch: {dropSfxSource.pitch}, volume: {dropSfxSource.volume}");
dropSfxSource.Play(); dropSfxSource.Play();
} }
} }

View File

@ -1,265 +1,284 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Google; using Google;
using Newtonsoft.Json; using Newtonsoft.Json;
using UnityEngine; using UnityEngine;
using UnityEngine.Networking; using UnityEngine.Networking;
public static class DataManager{ public static class DataManager{
public const string API_ENDPOINT = "http://vps.playpoolstudios.com/faucet/golf/api/"; public const string API_ENDPOINT = "http://vps.playpoolstudios.com/faucet/golf/api/";
public const string key = "#2CuV1Bit^S!sW1ZcgRv8BhrO"; public const string key = "#2CuV1Bit^S!sW1ZcgRv8BhrO";
public static UserData userData{get; private set;} public static UserData userData{get; private set;}
public static List<LeaderboardItemData> Leaderboard{get; private set;} public static List<LeaderboardItemData> Leaderboard{get; private set;}
public static bool isLogged{ get{return userData != null;}} public static bool isLogged{ get{return userData != null;}}
public static void Signout(){ public static void Signout(){
GoogleSignIn.DefaultInstance.SignOut(); GoogleSignIn.DefaultInstance.SignOut();
PlayerPrefs.DeleteAll(); PlayerPrefs.DeleteAll();
PlayerPrefs.Save(); PlayerPrefs.Save();
userData = null; userData = null;
} }
public static async Task<int> Login(string username,string password){ public static async Task<int> Login(string username,string password){
WWWForm form = new WWWForm(); WWWForm form = new WWWForm();
form.AddField("username", username); form.AddField("username", username);
form.AddField("password", password); form.AddField("password", password);
form.AddField("key", key); form.AddField("key", key);
using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "login.php", form)) using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "login.php", form))
{ {
var operation = request.SendWebRequest(); var operation = request.SendWebRequest();
while (!operation.isDone) while (!operation.isDone)
{ {
await Task.Yield(); await Task.Yield();
} }
Debug.Log("login response: " +request.downloadHandler.text); Debug.Log("login response: " +request.downloadHandler.text);
if(request.downloadHandler.text.Contains("{")){ if(request.downloadHandler.text.Contains("{")){
try{ try{
userData = JsonConvert.DeserializeObject<UserData>(request.downloadHandler.text); userData = JsonConvert.DeserializeObject<UserData>(request.downloadHandler.text);
Debug.Log("Success parsing userdata"); Debug.Log("Success parsing userdata");
PlayerPrefs.SetString("username", username); PlayerPrefs.SetString("username", username);
PlayerPrefs.SetString("password", password); PlayerPrefs.SetString("password", password);
PlayerPrefs.Save(); PlayerPrefs.Save();
}catch(Exception e){ }catch(Exception e){
Debug.Log("Error parsing userdata"); Debug.Log("Error parsing userdata");
} }
}else{ }else{
if(request.downloadHandler.text == "0"){ if(request.downloadHandler.text == "0"){
userData = new UserData(){username = username}; userData = new UserData(){username = username};
Debug.Log("Created local account"); Debug.Log("Created local account");
}else{ }else{
MessageBox.ShowMessage("Error logging in, Server said\n" +request.downloadHandler.text); MessageBox.ShowMessage("Error logging in, Server said\n" +request.downloadHandler.text);
return 1; return 1;
} }
} }
} }
LoadingScreen.LoadLevel("MainMenu"); LoadingScreen.LoadLevel("MainMenu");
return 0; return 0;
} }
public static async Task<int> LinkFH(string fhid){ public static async Task<int> LinkFH(string fhid){
WWWForm form = new WWWForm(); WWWForm form = new WWWForm();
form.AddField("username", userData.username); form.AddField("username", userData.username);
form.AddField("fhid", fhid); form.AddField("fhid", fhid);
form.AddField("key", key); form.AddField("key", key);
using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "link_fh.php", form)) using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "link_fh.php", form))
{ {
var operation = request.SendWebRequest(); var operation = request.SendWebRequest();
while (!operation.isDone) while (!operation.isDone)
{ {
await Task.Yield(); await Task.Yield();
} }
Debug.Log("fh link response: " +request.downloadHandler.text); Debug.Log("fh link response: " +request.downloadHandler.text);
if(request.downloadHandler.text== "0"){ if(request.downloadHandler.text== "0"){
userData.faucetId = int.Parse(fhid); userData.faucetId = int.Parse(fhid);
Debug.Log("FH Link success"); Debug.Log("FH Link success");
} }
} }
return 0; return 0;
} }
public static async void GoogleLogin(string username){ public static async void GoogleLogin(string username){
WWWForm form = new WWWForm(); WWWForm form = new WWWForm();
form.AddField("username", username); form.AddField("username", username);
form.AddField("key", key); form.AddField("key", key);
using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "google_login.php", form)) using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "google_login.php", form))
{ {
var operation = request.SendWebRequest(); var operation = request.SendWebRequest();
while (!operation.isDone) while (!operation.isDone)
{ {
await Task.Yield(); await Task.Yield();
} }
Debug.Log("glogin response: " +request.downloadHandler.text); Debug.Log("glogin response: " +request.downloadHandler.text);
// MessageBox.ShowMessage(request.downloadHandler.text); // MessageBox.ShowMessage(request.downloadHandler.text);
if(request.downloadHandler.text.Contains("{")){ if(request.downloadHandler.text.Contains("{")){
try{ try{
userData = JsonConvert.DeserializeObject<UserData>(request.downloadHandler.text); userData = JsonConvert.DeserializeObject<UserData>(request.downloadHandler.text);
if(userData == null){ if(userData == null){
throw new NullReferenceException(); throw new NullReferenceException();
} }
if(userData.username.Length < 3){ if(userData.username.Length < 3){
throw new IndexOutOfRangeException(); throw new IndexOutOfRangeException();
} }
Debug.Log("Success parsing userdata"); Debug.Log("Success parsing userdata");
PlayerPrefs.SetString("username", username); PlayerPrefs.SetString("username", username);
PlayerPrefs.SetString("password", username); PlayerPrefs.SetString("password", username);
PlayerPrefs.Save(); PlayerPrefs.Save();
}catch(Exception e){ }catch(Exception e){
Debug.Log("Error parsing userdata"); Debug.Log("Error parsing userdata");
} }
}else{ }else{
if(request.downloadHandler.text == "0"){ if(request.downloadHandler.text == "0"){
userData = new UserData(){username = username}; userData = new UserData(){username = username};
}else{ }else{
MessageBox.ShowMessage("Error logging in, Server said\n" +request.downloadHandler.text); MessageBox.ShowMessage("Error logging in, Server said\n" +request.downloadHandler.text);
return; return;
} }
} }
} }
LoadingScreen.LoadLevel("MainMenu"); LoadingScreen.LoadLevel("MainMenu");
} }
public static async void AddScores(int amount){ public static async void AddScores(int amount){
WWWForm form = new WWWForm(); WWWForm form = new WWWForm();
Debug.Log(userData.ToString()); Debug.Log(userData.ToString());
form.AddField("username", userData.username); form.AddField("username", userData.username);
form.AddField("password", userData.password); form.AddField("password", userData.password);
form.AddField("amount", amount); form.AddField("amount", amount);
form.AddField("key", key); form.AddField("key", key);
using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "add_scores.php", form)) using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "add_scores.php", form))
{ {
var operation = request.SendWebRequest(); var operation = request.SendWebRequest();
while (!operation.isDone) while (!operation.isDone)
{ {
await Task.Yield(); await Task.Yield();
} }
Debug.Log("add scores response: " +request.downloadHandler.text); Debug.Log("add scores response: " +request.downloadHandler.text);
if(request.downloadHandler.text.Contains("{")){ if(request.downloadHandler.text.Contains("{")){
try{ try{
userData = JsonConvert.DeserializeObject<UserData>(request.downloadHandler.text); userData = JsonConvert.DeserializeObject<UserData>(request.downloadHandler.text);
if(userData == null){ if(userData == null){
throw new NullReferenceException(); throw new NullReferenceException();
} }
if(userData.username.Length < 3){ if(userData.username.Length < 3){
throw new IndexOutOfRangeException(); throw new IndexOutOfRangeException();
} }
Debug.Log("Success parsing userdata"); Debug.Log("Success parsing userdata");
}catch(Exception e){ }catch(Exception e){
Debug.Log("Error parsing userdata"); Debug.Log("Error parsing userdata");
} }
}else{ }else{
MessageBox.ShowMessage("Error Updating scores, Server said\n" +request.downloadHandler.text); MessageBox.ShowMessage("Error Updating scores, Server said\n" +request.downloadHandler.text);
} }
} }
LoadingScreen.LoadLevel("MainMenu"); LoadingScreen.LoadLevel("MainMenu");
} }
public static async Task RefreshLeaderboard(){ public static async Task RefreshLeaderboard(bool total = false){
WWWForm form = new WWWForm(); WWWForm form = new WWWForm();
Debug.Log(userData.ToString()); Debug.Log(userData.ToString());
form.AddField("username", userData.username);
form.AddField("username", userData.username); if(total){
form.AddField("total", "1");
using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "get_leaderboard.php", form)) }
{ bool foundMe = false;
var operation = request.SendWebRequest();
while (!operation.isDone) using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "get_leaderboard.php", form))
{ {
await Task.Yield(); var operation = request.SendWebRequest();
} while (!operation.isDone)
Debug.Log("add scores response: " +request.downloadHandler.text); {
await Task.Yield();
if(request.downloadHandler.text.Contains("{")){ }
try{ Debug.Log("leaderboard response: " +request.downloadHandler.text);
string[] items = request.downloadHandler.text.Split("<td>"); if(request.downloadHandler.text.Contains("{")){
Leaderboard = new List<LeaderboardItemData>(); try{
foreach(string item in items){ string[] items = request.downloadHandler.text.Split("<td>");
LeaderboardItemData newItem = JsonConvert.DeserializeObject<LeaderboardItemData>(item); Leaderboard = new List<LeaderboardItemData>();
foreach(string item in items){
Leaderboard.Add(newItem); if(item == DataManager.userData.username){
} foundMe=true;
}
Debug.Log("Success parsing userdata"); LeaderboardItemData newItem = JsonConvert.DeserializeObject<LeaderboardItemData>(item);
Leaderboard.Add(newItem);
}
}catch(Exception e){ Debug.Log("Success parsing userdata");
Debug.Log("Error parsing leaderboard"); }catch(Exception e){
} Debug.Log("Error parsing leaderboard");
}else{ }
}else{
MessageBox.ShowMessage("Error getting leaderboard, Server said\n" +request.downloadHandler.text); MessageBox.ShowMessage("Error getting leaderboard, Server said\n" +request.downloadHandler.text);
}
} }
} if(!foundMe){
} form.AddField("id",DataManager.userData.id);
form.AddField("topScore","1");
}
using (UnityWebRequest request = UnityWebRequest.Post(API_ENDPOINT + "get_player_position.php", form))
[System.Serializable] {
public class UserData{ var operation = request.SendWebRequest();
public int id; while (!operation.isDone)
public string username; {
public string password; await Task.Yield();
public int score; }
public int TopScore; Debug.Log("my position: " +request.downloadHandler.text);
public int faucetId;
LeaderboardItemData newItem = new LeaderboardItemData(){position=int.Parse(request.downloadHandler.text), name= DataManager.userData.username, topScore = DataManager.userData.TopScore};
Leaderboard.Add(newItem);
public override string ToString() }
{ }
return JsonConvert.SerializeObject(this); }
}
}
}
[System.Serializable]
public class LeaderboardItemData{ [System.Serializable]
public int position; public class UserData{
public string name; public int id;
public int topScore; public string username;
public string password;
public string DisplayName{get{ public int score;
string _name= name; public int TopScore;
if(name.Contains("#0")){ public int faucetId;
_name = _name.Substring(0,name.IndexOf("@gmail"));
}
public override string ToString()
return _name; {
}} return JsonConvert.SerializeObject(this);
} }
}
[System.Serializable]
public class LeaderboardItemData{
public int position;
public string name;
public int topScore;
public int Score;
public string DisplayName{get{
string _name= name;
if(name.Contains("#0")){
_name = _name.Substring(0,name.IndexOf("@gmail"));
}
return _name;
}}
}

View File

@ -1,36 +1,36 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Security.Cryptography; using System.Security.Cryptography;
using UnityEngine; using UnityEngine;
public class EncryptionTester : MonoBehaviour public class EncryptionTester : MonoBehaviour
{ {
public PaddingMode paddingMode; public PaddingMode paddingMode;
public CipherMode cipherMode; public CipherMode cipherMode;
[Header("Encryption")] [Header("Encryption")]
public string textToEncrypt; public string textToEncrypt;
public string encryptedText; public string encryptedText;
[Header("Decryption")] [Header("Decryption")]
public string textToDecrypt; public string textToDecrypt;
public string decryptedText; public string decryptedText;
[Header("Numbers")] [Header("Numbers")]
[Header("Encryption")] [Header("Encryption")]
public int numberToEncrypt; public int numberToEncrypt;
public string encryptedNumber; public string encryptedNumber;
[Header("Encryption")] [Header("Encryption")]
public string numTextToDecrypt; public string numTextToDecrypt;
public int decryptedNumber; public int decryptedNumber;
void OnDrawGizmos(){ void OnDrawGizmos(){
Encryptor.cipherMode = cipherMode; Encryptor.cipherMode = cipherMode;
Encryptor.paddingMode = paddingMode; Encryptor.paddingMode = paddingMode;
encryptedText = Encryptor.encrypt(textToEncrypt); encryptedText = Encryptor.encrypt(textToEncrypt);
decryptedText = Encryptor.decrypt(textToDecrypt); decryptedText = Encryptor.decrypt(textToDecrypt);
encryptedNumber = Encryptor.intToString(numberToEncrypt); encryptedNumber = Encryptor.intToString(numberToEncrypt);
decryptedNumber = Encryptor.stringToInt(numTextToDecrypt); decryptedNumber = Encryptor.stringToInt(numTextToDecrypt);
} }
} }

View File

@ -1,102 +1,102 @@
 
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System; using System;
public static class Encryptor public static class Encryptor
{ {
private static string hash = "@419$"; private static string hash = "@419$";
public static PaddingMode paddingMode = PaddingMode.PKCS7; public static PaddingMode paddingMode = PaddingMode.PKCS7;
public static CipherMode cipherMode = CipherMode.ECB; public static CipherMode cipherMode = CipherMode.ECB;
private static string charPool = "AKFLDJAHSPIWUROCNMZX"; private static string charPool = "AKFLDJAHSPIWUROCNMZX";
public static string encrypt(string input) public static string encrypt(string input)
{ {
byte[] data = UTF8Encoding.UTF8.GetBytes(input); byte[] data = UTF8Encoding.UTF8.GetBytes(input);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{ {
byte[] key = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash)); byte[] key = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider() { Key=key, Mode = cipherMode, Padding = paddingMode }) using (TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider() { Key=key, Mode = cipherMode, Padding = paddingMode })
{ {
ICryptoTransform ict = tds.CreateEncryptor(); ICryptoTransform ict = tds.CreateEncryptor();
byte[] results = ict.TransformFinalBlock(data, 0, data.Length); byte[] results = ict.TransformFinalBlock(data, 0, data.Length);
return Convert.ToBase64String(results, 0, results.Length); return Convert.ToBase64String(results, 0, results.Length);
} }
} }
} }
public static string decrypt(string input) public static string decrypt(string input)
{ {
byte[] data = Convert.FromBase64String(input); byte[] data = Convert.FromBase64String(input);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{ {
byte[] key = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash)); byte[] key = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider() { Key = key, Mode = cipherMode, Padding = paddingMode }) using (TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider() { Key = key, Mode = cipherMode, Padding = paddingMode })
{ {
ICryptoTransform ict = tds.CreateDecryptor(); ICryptoTransform ict = tds.CreateDecryptor();
byte[] results = ict.TransformFinalBlock(data, 0, data.Length); byte[] results = ict.TransformFinalBlock(data, 0, data.Length);
return UTF8Encoding.UTF8.GetString(results); return UTF8Encoding.UTF8.GetString(results);
} }
} }
} }
public static string intToString(int input){ public static string intToString(int input){
char[] inputBytes = input.ToString().ToCharArray(); char[] inputBytes = input.ToString().ToCharArray();
string output = ""; string output = "";
foreach(char c in inputBytes){ foreach(char c in inputBytes){
output += charPool[int.Parse(c.ToString())]; output += charPool[int.Parse(c.ToString())];
} }
int luckyNumber = GetLuckyNumber(input); int luckyNumber = GetLuckyNumber(input);
string lastLetter = charPool.ToCharArray()[luckyNumber].ToString(); string lastLetter = charPool.ToCharArray()[luckyNumber].ToString();
return output+lastLetter; return output+lastLetter;
} }
public static int stringToInt(string input){ public static int stringToInt(string input){
char[] inputBytes = input.Remove(input.Length-1).ToCharArray(); char[] inputBytes = input.Remove(input.Length-1).ToCharArray();
string output = ""; string output = "";
foreach(char c in inputBytes){ foreach(char c in inputBytes){
for(int i=0; i < charPool.Length; i++){ for(int i=0; i < charPool.Length; i++){
if(charPool.ToCharArray()[i] == c){ if(charPool.ToCharArray()[i] == c){
output += i.ToString(); output += i.ToString();
break; break;
} }
} }
} }
char lastchar = input.ToCharArray()[input.Length-1]; char lastchar = input.ToCharArray()[input.Length-1];
int outputInt = int.Parse(output); int outputInt = int.Parse(output);
char luckyChar = charPool.ToCharArray()[GetLuckyNumber(outputInt)]; char luckyChar = charPool.ToCharArray()[GetLuckyNumber(outputInt)];
bool validated = luckyChar == lastchar; bool validated = luckyChar == lastchar;
if(validated){ if(validated){
return outputInt; return outputInt;
}else{ }else{
return -1; return -1;
} }
} }
public static int GetLuckyNumber(int input){ public static int GetLuckyNumber(int input){
int luckyNumber=input; int luckyNumber=input;
while(luckyNumber >= 10){ while(luckyNumber >= 10){
int val = 0; int val = 0;
for(int i=0; i < luckyNumber.ToString().Length; i++){ for(int i=0; i < luckyNumber.ToString().Length; i++){
val += int.Parse(luckyNumber.ToString().ToCharArray()[i].ToString()); val += int.Parse(luckyNumber.ToString().ToCharArray()[i].ToString());
} }
luckyNumber = val; luckyNumber = val;
} }
return luckyNumber; return luckyNumber;
} }
} }

View File

@ -1,290 +1,290 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using UnityEngine.UI; using UnityEngine.UI;
public class GameManager : MonoBehaviour public class GameManager : MonoBehaviour
{ {
public static GameManager instance{get; private set;} public static GameManager instance{get; private set;}
void Awake(){ void Awake(){
instance=this; instance=this;
} }
public Rigidbody2D ball; public Rigidbody2D ball;
public float holeCheckRadius =1; public float holeCheckRadius =1;
public Transform cam; public Transform cam;
public Vector3 camTargetPos; public Vector3 camTargetPos;
public float cameraSmoothness = 0.1f; public float cameraSmoothness = 0.1f;
public Vector3 cameraOffset ; public Vector3 cameraOffset ;
public float inputSensitivity = 100f; public float inputSensitivity = 100f;
public float BallFriction = 0.1f; public float BallFriction = 0.1f;
public float BallFrictionStop = 0.1f; public float BallFrictionStop = 0.1f;
public float StopVelocity = 0.01f; public float StopVelocity = 0.01f;
public float SlowVelocity = 1f; public float SlowVelocity = 1f;
public float StopTime = 0.1f; public float StopTime = 0.1f;
public float curVelocity; public float curVelocity;
public float forceMultiplier; public float forceMultiplier;
public Transform ballProjection; public Transform ballProjection;
public float ballProjectionScaleMin, ballProjectionScaleMax; public float ballProjectionScaleMin, ballProjectionScaleMax;
[Header("Game")] [Header("Game")]
public int MaxStrokes; public int MaxStrokes;
[SerializeField]private int m_curStrokes; [SerializeField]private int m_curStrokes;
public int CurStrokes{get{return m_curStrokes;} set{ m_curStrokes=value; UpdateUI();}} public int CurStrokes{get{return m_curStrokes;} set{ m_curStrokes=value; UpdateUI();}}
private int m_curScore; private int m_curScore;
public int Score{get {return m_curScore;} set{ m_curScore = value; UpdateUI(); }} public int Score{get {return m_curScore;} set{ m_curScore = value; UpdateUI(); }}
public Text StrokesTxt; public Text StrokesTxt;
public Text ScoreTxt; public Text ScoreTxt;
public Text gameOverBestScoreTxt, gameOverTotalScoreTxt; public Text gameOverBestScoreTxt, gameOverTotalScoreTxt;
public GameObject GameOverUI; public GameObject GameOverUI;
public GameObject PauseMenuUI; public GameObject PauseMenuUI;
public Button muteBtn; public Button muteBtn;
public Sprite muteIcon, unmuteIcon; public Sprite muteIcon, unmuteIcon;
public Animator HoleInOne; public Animator HoleInOne;
public int curHoleIndex; public int curHoleIndex;
private static int adCounter = 0; private static int adCounter = 0;
void Start() void Start()
{ {
muteBtn.onClick.AddListener(OnMute); muteBtn.onClick.AddListener(OnMute);
strokesTxtDefaultSize = StrokesTxt.transform.localScale; strokesTxtDefaultSize = StrokesTxt.transform.localScale;
scoreTxtDefaultSize = ScoreTxt.transform.localScale; scoreTxtDefaultSize = ScoreTxt.transform.localScale;
camTargetPos = ball.transform.position; camTargetPos = ball.transform.position;
CurStrokes =1; CurStrokes =1;
lastPosition = ball.transform.position; lastPosition = ball.transform.position;
ball.transform.position = LevelGenerator.holes[3].transform.position; ball.transform.position = LevelGenerator.holes[3].transform.position;
Debug.Log("Moving ball to " + LevelGenerator.holes[3].transform.position); Debug.Log("Moving ball to " + LevelGenerator.holes[3].transform.position);
curHoleIndex = 2; curHoleIndex = 2;
} }
float stopCooldown = 0; float stopCooldown = 0;
public bool isGrounded; public bool isGrounded;
public static Vector3 lastPosition; public static Vector3 lastPosition;
void Update(){ void Update(){
float distToFirst = ball.transform.position.x - LevelGenerator.holes[curHoleIndex].transform.position.x; float distToFirst = ball.transform.position.x - LevelGenerator.holes[curHoleIndex].transform.position.x;
float distToLast = LevelGenerator.holes[curHoleIndex+1].transform.position.x - ball.transform.position.x; float distToLast = LevelGenerator.holes[curHoleIndex+1].transform.position.x - ball.transform.position.x;
if(distToFirst < -11 || distToLast < -11){ if(distToFirst < -11 || distToLast < -11){
//Out of bounds, return to safe //Out of bounds, return to safe
ball.transform.position = lastPosition; ball.transform.position = lastPosition;
ball.velocity=Vector2.zero; ball.velocity=Vector2.zero;
ball.simulated=false; ball.simulated=false;
} }
} }
void FixedUpdate(){ void FixedUpdate(){
Collider2D[] cols = Physics2D.OverlapCircleAll(ball.transform.position, holeCheckRadius); Collider2D[] cols = Physics2D.OverlapCircleAll(ball.transform.position, holeCheckRadius);
isGrounded=false; isGrounded=false;
foreach(Collider2D col in cols){ foreach(Collider2D col in cols){
if(col.tag == "Ground"){ if(col.tag == "Ground"){
isGrounded=true; isGrounded=true;
} }
} }
curVelocity = ball.velocity.magnitude; curVelocity = ball.velocity.magnitude;
ball.velocity = Vector2.Lerp(ball.velocity, new Vector2(0, ball.velocity.y), BallFriction); ball.velocity = Vector2.Lerp(ball.velocity, new Vector2(0, ball.velocity.y), BallFriction);
if(isGrounded){ ball.velocity = Vector2.Lerp(ball.velocity, new Vector2(0, ball.velocity.y), ball.velocity.y > 0 ? BallFrictionStop : BallFrictionStop/10f);} if(isGrounded){ ball.velocity = Vector2.Lerp(ball.velocity, new Vector2(0, ball.velocity.y), ball.velocity.y > 0 ? BallFrictionStop : BallFrictionStop/10f);}
if(Mathf.Abs(ball.velocity.magnitude) < StopVelocity){ if(Mathf.Abs(ball.velocity.magnitude) < StopVelocity){
if(stopCooldown > StopTime){ if(stopCooldown > StopTime){
ball.simulated=false; ball.simulated=false;
CheckHole(); CheckHole();
lastPosition=ball.transform.position; lastPosition=ball.transform.position;
}else{ }else{
stopCooldown+=Time.deltaTime; stopCooldown+=Time.deltaTime;
} }
}else{ }else{
stopCooldown=0; stopCooldown=0;
} }
} }
void LateUpdate() void LateUpdate()
{ {
cam.position = Vector3.Lerp(cam.position, new Vector3(camTargetPos.x, cam.position.y,cam.position.z) + cameraOffset, cameraSmoothness); cam.position = Vector3.Lerp(cam.position, new Vector3(camTargetPos.x, cam.position.y,cam.position.z) + cameraOffset, cameraSmoothness);
} }
private static bool cancelledHole = false; private static bool cancelledHole = false;
public static void CancelHole(){ public static void CancelHole(){
cancelledHole = true; cancelledHole = true;
} }
void CheckHole(){ void CheckHole(){
Collider2D[] cols = Physics2D.OverlapCircleAll(ball.transform.position, holeCheckRadius); Collider2D[] cols = Physics2D.OverlapCircleAll(ball.transform.position, holeCheckRadius);
foreach(Collider2D col in cols){ foreach(Collider2D col in cols){
if(col.tag == "Hole"){ if(col.tag == "Hole"){
Hole(col.transform.position); Hole(col.transform.position);
curHoleIndex++; curHoleIndex++;
camTargetPos = (Vector2)col.transform.position; camTargetPos = (Vector2)col.transform.position;
Destroy(col.gameObject); Destroy(col.gameObject);
break; break;
} }
} }
//No hole found //No hole found
if(CurStrokes <=0){ if(CurStrokes <=0){
GameOver(); GameOver();
} }
} }
public void GameOver(){ public void GameOver(){
if(GameOverUI.active){return;} if(GameOverUI.active){return;}
gameOverBestScoreTxt.text = DataManager.userData.TopScore.ToString(); gameOverBestScoreTxt.text = DataManager.userData.TopScore.ToString();
gameOverTotalScoreTxt.text = DataManager.userData.score.ToString(); gameOverTotalScoreTxt.text = DataManager.userData.score.ToString();
GameOverUI.SetActive(true); GameOverUI.SetActive(true);
adCounter++; adCounter++;
if(adCounter > 1){ if(adCounter > 1){
adCounter=0; adCounter=0;
AdsManager.instance.ShowIntAd(); AdsManager.instance.ShowIntAd();
} }
} }
public static async void Hole(Vector2 position){ public static async void Hole(Vector2 position){
while(instance.ball.simulated){ while(instance.ball.simulated){
await Task.Delay(100); await Task.Delay(100);
if(cancelledHole){return;} if(cancelledHole){return;}
} }
instance.ball.transform.position = position + new Vector2(0.6f, 0.75f); instance.ball.transform.position = position + new Vector2(0.6f, 0.75f);
instance.Score++; instance.Score++;
if(instance.CurStrokes >= instance.MaxStrokes-1){ if(instance.CurStrokes >= instance.MaxStrokes-1){
instance.HoleInOne.CrossFadeInFixedTime("Play",0.01f); instance.HoleInOne.CrossFadeInFixedTime("Play",0.01f);
instance.Score++; instance.Score++;
} }
instance.CurStrokes = instance.MaxStrokes; instance.CurStrokes = instance.MaxStrokes;
} }
bool dragging = false; bool dragging = false;
Vector2 startPos; Vector2 startPos;
public void OnMouseDown(BaseEventData e){ public void OnMouseDown(BaseEventData e){
if(CurStrokes <= 0){return;} if(CurStrokes <= 0){return;}
if(ball.simulated){return;} if(ball.simulated){return;}
PointerEventData ped = (PointerEventData) e as PointerEventData; PointerEventData ped = (PointerEventData) e as PointerEventData;
startPos = ped.position; startPos = ped.position;
dragging = true; dragging = true;
} }
public void OnMouseUp(BaseEventData e){ public void OnMouseUp(BaseEventData e){
if(CurStrokes <= 0){return;} if(CurStrokes <= 0){return;}
PointerEventData ped = (PointerEventData) e as PointerEventData; PointerEventData ped = (PointerEventData) e as PointerEventData;
if(dragging){ if(dragging){
Vector2 v = ((ped.position-startPos)/inputSensitivity); Vector2 v = ((ped.position-startPos)/inputSensitivity);
Shoot(v); Shoot(v);
} }
dragging = false; dragging = false;
ballProjection.position = Vector3.zero; ballProjection.position = Vector3.zero;
} }
void Shoot(Vector2 v){ void Shoot(Vector2 v){
if(v.magnitude > 1){v = v.normalized;} if(v.magnitude > 1){v = v.normalized;}
stopCooldown=0; stopCooldown=0;
ball.simulated=true; ball.simulated=true;
ball.AddForce(-v * forceMultiplier); ball.AddForce(-v * forceMultiplier);
CurStrokes--; CurStrokes--;
AudioManager.HitSfx(v.magnitude); AudioManager.HitSfx(v.magnitude);
} }
public void OnMouseDrag(BaseEventData e){ public void OnMouseDrag(BaseEventData e){
if(CurStrokes <= 0){return;} if(CurStrokes <= 0){return;}
if(ball.simulated){return;} if(ball.simulated){return;}
ballProjection.position = ball.position; ballProjection.position = ball.position;
PointerEventData ped = (PointerEventData) e as PointerEventData; PointerEventData ped = (PointerEventData) e as PointerEventData;
Vector2 v = ((ped.position-startPos)/inputSensitivity); Vector2 v = ((ped.position-startPos)/inputSensitivity);
// Debug.Log(v.magnitude); // Debug.Log(v.magnitude);
if(v.magnitude > 1){v = v.normalized;} if(v.magnitude > 1){v = v.normalized;}
Vector3 direction = (ped.position - startPos).normalized; Vector3 direction = (ped.position - startPos).normalized;
float rot_z = Mathf.Atan2(direction.y,direction.x) * Mathf.Rad2Deg; float rot_z = Mathf.Atan2(direction.y,direction.x) * Mathf.Rad2Deg;
ballProjection.rotation = Quaternion.Euler(0,0,rot_z+180); ballProjection.rotation = Quaternion.Euler(0,0,rot_z+180);
float scaleDiff = ballProjectionScaleMax - ballProjectionScaleMin; float scaleDiff = ballProjectionScaleMax - ballProjectionScaleMin;
ballProjection.GetChild(0).localScale = new Vector3(ballProjection.GetChild(0).localScale.x,ballProjectionScaleMin + (scaleDiff*v.magnitude)); ballProjection.GetChild(0).localScale = new Vector3(ballProjection.GetChild(0).localScale.x,ballProjectionScaleMin + (scaleDiff*v.magnitude));
} }
int _tempScore; int _tempScore;
int _tempStrokes; int _tempStrokes;
Vector3 scoreTxtDefaultSize, strokesTxtDefaultSize; Vector3 scoreTxtDefaultSize, strokesTxtDefaultSize;
public void UpdateUI(){ public void UpdateUI(){
if(Score != _tempScore){ if(Score != _tempScore){
_tempScore = Score; _tempScore = Score;
ScoreTxt.transform.localScale = scoreTxtDefaultSize; ScoreTxt.transform.localScale = scoreTxtDefaultSize;
LeanTween.scale(ScoreTxt.gameObject, scoreTxtDefaultSize * 2f , 0.5f).setEasePunch(); LeanTween.scale(ScoreTxt.gameObject, scoreTxtDefaultSize * 2f , 0.5f).setEasePunch();
} }
if(CurStrokes != _tempStrokes){ if(CurStrokes != _tempStrokes){
_tempStrokes = CurStrokes; _tempStrokes = CurStrokes;
LeanTween.scale(StrokesTxt.gameObject, strokesTxtDefaultSize * 1.5f, 0.5f).setEasePunch(); LeanTween.scale(StrokesTxt.gameObject, strokesTxtDefaultSize * 1.5f, 0.5f).setEasePunch();
} }
ScoreTxt.text = Score.ToString(); ScoreTxt.text = Score.ToString();
StrokesTxt.text = CurStrokes.ToString(); StrokesTxt.text = CurStrokes.ToString();
muteBtn.transform.GetChild(0).GetComponent<Image>().sprite = AudioManager.isMute ? muteIcon : unmuteIcon; muteBtn.transform.GetChild(0).GetComponent<Image>().sprite = AudioManager.isMute ? muteIcon : unmuteIcon;
} }
void OnMute(){ void OnMute(){
AudioManager.ToggleMute(); AudioManager.ToggleMute();
UpdateUI(); UpdateUI();
} }
void OnDrawGizmos(){ void OnDrawGizmos(){
Gizmos.DrawWireSphere(ball.transform.position, holeCheckRadius); Gizmos.DrawWireSphere(ball.transform.position, holeCheckRadius);
} }
public void WatchAd(){ public void WatchAd(){
AdsManager.instance.ShowRewardedAd(); AdsManager.instance.ShowRewardedAd();
} }
public static void AdWatched(){ public static void AdWatched(){
try{ try{
instance.GameOverUI.SetActive(false); instance.GameOverUI.SetActive(false);
instance.CurStrokes= (int)((float)instance.MaxStrokes/2f); instance.CurStrokes= (int)((float)instance.MaxStrokes/2f);
}catch{ }catch{
} }
} }
public void Restrt(){ public void Restrt(){
LoadingScreen.LoadLevel(SceneManager.GetActiveScene().name); LoadingScreen.LoadLevel(SceneManager.GetActiveScene().name);
DataManager.AddScores(Score); DataManager.AddScores(Score);
} }
public void MainMenu(){ public void MainMenu(){
LoadingScreen.LoadLevel("MainMenu"); LoadingScreen.LoadLevel("MainMenu");
DataManager.AddScores(Score); DataManager.AddScores(Score);
} }
public void PauseMenu(bool value){ public void PauseMenu(bool value){
if(value){ if(value){
LeanTween.scale(PauseMenuUI, Vector3.one, 0.15f).setEaseInCirc(); LeanTween.scale(PauseMenuUI, Vector3.one, 0.15f).setEaseInCirc();
}else{ }else{
LeanTween.scale(PauseMenuUI, Vector3.zero, 0.15f).setEaseOutCirc(); LeanTween.scale(PauseMenuUI, Vector3.zero, 0.15f).setEaseOutCirc();
} }
UpdateUI(); UpdateUI();
} }
} }

View File

@ -1,11 +1,11 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
[RequireComponent(typeof(Collider2D))] [RequireComponent(typeof(Collider2D))]
public class GolfBall : MonoBehaviour public class GolfBall : MonoBehaviour
{ {
void OnCollisionEnter2D(Collision2D other){ void OnCollisionEnter2D(Collision2D other){
AudioManager.DropSfx(other.relativeVelocity.magnitude); AudioManager.DropSfx(other.relativeVelocity.magnitude);
} }
} }

View File

@ -1,22 +1,22 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class Hole : MonoBehaviour public class Hole : MonoBehaviour
{ {
public void OnTriggerEnter2D(Collider2D other){ public void OnTriggerEnter2D(Collider2D other){
if(other.tag == "Player"){ if(other.tag == "Player"){
Debug.Log(other.name + " Entered hole"); Debug.Log(other.name + " Entered hole");
GameManager.Hole(transform.position); GameManager.Hole(transform.position);
} }
} }
public void OnTriggerExit2D(Collider2D other){ public void OnTriggerExit2D(Collider2D other){
if(other.tag == "Player"){ if(other.tag == "Player"){
Debug.Log(other.name + " Exited hole"); Debug.Log(other.name + " Exited hole");
GameManager.CancelHole(); GameManager.CancelHole();
} }
} }
} }

View File

@ -1,115 +1,115 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.U2D; using UnityEngine.U2D;
public class LevelGenerator : MonoBehaviour public class LevelGenerator : MonoBehaviour
{ {
public static LevelGenerator instance { get; private set; } public static LevelGenerator instance { get; private set; }
public GameObject spriteShapeControllerPrefab; public GameObject spriteShapeControllerPrefab;
public int LevelCount = 1000; public int LevelCount = 1000;
public float groundLevel = -5.5f; public float groundLevel = -5.5f;
public float maxHeight = 5; public float maxHeight = 5;
public Vector2 minDiff, maxDiff; public Vector2 minDiff, maxDiff;
public Vector3[] points {get; private set;} public Vector3[] points {get; private set;}
public GameObject holePrefab; public GameObject holePrefab;
public GameObject flagPrefab; public GameObject flagPrefab;
public GameObject treePrefab; public GameObject treePrefab;
public static List<GameObject> holes; public static List<GameObject> holes;
public int GoalDistance= 10; public int GoalDistance= 10;
void Awake() void Awake()
{ {
instance=this; instance=this;
holes = new List<GameObject>(); holes = new List<GameObject>();
GenerateBlock(); GenerateBlock();
GenerateBlock(); GenerateBlock();
} }
float lastOffset=0; float lastOffset=0;
void GenerateBlock(){ void GenerateBlock(){
float offset = lastOffset; float offset = lastOffset;
SpriteShapeController spriteShapeController = Instantiate(spriteShapeControllerPrefab, new Vector3(offset,0),Quaternion.identity).GetComponent<SpriteShapeController>(); SpriteShapeController spriteShapeController = Instantiate(spriteShapeControllerPrefab, new Vector3(offset,0),Quaternion.identity).GetComponent<SpriteShapeController>();
spriteShapeController.spline.Clear(); spriteShapeController.spline.Clear();
points = new Vector3[LevelCount+1]; points = new Vector3[LevelCount+1];
for(int i=0; i < LevelCount; i++){ for(int i=0; i < LevelCount; i++){
if(i ==0){ if(i ==0){
points[i] = new Vector3(0,groundLevel); points[i] = new Vector3(0,groundLevel);
spriteShapeController.spline.InsertPointAt(i, points[i]); spriteShapeController.spline.InsertPointAt(i, points[i]);
continue; continue;
} }
Vector3 addition = new Vector3(Random.Range(minDiff.x, maxDiff.x), Random.Range(minDiff.y, maxDiff.y)); Vector3 addition = new Vector3(Random.Range(minDiff.x, maxDiff.x), Random.Range(minDiff.y, maxDiff.y));
float newX = points[i-1].x + addition.x; float newX = points[i-1].x + addition.x;
float newY = points[i-1].y + addition.y; float newY = points[i-1].y + addition.y;
while(newY < groundLevel+2){ while(newY < groundLevel+2){
newY += Mathf.Abs(addition.y); newY += Mathf.Abs(addition.y);
} }
while(newY > maxHeight){ while(newY > maxHeight){
newY -= Mathf.Abs(addition.y); newY -= Mathf.Abs(addition.y);
} }
points[i] = new Vector3(newX, newY); points[i] = new Vector3(newX, newY);
// spriteShapeController.spline.InsertPointAt(i, points[i]); // spriteShapeController.spline.InsertPointAt(i, points[i]);
InsertNewPoint(spriteShapeController, points[i]); InsertNewPoint(spriteShapeController, points[i]);
if(Random.Range(0f,1f) > 0.5f){ if(Random.Range(0f,1f) > 0.5f){
Vector2 newTreePosition = points[i]; Vector2 newTreePosition = points[i];
Vector3 diff = points[i]-points[i-1]; Vector3 diff = points[i]-points[i-1];
Vector2 newTreePosition2 = points[i-1] + (diff/2f) + new Vector3(lastOffset,0); Vector2 newTreePosition2 = points[i-1] + (diff/2f) + new Vector3(lastOffset,0);
Debug.Log($"{points[i-1]} + {points[i]} - {points[i-1]} / 0.5f | diff = {diff}"); Debug.Log($"{points[i-1]} + {points[i]} - {points[i-1]} / 0.5f | diff = {diff}");
GameObject newTree = Instantiate(treePrefab, newTreePosition2, Quaternion.identity); GameObject newTree = Instantiate(treePrefab, newTreePosition2, Quaternion.identity);
newTree.transform.localScale = Vector3.one * Random.Range(0.75f, 1.1f); newTree.transform.localScale = Vector3.one * Random.Range(0.75f, 1.1f);
} }
if(i % GoalDistance == 0){ if(i % GoalDistance == 0){
InsertNewPoint(spriteShapeController, points[i] + new Vector3(0, -1f)); InsertNewPoint(spriteShapeController, points[i] + new Vector3(0, -1f));
InsertNewPoint(spriteShapeController, points[i] + new Vector3(1f, -1f)); InsertNewPoint(spriteShapeController, points[i] + new Vector3(1f, -1f));
InsertNewPoint(spriteShapeController, points[i] + new Vector3(1f, 0f)); InsertNewPoint(spriteShapeController, points[i] + new Vector3(1f, 0f));
Vector3 newHolePos = points[i] + new Vector3(lastOffset,0); Vector3 newHolePos = points[i] + new Vector3(lastOffset,0);
Instantiate(flagPrefab,newHolePos, Quaternion.identity); Instantiate(flagPrefab,newHolePos, Quaternion.identity);
holes.Add(Instantiate(holePrefab,newHolePos, Quaternion.identity)); holes.Add(Instantiate(holePrefab,newHolePos, Quaternion.identity));
} }
} }
points[LevelCount] = new Vector3(points[LevelCount-1].x+maxDiff.x, groundLevel); points[LevelCount] = new Vector3(points[LevelCount-1].x+maxDiff.x, groundLevel);
lastOffset = points[LevelCount].x - maxDiff.x; lastOffset = points[LevelCount].x - maxDiff.x;
InsertNewPoint(spriteShapeController, points[LevelCount]); InsertNewPoint(spriteShapeController, points[LevelCount]);
} }
void InsertNewPoint(SpriteShapeController spriteShapeController,Vector3 point){ void InsertNewPoint(SpriteShapeController spriteShapeController,Vector3 point){
int index= spriteShapeController.spline.GetPointCount(); int index= spriteShapeController.spline.GetPointCount();
spriteShapeController.spline.InsertPointAt(index, point); spriteShapeController.spline.InsertPointAt(index, point);
spriteShapeController.spline.SetLeftTangent(index, Vector3.zero); spriteShapeController.spline.SetLeftTangent(index, Vector3.zero);
spriteShapeController.spline.SetTangentMode(index, ShapeTangentMode.Broken); spriteShapeController.spline.SetTangentMode(index, ShapeTangentMode.Broken);
} }
float checker = 0; float checker = 0;
void Update() void Update()
{ {
if(GameManager.instance == null){return;} if(GameManager.instance == null){return;}
if(checker < 30){ if(checker < 30){
checker+=Time.deltaTime; checker+=Time.deltaTime;
}else{ }else{
checker =0; checker =0;
if(GameManager.instance.ball.position.x > lastOffset - 100){ if(GameManager.instance.ball.position.x > lastOffset - 100){
GenerateBlock(); GenerateBlock();
} }
} }
} }
} }

View File

@ -1,88 +1,88 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using UnityEngine.UI; using UnityEngine.UI;
public class LoadingScreen : MonoBehaviour public class LoadingScreen : MonoBehaviour
{ {
public static LoadingScreen instance {get; private set;} public static LoadingScreen instance {get; private set;}
[SerializeField]private Image loadingProgress; [SerializeField]private Image loadingProgress;
[SerializeField]private Text loadingProgressTxt; [SerializeField]private Text loadingProgressTxt;
void Awake(){ void Awake(){
if(instance != null){Destroy(gameObject);return;} if(instance != null){Destroy(gameObject);return;}
instance =this; instance =this;
canvasGroup = GetComponent<CanvasGroup>(); canvasGroup = GetComponent<CanvasGroup>();
Application.targetFrameRate = 60; Application.targetFrameRate = 60;
} }
void Start() void Start()
{ {
DontDestroyOnLoad(gameObject); DontDestroyOnLoad(gameObject);
} }
public static void LoadLevel(string levelName){ public static void LoadLevel(string levelName){
if(instance==null){Debug.LogError("No loading screen found, Raw load"); SceneManager.LoadScene(levelName); return;} if(instance==null){Debug.LogError("No loading screen found, Raw load"); SceneManager.LoadScene(levelName); return;}
instance.loadLevel(levelName); instance.loadLevel(levelName);
} }
public void loadLevel(string levelName){ public void loadLevel(string levelName){
if (loading) { return; } if (loading) { return; }
loading = true; loading = true;
StartCoroutine(_loadlLevel(levelName)); StartCoroutine(_loadlLevel(levelName));
} }
public static bool loading {get; private set;} public static bool loading {get; private set;}
private CanvasGroup canvasGroup; private CanvasGroup canvasGroup;
IEnumerator _loadlLevel(string levelName) IEnumerator _loadlLevel(string levelName)
{ {
// AudioManager.instnace.SetMusic(-1); // AudioManager.instnace.SetMusic(-1);
loading = true; loading = true;
canvasGroup.alpha = 0; canvasGroup.alpha = 0;
canvasGroup.blocksRaycasts = true; canvasGroup.blocksRaycasts = true;
SetProgress(0); SetProgress(0);
while (canvasGroup.alpha < 1f) while (canvasGroup.alpha < 1f)
{ {
canvasGroup.alpha += 0.03f; canvasGroup.alpha += 0.03f;
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
} }
AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(levelName); AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(levelName);
while (!asyncOperation.isDone) while (!asyncOperation.isDone)
{ {
SetProgress(asyncOperation.progress); SetProgress(asyncOperation.progress);
yield return null; yield return null;
} }
Debug.Log("Loaded scene " + levelName); Debug.Log("Loaded scene " + levelName);
// yield return new WaitForSecondsRealtime(2f); // yield return new WaitForSecondsRealtime(2f);
while(loadingProgress.fillAmount < 1){ while(loadingProgress.fillAmount < 1){
SetProgress( loadingProgress.fillAmount+0.01f); SetProgress( loadingProgress.fillAmount+0.01f);
yield return new WaitForSeconds(0.1f); yield return new WaitForSeconds(0.1f);
} }
canvasGroup.blocksRaycasts = false; canvasGroup.blocksRaycasts = false;
while (canvasGroup.alpha > 0) while (canvasGroup.alpha > 0)
{ {
canvasGroup.alpha -= 0.03f; canvasGroup.alpha -= 0.03f;
yield return new WaitForSecondsRealtime(0.015f); yield return new WaitForSecondsRealtime(0.015f);
} }
Debug.Log("Loading scene vanishing"); Debug.Log("Loading scene vanishing");
loading = false; loading = false;
} }
void SetProgress(float value) void SetProgress(float value)
{ {
loadingProgress.fillAmount = value; loadingProgress.fillAmount = value;
loadingProgressTxt.text = (int)(value * 100) + "%"; loadingProgressTxt.text = (int)(value * 100) + "%";
} }
} }

View File

@ -1,177 +1,177 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Google; using Google;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using UnityEngine.UI; using UnityEngine.UI;
public class Login : MonoBehaviour public class Login : MonoBehaviour
{ {
public Button helpBtn; public Button helpBtn;
public Button googleLoginBtn; public Button googleLoginBtn;
public Button[] switchBtns; public Button[] switchBtns;
public Text statusTxt; public Text statusTxt;
public GameObject quickLoginPanel, guestLoginPanel; public GameObject quickLoginPanel, guestLoginPanel;
public Button BtnGuestLogin; public Button BtnGuestLogin;
public InputField usernameInput, passwordInput; public InputField usernameInput, passwordInput;
bool quickLoginPanelOn =true; bool quickLoginPanelOn =true;
void Awake(){ void Awake(){
helpBtn.onClick.AddListener(OnHelp); helpBtn.onClick.AddListener(OnHelp);
googleLoginBtn.onClick.AddListener(OnSignIn); googleLoginBtn.onClick.AddListener(OnSignIn);
BtnGuestLogin.onClick.AddListener(OnGuestLogin); BtnGuestLogin.onClick.AddListener(OnGuestLogin);
// guestLoginBtn.onClick.AddListener(SwitchLoginPanel); // guestLoginBtn.onClick.AddListener(SwitchLoginPanel);
foreach(Button switchBtn in switchBtns){ foreach(Button switchBtn in switchBtns){
switchBtn.onClick.AddListener(SwitchLoginPanel); switchBtn.onClick.AddListener(SwitchLoginPanel);
} }
configuration = new GoogleSignInConfiguration { configuration = new GoogleSignInConfiguration {
WebClientId = webClientId, WebClientId = webClientId,
RequestIdToken = true, RequestIdToken = true,
RequestEmail=true, RequestEmail=true,
}; };
} }
async void AutoLogin(){ async void AutoLogin(){
Debug.Log("Start auto-login"); Debug.Log("Start auto-login");
if(PlayerPrefs.HasKey("username")){ if(PlayerPrefs.HasKey("username")){
Debug.Log("Has saved credentials, Trying to login with them"); Debug.Log("Has saved credentials, Trying to login with them");
int loginResult = await DataManager.Login(PlayerPrefs.GetString("username"), PlayerPrefs.GetString("password")); int loginResult = await DataManager.Login(PlayerPrefs.GetString("username"), PlayerPrefs.GetString("password"));
if(loginResult == 0){ if(loginResult == 0){
LoadingScreen.LoadLevel("MainMenu"); LoadingScreen.LoadLevel("MainMenu");
}else{ }else{
Debug.Log("Failed auto-login"); Debug.Log("Failed auto-login");
} }
} }
} }
void Start(){ void Start(){
AutoLogin(); AutoLogin();
} }
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
} }
void OnGuestLogin(){ void OnGuestLogin(){
if(usernameInput.text.Length < 3){ if(usernameInput.text.Length < 3){
MessageBox.ShowMessage("Please enter a username longer than 3 characters"); MessageBox.ShowMessage("Please enter a username longer than 3 characters");
return; return;
} }
if(usernameInput.text.Contains("#")){ if(usernameInput.text.Contains("#")){
MessageBox.ShowMessage("Characters like #,$,%,^,& can't be included in username"); MessageBox.ShowMessage("Characters like #,$,%,^,& can't be included in username");
return; return;
} }
if(passwordInput.text.Length < 5){ if(passwordInput.text.Length < 5){
MessageBox.ShowMessage("Please enter a password with more than 5 characters to stay secure!"); MessageBox.ShowMessage("Please enter a password with more than 5 characters to stay secure!");
return; return;
} }
DataManager.Login(usernameInput.text, passwordInput.text); DataManager.Login(usernameInput.text, passwordInput.text);
} }
void OnHelp(){ void OnHelp(){
MessageBox.ShowMessage("This game saves your progress in cloud, in order to preserve the data. We need you to login with either Google or Guest login.", "Why Login?"); MessageBox.ShowMessage("This game saves your progress in cloud, in order to preserve the data. We need you to login with either Google or Guest login.", "Why Login?");
} }
void SwitchLoginPanel(){ void SwitchLoginPanel(){
quickLoginPanelOn = !quickLoginPanelOn; quickLoginPanelOn = !quickLoginPanelOn;
LeanTween.scale(quickLoginPanel, quickLoginPanelOn ? Vector3.one : Vector3.zero, 0.5f).setEase(LeanTweenType.easeOutElastic); LeanTween.scale(quickLoginPanel, quickLoginPanelOn ? Vector3.one : Vector3.zero, 0.5f).setEase(LeanTweenType.easeOutElastic);
LeanTween.scale(guestLoginPanel, quickLoginPanelOn ? Vector3.zero : Vector3.one, 0.5f).setEase(LeanTweenType.easeOutElastic); LeanTween.scale(guestLoginPanel, quickLoginPanelOn ? Vector3.zero : Vector3.one, 0.5f).setEase(LeanTweenType.easeOutElastic);
} }
public Text statusText; public Text statusText;
public string webClientId = "<your client id here>"; public string webClientId = "<your client id here>";
private GoogleSignInConfiguration configuration; private GoogleSignInConfiguration configuration;
public void OnSignIn() { public void OnSignIn() {
GoogleSignIn.Configuration = configuration; GoogleSignIn.Configuration = configuration;
GoogleSignIn.Configuration.UseGameSignIn = false; GoogleSignIn.Configuration.UseGameSignIn = false;
GoogleSignIn.Configuration.RequestIdToken = true; GoogleSignIn.Configuration.RequestIdToken = true;
// AddStatusText("Calling SignIn"); // AddStatusText("Calling SignIn");
GoogleSignIn.DefaultInstance.SignIn().ContinueWith( GoogleSignIn.DefaultInstance.SignIn().ContinueWith(
OnAuthenticationFinished); OnAuthenticationFinished);
} }
public void OnSignOut() { public void OnSignOut() {
// AddStatusText("Calling SignOut"); // AddStatusText("Calling SignOut");
GoogleSignIn.DefaultInstance.SignOut(); GoogleSignIn.DefaultInstance.SignOut();
} }
public void OnDisconnect() { public void OnDisconnect() {
// AddStatusText("Calling Disconnect"); // AddStatusText("Calling Disconnect");
GoogleSignIn.DefaultInstance.Disconnect(); GoogleSignIn.DefaultInstance.Disconnect();
} }
internal void OnAuthenticationFinished(Task<GoogleSignInUser> task) { internal void OnAuthenticationFinished(Task<GoogleSignInUser> task) {
if (task.IsFaulted) { if (task.IsFaulted) {
using (IEnumerator<System.Exception> enumerator = using (IEnumerator<System.Exception> enumerator =
task.Exception.InnerExceptions.GetEnumerator()) { task.Exception.InnerExceptions.GetEnumerator()) {
if (enumerator.MoveNext()) { if (enumerator.MoveNext()) {
GoogleSignIn.SignInException error = GoogleSignIn.SignInException error =
(GoogleSignIn.SignInException)enumerator.Current; (GoogleSignIn.SignInException)enumerator.Current;
// AddStatusText("Got Error: " + error.Status + " " + error.Message); // AddStatusText("Got Error: " + error.Status + " " + error.Message);
MessageBox.ShowMessage("Got Error: " + error.Status + " " + error.Message); MessageBox.ShowMessage("Got Error: " + error.Status + " " + error.Message);
} else { } else {
// AddStatusText("Got Unexpected Exception?!?" + task.Exception); // AddStatusText("Got Unexpected Exception?!?" + task.Exception);
MessageBox.ShowMessage("Got Unexpected Exception?!?" + task.Exception); MessageBox.ShowMessage("Got Unexpected Exception?!?" + task.Exception);
} }
} }
} else if(task.IsCanceled) { } else if(task.IsCanceled) {
// AddStatusText("Canceled"); // AddStatusText("Canceled");
} else { } else {
// AddStatusText("Welcome: " + task.Result.DisplayName + "!"); // AddStatusText("Welcome: " + task.Result.DisplayName + "!");
// MessageBox.ShowMessage($"email: {task.Result.Email}\nDisplay:{task.Result.DisplayName}\ntoken:{task.Result.IdToken}"); // MessageBox.ShowMessage($"email: {task.Result.Email}\nDisplay:{task.Result.DisplayName}\ntoken:{task.Result.IdToken}");
StartCoroutine(DoneLogin(task.Result.Email)); StartCoroutine(DoneLogin(task.Result.Email));
} }
} }
IEnumerator DoneLogin(string username){ IEnumerator DoneLogin(string username){
yield return new WaitForSeconds(0.5f); yield return new WaitForSeconds(0.5f);
DataManager.GoogleLogin(username); DataManager.GoogleLogin(username);
} }
public void OnSignInSilently() { public void OnSignInSilently() {
GoogleSignIn.Configuration = configuration; GoogleSignIn.Configuration = configuration;
GoogleSignIn.Configuration.UseGameSignIn = false; GoogleSignIn.Configuration.UseGameSignIn = false;
GoogleSignIn.Configuration.RequestIdToken = true; GoogleSignIn.Configuration.RequestIdToken = true;
// AddStatusText("Calling SignIn Silently"); // AddStatusText("Calling SignIn Silently");
GoogleSignIn.DefaultInstance.SignInSilently() GoogleSignIn.DefaultInstance.SignInSilently()
.ContinueWith(OnAuthenticationFinished); .ContinueWith(OnAuthenticationFinished);
} }
public void OnGamesSignIn() { public void OnGamesSignIn() {
GoogleSignIn.Configuration = configuration; GoogleSignIn.Configuration = configuration;
GoogleSignIn.Configuration.UseGameSignIn = true; GoogleSignIn.Configuration.UseGameSignIn = true;
GoogleSignIn.Configuration.RequestIdToken = false; GoogleSignIn.Configuration.RequestIdToken = false;
// AddStatusText("Calling Games SignIn"); // AddStatusText("Calling Games SignIn");
GoogleSignIn.DefaultInstance.SignIn().ContinueWith( GoogleSignIn.DefaultInstance.SignIn().ContinueWith(
OnAuthenticationFinished); OnAuthenticationFinished);
} }
private List<string> messages = new List<string>(); private List<string> messages = new List<string>();
} }

View File

@ -1,155 +1,183 @@
using System.Collections; using System;
using System.Collections.Generic; using System.Collections;
using Google; using System.Collections.Generic;
using UnityEngine; using System.Threading.Tasks;
using UnityEngine.SceneManagement; using Google;
using UnityEngine.UI; using UnityEngine;
public class MainMenu : MonoBehaviour using UnityEngine.SceneManagement;
{ using UnityEngine.UI;
public class MainMenu : MonoBehaviour
public GameObject MainMenuPanel; {
public GameObject SettingsPanel;
public GameObject LeaderboarPanel; public GameObject MainMenuPanel;
public GameObject LinkAccountPanel; public GameObject SettingsPanel;
public InputField fhid_input; public GameObject LeaderboarPanel;
public Button btnLink; public GameObject LinkAccountPanel;
public Transform LeaderboardItemsParent; public InputField fhid_input;
public float transitionTime; public Button btnLink;
public LeanTweenType transitionEffect; public Transform LeaderboardItemsParent;
public float transitionTime;
private Vector2 defaultCenter; public LeanTweenType transitionEffect;
public Button copyBtn, muteBtn;
public Button signoutBtn; private Vector2 defaultCenter;
public Sprite muteIcon, unmuteIcon; public Button copyBtn, muteBtn;
public Button signoutBtn;
public Sprite muteIcon, unmuteIcon;
public Text txtUserId;
public Image totalScoreBG, scoreBG;
void Awake(){
if(!DataManager.isLogged){
SceneManager.LoadScene(0); public Text txtUserId;
return;
} public Text txtSeasonTimer;
defaultCenter = MainMenuPanel.transform.position;
SettingsPanel.transform.position = MainMenuPanel.transform.position - new Vector3(10000,0); void Awake(){
SettingsPanel.SetActive(true); if(!DataManager.isLogged){
LeaderboarPanel.SetActive(true); SceneManager.LoadScene(0);
LeaderboarPanel.transform.position = MainMenuPanel.transform.position + new Vector3(10000,0); return;
}
muteBtn.onClick.AddListener(ToggleMute); defaultCenter = MainMenuPanel.transform.position;
copyBtn.onClick.AddListener(CopyId); SettingsPanel.transform.position = MainMenuPanel.transform.position - new Vector3(10000,0);
signoutBtn.onClick.AddListener(SignOut); SettingsPanel.SetActive(true);
LeaderboarPanel.SetActive(true);
btnLink.onClick.AddListener(OnLinkClicked); LeaderboarPanel.transform.position = MainMenuPanel.transform.position + new Vector3(10000,0);
DataManager.RefreshLeaderboard(); muteBtn.onClick.AddListener(ToggleMute);
} copyBtn.onClick.AddListener(CopyId);
public void Leave(){ signoutBtn.onClick.AddListener(SignOut);
Application.Quit();
} btnLink.onClick.AddListener(OnLinkClicked);
void Start(){ DataManager.RefreshLeaderboard();
Refresh(); }
// MessageBox.ShowMessage("Welcome to Infinite Golf 2D.\nThis is a slow paced 2d endless golf game, All the levels are proceduraly generated and you will be rewarded for putting the ball in every and each hole.\n\nGood Luck","Welcome"); public void Leave(){
} Application.Quit();
}
void Refresh(){ void Start(){
txtUserId.text = Encryptor.intToString(DataManager.userData.id); Refresh();
if(AudioManager.isMute){ // MessageBox.ShowMessage("Welcome to Infinite Golf 2D.\nThis is a slow paced 2d endless golf game, All the levels are proceduraly generated and you will be rewarded for putting the ball in every and each hole.\n\nGood Luck","Welcome");
muteBtn.transform.GetChild(0).GetComponent<Image>().sprite = muteIcon; }
}else{
muteBtn.transform.GetChild(0).GetComponent<Image>().sprite = unmuteIcon;
} void Refresh(){
} txtUserId.text = Encryptor.intToString(DataManager.userData.id);
if(AudioManager.isMute){
public void SettingsPage(){ muteBtn.transform.GetChild(0).GetComponent<Image>().sprite = muteIcon;
LeanTween.moveX(MainMenuPanel, 10000, transitionTime).setEase(transitionEffect); }else{
LeanTween.moveX(SettingsPanel, defaultCenter.x, transitionTime).setEase(transitionEffect); muteBtn.transform.GetChild(0).GetComponent<Image>().sprite = unmuteIcon;
} }
DateTime now = DateTime.Now;
public void LeaderboarPage(){ DateTime nextSeason = new DateTime(now.Year, (now.Month < 12) ? now.Month+1 : 1,1);
LeanTween.moveX(MainMenuPanel, -10000, transitionTime).setEase(transitionEffect); txtSeasonTimer.text = "Season Ends In : <size=80>" +(nextSeason - now).Days + "</size> Days";
LeanTween.moveX(LeaderboarPanel, defaultCenter.x, transitionTime).setEase(transitionEffect); }
RefreshLeaderboard();
}
public void ShowInfoSeason(){
public void MainPage(){ MessageBox.ShowMessage("When the new season begins your Score and Top Score will reset\n By the end of this season, Current scores will be preserved and can be seen on this season's leaderboard", "Season info");
LeanTween.moveX(MainMenuPanel, defaultCenter.x, transitionTime).setEase(transitionEffect); }
LeanTween.moveX(SettingsPanel, -10000, transitionTime).setEase(transitionEffect);
LeanTween.moveX(LeaderboarPanel, 10000, transitionTime).setEase(transitionEffect); public void SettingsPage(){
} LeanTween.moveX(MainMenuPanel, 10000, transitionTime).setEase(transitionEffect);
LeanTween.moveX(SettingsPanel, defaultCenter.x, transitionTime).setEase(transitionEffect);
public void OpenLinkPanel(){ }
if(DataManager.userData.faucetId > 0){
MessageBox.ShowMessage("You've already linked this player account to Faucet Hub.", "Already Linked"); public void LeaderboarPage(){
return; LeanTween.moveX(MainMenuPanel, -10000, transitionTime).setEase(transitionEffect);
} LeanTween.moveX(LeaderboarPanel, defaultCenter.x, transitionTime).setEase(transitionEffect);
// RefreshLeaderboard();
LinkAccountPanel.transform.localScale = Vector3.zero; ToggleTotalScoreLeaderboardAsync(false);
LinkAccountPanel.SetActive(true); }
LeanTween.scale(LinkAccountPanel, Vector3.one, transitionTime/2f).setEase(LeanTweenType.easeInCirc); public void MainPage(){
} LeanTween.moveX(MainMenuPanel, defaultCenter.x, transitionTime).setEase(transitionEffect);
LeanTween.moveX(SettingsPanel, -10000, transitionTime).setEase(transitionEffect);
public async void OnLinkClicked(){ LeanTween.moveX(LeaderboarPanel, 10000, transitionTime).setEase(transitionEffect);
btnLink.interactable=false; }
if(fhid_input.text.Length <= 0){
Debug.Log("Empty FHID was entered"); public void OpenLinkPanel(){
MessageBox.ShowMessage("Please enter a valid faucet hub ID","Invalid FH ID"); if(DataManager.userData.faucetId > 0){
return; MessageBox.ShowMessage("You've already linked this player account to Faucet Hub.", "Already Linked");
} return;
}
int result = await DataManager.LinkFH(fhid_input.text);
if(result == 0){ LinkAccountPanel.transform.localScale = Vector3.zero;
MessageBox.ShowMessage("Congrats! You've successfully linked this player account with Faucet Hub. Enjoy!", "Success"); LinkAccountPanel.SetActive(true);
LinkAccountPanel.SetActive(false);
}else{ LeanTween.scale(LinkAccountPanel, Vector3.one, transitionTime/2f).setEase(LeanTweenType.easeInCirc);
MessageBox.ShowMessage("Something went wrong trying to link this play account to FH ID of " + fhid_input.text, "Link failed"); }
} public async void OnLinkClicked(){
btnLink.interactable=false;
btnLink.interactable=true; if(fhid_input.text.Length <= 0){
} Debug.Log("Empty FHID was entered");
MessageBox.ShowMessage("Please enter a valid faucet hub ID","Invalid FH ID");
public void CopyId(){ return;
GUIUtility.systemCopyBuffer = txtUserId.text; }
copyBtn.transform.Find("lbl").GetComponent<Text>().text = "Copied";
} int result = await DataManager.LinkFH(fhid_input.text);
if(result == 0){
public void ToggleMute(){ MessageBox.ShowMessage("Congrats! You've successfully linked this player account with Faucet Hub. Enjoy!", "Success");
AudioManager.ToggleMute(); LinkAccountPanel.SetActive(false);
Refresh(); }else{
} MessageBox.ShowMessage("Something went wrong trying to link this play account to FH ID of " + fhid_input.text, "Link failed");
public void Info(){ }
MessageBox.ShowMessage(@"This is a game where you can relax while playing,
Listen to a podcast or to music while playing this to get the best out of it! btnLink.interactable=true;
}
Any feedback or suggestion can be directed to us via this email
sewmina7@gmail.com","About"); public void CopyId(){
} GUIUtility.systemCopyBuffer = txtUserId.text;
copyBtn.transform.Find("lbl").GetComponent<Text>().text = "Copied";
async void RefreshLeaderboard(){ }
UpdateLeaderboardUI();
await DataManager.RefreshLeaderboard(); public void ToggleMute(){
UpdateLeaderboardUI(); AudioManager.ToggleMute();
} Refresh();
}
void UpdateLeaderboardUI(){
for(int i =0; i < DataManager.Leaderboard.Count; i++){ public void Info(){
LeaderboardItemsParent.GetChild(i).GetChild(0).GetComponent<Text>().text = $"{i+1}." + DataManager.Leaderboard[i].DisplayName; MessageBox.ShowMessage(@"This is a game where you can relax while playing,
// LeaderboardItemsParent.GetChild(i).GetChild(0).GetComponent<Text>().text = $"{i+1}." + DataManager.Leaderboard[i].name; Listen to a podcast or to music while playing this to get the best out of it!
LeaderboardItemsParent.GetChild(i).GetChild(1).GetComponent<Text>().text = DataManager.Leaderboard[i].topScore.ToString();
Any feedback or suggestion can be directed to us via this email
LeaderboardItemsParent.GetChild(i).GetComponent<Image>().CrossFadeAlpha((DataManager.Leaderboard[i].name == DataManager.userData.username) ? 0.9f : 0,0.5f,true); sewmina7@gmail.com","About");
} }
}
async void RefreshLeaderboard(){
void SignOut(){ UpdateLeaderboardUI();
await DataManager.RefreshLeaderboard();
UpdateLeaderboardUI();
DataManager.Signout(); }
SceneManager.LoadScene(0);
} void UpdateLeaderboardUI(){
} if(DataManager.Leaderboard == null){return;}
if(DataManager.Leaderboard.Count <= 0){return;}
for(int i =0; i < DataManager.Leaderboard.Count; i++){
LeaderboardItemsParent.GetChild(i).GetChild(0).GetComponent<Text>().text = $"{DataManager.Leaderboard[i].position}." + DataManager.Leaderboard[i].DisplayName;
// LeaderboardItemsParent.GetChild(i).GetChild(0).GetComponent<Text>().text = $"{i+1}." + DataManager.Leaderboard[i].name;
LeaderboardItemsParent.GetChild(i).GetChild(1).GetComponent<Text>().text = DataManager.Leaderboard[i].Score.ToString();
LeaderboardItemsParent.GetChild(i).GetChild(2).GetComponent<Text>().text = DataManager.Leaderboard[i].topScore.ToString();
LeaderboardItemsParent.GetChild(i).GetComponent<Image>().CrossFadeAlpha((DataManager.Leaderboard[i].name == DataManager.userData.username) ? 0.9f : 0,0.5f,true);
}
}
public async void ToggleTotalScoreLeaderboardAsync(bool total){
totalScoreBG.color = new Color(totalScoreBG.color.r, totalScoreBG.color.g, totalScoreBG.color.b, total? 1 : 0.1f);
scoreBG.color = new Color(scoreBG.color.r, scoreBG.color.g, scoreBG.color.b, total? 0.1f : 1f);
await DataManager.RefreshLeaderboard(total);
UpdateLeaderboardUI();
}
void SignOut(){
DataManager.Signout();
SceneManager.LoadScene(0);
}
}

View File

@ -1,58 +1,58 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
public class MessageBox : MonoBehaviour public class MessageBox : MonoBehaviour
{ {
public static MessageBox instance { get; private set;} public static MessageBox instance { get; private set;}
void Awake(){ void Awake(){
if(instance != null){Destroy(gameObject);} if(instance != null){Destroy(gameObject);}
instance = this; instance = this;
canvasGroup = GetComponent<CanvasGroup>(); canvasGroup = GetComponent<CanvasGroup>();
closeButton.onClick.AddListener(()=>{SetActive(false);}); closeButton.onClick.AddListener(()=>{SetActive(false);});
} }
private CanvasGroup canvasGroup; private CanvasGroup canvasGroup;
[SerializeField]private Text messageTxt; [SerializeField]private Text messageTxt;
[SerializeField]private Text titleTxt; [SerializeField]private Text titleTxt;
[SerializeField]private Button closeButton; [SerializeField]private Button closeButton;
void Start() void Start()
{ {
DontDestroyOnLoad(gameObject); DontDestroyOnLoad(gameObject);
SetActive(false); SetActive(false);
} }
void SetActive(bool value){ void SetActive(bool value){
// StartCoroutine(setActive(value)); // StartCoroutine(setActive(value));
canvasGroup.alpha= value ? 1 : 0; canvasGroup.alpha= value ? 1 : 0;
canvasGroup.blocksRaycasts = value; canvasGroup.blocksRaycasts = value;
canvasGroup.interactable = value; canvasGroup.interactable = value;
} }
private static string message; private static string message;
public static void ShowMessage(string message,string title = "Notice"){ public static void ShowMessage(string message,string title = "Notice"){
if(instance == null){Debug.LogError("Message was shown before message box was init");return;} if(instance == null){Debug.LogError("Message was shown before message box was init");return;}
instance.showMessage(message,title); instance.showMessage(message,title);
} }
public void showMessage(string _message, string title){ public void showMessage(string _message, string title){
message = _message; message = _message;
titleTxt.text = title; titleTxt.text = title;
StartCoroutine(_showMessage()); StartCoroutine(_showMessage());
SetActive(true); SetActive(true);
} }
IEnumerator _showMessage(){ IEnumerator _showMessage(){
messageTxt.text = ""; messageTxt.text = "";
closeButton.gameObject.SetActive(false); closeButton.gameObject.SetActive(false);
for(int i=0; i < message.Length; i++){ for(int i=0; i < message.Length; i++){
messageTxt.text += message[i]; messageTxt.text += message[i];
yield return new WaitForSeconds(0.01f); yield return new WaitForSeconds(0.01f);
} }
closeButton.gameObject.SetActive(true); closeButton.gameObject.SetActive(true);
} }
} }

View File

@ -1,110 +1,110 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class TweenHelper : MonoBehaviour public class TweenHelper : MonoBehaviour
{ {
// Start is called before the first frame update // Start is called before the first frame update
public float delay = 1; public float delay = 1;
public LeanTweenType position_type, scale_type; public LeanTweenType position_type, scale_type;
public Vector3 startPos; public Vector3 startPos;
public float position_time=1; public float position_time=1;
public float scale_time=1; public float scale_time=1;
public Vector3 startScale; public Vector3 startScale;
Vector3 defaultPos, defaultScale; Vector3 defaultPos, defaultScale;
[Header("Monitor data")] [Header("Monitor data")]
public Vector3 curPosition; public Vector3 curPosition;
public Vector3 curScale; public Vector3 curScale;
void Awake(){ void Awake(){
defaultPos = transform.position; defaultPos = transform.position;
defaultScale=transform.localScale; defaultScale=transform.localScale;
transform.position = startPos; transform.position = startPos;
transform.localScale = startScale; transform.localScale = startScale;
} }
void Start() void Start()
{ {
Intro(); Intro();
} }
public void Intro(){ public void Intro(){
TweenManager.Add(this); TweenManager.Add(this);
StartCoroutine(start()); StartCoroutine(start());
} }
public void Outro(){ public void Outro(){
if(position_type != LeanTweenType.notUsed){ if(position_type != LeanTweenType.notUsed){
LeanTween.move(gameObject, startPos, position_time).setEase(position_type); LeanTween.move(gameObject, startPos, position_time).setEase(position_type);
} }
if(scale_type != LeanTweenType.notUsed){ if(scale_type != LeanTweenType.notUsed){
LeanTween.scale(gameObject, startScale, scale_time).setEase(scale_type); LeanTween.scale(gameObject, startScale, scale_time).setEase(scale_type);
} }
} }
IEnumerator start(){ IEnumerator start(){
yield return new WaitForSeconds(delay); yield return new WaitForSeconds(delay);
LeanTween.move(gameObject, defaultPos, position_time).setEase(position_type); LeanTween.move(gameObject, defaultPos, position_time).setEase(position_type);
LeanTween.scale(gameObject, defaultScale, scale_time).setEase(scale_type); LeanTween.scale(gameObject, defaultScale, scale_time).setEase(scale_type);
} }
void OnDrawGizmos(){ void OnDrawGizmos(){
curPosition = transform.position; curPosition = transform.position;
curScale = transform.localScale; curScale = transform.localScale;
Gizmos.DrawLine(startPos, curPosition); Gizmos.DrawLine(startPos, curPosition);
} }
bool init = false; bool init = false;
void OnValidation(){ void OnValidation(){
if(!init){ if(!init){
init=true; init=true;
}else{ }else{
return; return;
} }
startPos = transform.position; startPos = transform.position;
startScale = transform.localScale; startScale = transform.localScale;
} }
public void OutroAll(){ public void OutroAll(){
TweenManager.OutroAll(); TweenManager.OutroAll();
} }
} }
public static class TweenManager{ public static class TweenManager{
public static List<TweenHelper> Tweens{get; private set;} public static List<TweenHelper> Tweens{get; private set;}
public static void Add(TweenHelper tween){ public static void Add(TweenHelper tween){
if(Tweens == null){Tweens = new List<TweenHelper>();} if(Tweens == null){Tweens = new List<TweenHelper>();}
if(Tweens.Contains(tween)){return;} if(Tweens.Contains(tween)){return;}
Tweens.Add(tween); Tweens.Add(tween);
} }
public static void Outro(TweenHelper tween){ public static void Outro(TweenHelper tween){
tween.Outro(); tween.Outro();
Tweens.Remove(tween); Tweens.Remove(tween);
} }
public static void OutroAll(){ public static void OutroAll(){
foreach(TweenHelper tween in Tweens){ foreach(TweenHelper tween in Tweens){
if(tween == null){continue;} if(tween == null){continue;}
tween.Outro(); tween.Outro();
} }
for(int i=Tweens.Count-1; i >= 0; i--){ for(int i=Tweens.Count-1; i >= 0; i--){
Tweens.RemoveAt(i); Tweens.RemoveAt(i);
} }
} }
} }

View File

@ -1,183 +1,183 @@
Shader "Custom/MaskedUIBlur" { Shader "Custom/MaskedUIBlur" {
Properties { Properties {
_Size ("Blur", Range(0, 30)) = 1 _Size ("Blur", Range(0, 30)) = 1
[HideInInspector] _MainTex ("Masking Texture", 2D) = "white" {} [HideInInspector] _MainTex ("Masking Texture", 2D) = "white" {}
_AdditiveColor ("Additive Tint color", Color) = (0, 0, 0, 0) _AdditiveColor ("Additive Tint color", Color) = (0, 0, 0, 0)
_MultiplyColor ("Multiply Tint color", Color) = (1, 1, 1, 1) _MultiplyColor ("Multiply Tint color", Color) = (1, 1, 1, 1)
} }
Category { Category {
// We must be transparent, so other objects are drawn before this one. // We must be transparent, so other objects are drawn before this one.
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Opaque" } Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Opaque" }
SubShader SubShader
{ {
// Horizontal blur // Horizontal blur
GrabPass GrabPass
{ {
"_HBlur" "_HBlur"
} }
/* /*
ZTest Off ZTest Off
Blend SrcAlpha OneMinusSrcAlpha Blend SrcAlpha OneMinusSrcAlpha
*/ */
Cull Off Cull Off
Lighting Off Lighting Off
ZWrite Off ZWrite Off
ZTest [unity_GUIZTestMode] ZTest [unity_GUIZTestMode]
Blend SrcAlpha OneMinusSrcAlpha Blend SrcAlpha OneMinusSrcAlpha
Pass Pass
{ {
CGPROGRAM CGPROGRAM
#pragma vertex vert #pragma vertex vert
#pragma fragment frag #pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest #pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc" #include "UnityCG.cginc"
struct appdata_t { struct appdata_t {
float4 vertex : POSITION; float4 vertex : POSITION;
float2 texcoord : TEXCOORD0; float2 texcoord : TEXCOORD0;
}; };
struct v2f { struct v2f {
float4 vertex : POSITION; float4 vertex : POSITION;
float4 uvgrab : TEXCOORD0; float4 uvgrab : TEXCOORD0;
float2 uvmain : TEXCOORD1; float2 uvmain : TEXCOORD1;
}; };
sampler2D _MainTex; sampler2D _MainTex;
float4 _MainTex_ST; float4 _MainTex_ST;
v2f vert (appdata_t v) v2f vert (appdata_t v)
{ {
v2f o; v2f o;
o.vertex = UnityObjectToClipPos(v.vertex); o.vertex = UnityObjectToClipPos(v.vertex);
#if UNITY_UV_STARTS_AT_TOP #if UNITY_UV_STARTS_AT_TOP
float scale = -1.0; float scale = -1.0;
#else #else
float scale = 1.0; float scale = 1.0;
#endif #endif
o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y * scale) + o.vertex.w) * 0.5; o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y * scale) + o.vertex.w) * 0.5;
o.uvgrab.zw = o.vertex.zw; o.uvgrab.zw = o.vertex.zw;
o.uvmain = TRANSFORM_TEX(v.texcoord, _MainTex); o.uvmain = TRANSFORM_TEX(v.texcoord, _MainTex);
return o; return o;
} }
sampler2D _HBlur; sampler2D _HBlur;
float4 _HBlur_TexelSize; float4 _HBlur_TexelSize;
float _Size; float _Size;
float4 _AdditiveColor; float4 _AdditiveColor;
float4 _MultiplyColor; float4 _MultiplyColor;
half4 frag( v2f i ) : COLOR half4 frag( v2f i ) : COLOR
{ {
half4 sum = half4(0,0,0,0); half4 sum = half4(0,0,0,0);
#define GRABPIXEL(weight,kernelx) tex2Dproj( _HBlur, UNITY_PROJ_COORD(float4(i.uvgrab.x + _HBlur_TexelSize.x * kernelx * _Size, i.uvgrab.y, i.uvgrab.z, i.uvgrab.w))) * weight #define GRABPIXEL(weight,kernelx) tex2Dproj( _HBlur, UNITY_PROJ_COORD(float4(i.uvgrab.x + _HBlur_TexelSize.x * kernelx * _Size, i.uvgrab.y, i.uvgrab.z, i.uvgrab.w))) * weight
sum += GRABPIXEL(0.05, -4.0); sum += GRABPIXEL(0.05, -4.0);
sum += GRABPIXEL(0.09, -3.0); sum += GRABPIXEL(0.09, -3.0);
sum += GRABPIXEL(0.12, -2.0); sum += GRABPIXEL(0.12, -2.0);
sum += GRABPIXEL(0.15, -1.0); sum += GRABPIXEL(0.15, -1.0);
sum += GRABPIXEL(0.18, 0.0); sum += GRABPIXEL(0.18, 0.0);
sum += GRABPIXEL(0.15, +1.0); sum += GRABPIXEL(0.15, +1.0);
sum += GRABPIXEL(0.12, +2.0); sum += GRABPIXEL(0.12, +2.0);
sum += GRABPIXEL(0.09, +3.0); sum += GRABPIXEL(0.09, +3.0);
sum += GRABPIXEL(0.05, +4.0); sum += GRABPIXEL(0.05, +4.0);
half4 result = half4(sum.r * _MultiplyColor.r + _AdditiveColor.r, half4 result = half4(sum.r * _MultiplyColor.r + _AdditiveColor.r,
sum.g * _MultiplyColor.g + _AdditiveColor.g, sum.g * _MultiplyColor.g + _AdditiveColor.g,
sum.b * _MultiplyColor.b + _AdditiveColor.b, sum.b * _MultiplyColor.b + _AdditiveColor.b,
tex2D(_MainTex, i.uvmain).a); tex2D(_MainTex, i.uvmain).a);
return result; return result;
} }
ENDCG ENDCG
} }
// Vertical blur // Vertical blur
GrabPass GrabPass
{ {
"_VBlur" "_VBlur"
} }
Pass Pass
{ {
CGPROGRAM CGPROGRAM
#pragma vertex vert #pragma vertex vert
#pragma fragment frag #pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest #pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc" #include "UnityCG.cginc"
struct appdata_t { struct appdata_t {
float4 vertex : POSITION; float4 vertex : POSITION;
float2 texcoord: TEXCOORD0; float2 texcoord: TEXCOORD0;
}; };
struct v2f { struct v2f {
float4 vertex : POSITION; float4 vertex : POSITION;
float4 uvgrab : TEXCOORD0; float4 uvgrab : TEXCOORD0;
float2 uvmain : TEXCOORD1; float2 uvmain : TEXCOORD1;
}; };
sampler2D _MainTex; sampler2D _MainTex;
float4 _MainTex_ST; float4 _MainTex_ST;
v2f vert (appdata_t v) { v2f vert (appdata_t v) {
v2f o; v2f o;
o.vertex = UnityObjectToClipPos(v.vertex); o.vertex = UnityObjectToClipPos(v.vertex);
#if UNITY_UV_STARTS_AT_TOP #if UNITY_UV_STARTS_AT_TOP
float scale = -1.0; float scale = -1.0;
#else #else
float scale = 1.0; float scale = 1.0;
#endif #endif
o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y * scale) + o.vertex.w) * 0.5; o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y * scale) + o.vertex.w) * 0.5;
o.uvgrab.zw = o.vertex.zw; o.uvgrab.zw = o.vertex.zw;
o.uvmain = TRANSFORM_TEX(v.texcoord, _MainTex); o.uvmain = TRANSFORM_TEX(v.texcoord, _MainTex);
return o; return o;
} }
sampler2D _VBlur; sampler2D _VBlur;
float4 _VBlur_TexelSize; float4 _VBlur_TexelSize;
float _Size; float _Size;
float4 _AdditiveColor; float4 _AdditiveColor;
float4 _MultiplyColor; float4 _MultiplyColor;
half4 frag( v2f i ) : COLOR half4 frag( v2f i ) : COLOR
{ {
half4 sum = half4(0,0,0,0); half4 sum = half4(0,0,0,0);
#define GRABPIXEL(weight,kernely) tex2Dproj( _VBlur, UNITY_PROJ_COORD(float4(i.uvgrab.x, i.uvgrab.y + _VBlur_TexelSize.y * kernely * _Size, i.uvgrab.z, i.uvgrab.w))) * weight #define GRABPIXEL(weight,kernely) tex2Dproj( _VBlur, UNITY_PROJ_COORD(float4(i.uvgrab.x, i.uvgrab.y + _VBlur_TexelSize.y * kernely * _Size, i.uvgrab.z, i.uvgrab.w))) * weight
sum += GRABPIXEL(0.05, -4.0); sum += GRABPIXEL(0.05, -4.0);
sum += GRABPIXEL(0.09, -3.0); sum += GRABPIXEL(0.09, -3.0);
sum += GRABPIXEL(0.12, -2.0); sum += GRABPIXEL(0.12, -2.0);
sum += GRABPIXEL(0.15, -1.0); sum += GRABPIXEL(0.15, -1.0);
sum += GRABPIXEL(0.18, 0.0); sum += GRABPIXEL(0.18, 0.0);
sum += GRABPIXEL(0.15, +1.0); sum += GRABPIXEL(0.15, +1.0);
sum += GRABPIXEL(0.12, +2.0); sum += GRABPIXEL(0.12, +2.0);
sum += GRABPIXEL(0.09, +3.0); sum += GRABPIXEL(0.09, +3.0);
sum += GRABPIXEL(0.05, +4.0); sum += GRABPIXEL(0.05, +4.0);
half4 result = half4(sum.r * _MultiplyColor.r + _AdditiveColor.r, half4 result = half4(sum.r * _MultiplyColor.r + _AdditiveColor.r,
sum.g * _MultiplyColor.g + _AdditiveColor.g, sum.g * _MultiplyColor.g + _AdditiveColor.g,
sum.b * _MultiplyColor.b + _AdditiveColor.b, sum.b * _MultiplyColor.b + _AdditiveColor.b,
tex2D(_MainTex, i.uvmain).a); tex2D(_MainTex, i.uvmain).a);
return result; return result;
} }
ENDCG ENDCG
} }
} }
} }
} }

View File

@ -1,3 +1,3 @@
This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/ This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/
Please visit their website to view the complete set of their emojis and review their licensing terms. Please visit their website to view the complete set of their emojis and review their licensing terms.

View File

@ -1,156 +1,156 @@
{"frames": [ {"frames": [
{ {
"filename": "1f60a.png", "filename": "1f60a.png",
"frame": {"x":0,"y":0,"w":128,"h":128}, "frame": {"x":0,"y":0,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f60b.png", "filename": "1f60b.png",
"frame": {"x":128,"y":0,"w":128,"h":128}, "frame": {"x":128,"y":0,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f60d.png", "filename": "1f60d.png",
"frame": {"x":256,"y":0,"w":128,"h":128}, "frame": {"x":256,"y":0,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f60e.png", "filename": "1f60e.png",
"frame": {"x":384,"y":0,"w":128,"h":128}, "frame": {"x":384,"y":0,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f600.png", "filename": "1f600.png",
"frame": {"x":0,"y":128,"w":128,"h":128}, "frame": {"x":0,"y":128,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f601.png", "filename": "1f601.png",
"frame": {"x":128,"y":128,"w":128,"h":128}, "frame": {"x":128,"y":128,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f602.png", "filename": "1f602.png",
"frame": {"x":256,"y":128,"w":128,"h":128}, "frame": {"x":256,"y":128,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f603.png", "filename": "1f603.png",
"frame": {"x":384,"y":128,"w":128,"h":128}, "frame": {"x":384,"y":128,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f604.png", "filename": "1f604.png",
"frame": {"x":0,"y":256,"w":128,"h":128}, "frame": {"x":0,"y":256,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f605.png", "filename": "1f605.png",
"frame": {"x":128,"y":256,"w":128,"h":128}, "frame": {"x":128,"y":256,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f606.png", "filename": "1f606.png",
"frame": {"x":256,"y":256,"w":128,"h":128}, "frame": {"x":256,"y":256,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f609.png", "filename": "1f609.png",
"frame": {"x":384,"y":256,"w":128,"h":128}, "frame": {"x":384,"y":256,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f618.png", "filename": "1f618.png",
"frame": {"x":0,"y":384,"w":128,"h":128}, "frame": {"x":0,"y":384,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "1f923.png", "filename": "1f923.png",
"frame": {"x":128,"y":384,"w":128,"h":128}, "frame": {"x":128,"y":384,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "263a.png", "filename": "263a.png",
"frame": {"x":256,"y":384,"w":128,"h":128}, "frame": {"x":256,"y":384,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}, },
{ {
"filename": "2639.png", "filename": "2639.png",
"frame": {"x":384,"y":384,"w":128,"h":128}, "frame": {"x":384,"y":384,"w":128,"h":128},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
"sourceSize": {"w":128,"h":128}, "sourceSize": {"w":128,"h":128},
"pivot": {"x":0.5,"y":0.5} "pivot": {"x":0.5,"y":0.5}
}], }],
"meta": { "meta": {
"app": "http://www.codeandweb.com/texturepacker", "app": "http://www.codeandweb.com/texturepacker",
"version": "1.0", "version": "1.0",
"image": "EmojiOne.png", "image": "EmojiOne.png",
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":512,"h":512}, "size": {"w":512,"h":512},
"scale": "1", "scale": "1",
"smartupdate": "$TexturePacker:SmartUpdate:196a26a2e149d875b91ffc8fa3581e76:fc928c7e275404b7e0649307410475cb:424723c3774975ddb2053fd5c4b85f6e$" "smartupdate": "$TexturePacker:SmartUpdate:196a26a2e149d875b91ffc8fa3581e76:fc928c7e275404b7e0649307410475cb:424723c3774975ddb2053fd5c4b85f6e$"
} }
} }

View File

@ -1,9 +1,9 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 9f5880b033929b7478e7b3a9ed6c5ee7 guid: 9f5880b033929b7478e7b3a9ed6c5ee7
folderAsset: yes folderAsset: yes
timeCreated: 1455295494 timeCreated: 1455295494
licenseType: Store licenseType: Store
DefaultImporter: DefaultImporter:
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View File

@ -1,113 +1,113 @@
/* /*
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2016 Digital Ruby, LLC Copyright (c) 2016 Digital Ruby, LLC
http://www.digitalruby.com http://www.digitalruby.com
Created by Jeff Johnson Created by Jeff Johnson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
using UnityEngine; using UnityEngine;
using System.Collections; using System.Collections;
// for your own scripts make sure to add the following line: // for your own scripts make sure to add the following line:
using DigitalRuby.Tween; using DigitalRuby.Tween;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
namespace DigitalRuby.Tween namespace DigitalRuby.Tween
{ {
public class TweenDemo : MonoBehaviour public class TweenDemo : MonoBehaviour
{ {
public GameObject Circle; public GameObject Circle;
public Light Light; public Light Light;
private SpriteRenderer spriteRenderer; private SpriteRenderer spriteRenderer;
private void TweenMove() private void TweenMove()
{ {
System.Action<ITween<Vector3>> updateCirclePos = (t) => System.Action<ITween<Vector3>> updateCirclePos = (t) =>
{ {
Circle.gameObject.transform.position = t.CurrentValue; Circle.gameObject.transform.position = t.CurrentValue;
}; };
System.Action<ITween<Vector3>> circleMoveCompleted = (t) => System.Action<ITween<Vector3>> circleMoveCompleted = (t) =>
{ {
Debug.Log("Circle move completed"); Debug.Log("Circle move completed");
}; };
Vector3 currentPos = Circle.transform.position; Vector3 currentPos = Circle.transform.position;
Vector3 startPos = Camera.main.ViewportToWorldPoint(Vector3.zero); Vector3 startPos = Camera.main.ViewportToWorldPoint(Vector3.zero);
Vector3 midPos = Camera.main.ViewportToWorldPoint(Vector3.one); Vector3 midPos = Camera.main.ViewportToWorldPoint(Vector3.one);
Vector3 endPos = Camera.main.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.5f)); Vector3 endPos = Camera.main.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.5f));
currentPos.z = startPos.z = midPos.z = endPos.z = 0.0f; currentPos.z = startPos.z = midPos.z = endPos.z = 0.0f;
// completion defaults to null if not passed in // completion defaults to null if not passed in
Circle.gameObject.Tween("MoveCircle", currentPos, startPos, 1.75f, TweenScaleFunctions.CubicEaseIn, updateCirclePos) Circle.gameObject.Tween("MoveCircle", currentPos, startPos, 1.75f, TweenScaleFunctions.CubicEaseIn, updateCirclePos)
.ContinueWith(new Vector3Tween().Setup(startPos, midPos, 1.75f, TweenScaleFunctions.Linear, updateCirclePos)) .ContinueWith(new Vector3Tween().Setup(startPos, midPos, 1.75f, TweenScaleFunctions.Linear, updateCirclePos))
.ContinueWith(new Vector3Tween().Setup(midPos, endPos, 1.75f, TweenScaleFunctions.CubicEaseOut, updateCirclePos, circleMoveCompleted)); .ContinueWith(new Vector3Tween().Setup(midPos, endPos, 1.75f, TweenScaleFunctions.CubicEaseOut, updateCirclePos, circleMoveCompleted));
} }
private void TweenColor() private void TweenColor()
{ {
System.Action<ITween<Color>> updateColor = (t) => System.Action<ITween<Color>> updateColor = (t) =>
{ {
spriteRenderer.color = t.CurrentValue; spriteRenderer.color = t.CurrentValue;
}; };
Color endColor = UnityEngine.Random.ColorHSV(0.0f, 1.0f, 0.0f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f); Color endColor = UnityEngine.Random.ColorHSV(0.0f, 1.0f, 0.0f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f);
// completion defaults to null if not passed in // completion defaults to null if not passed in
Circle.gameObject.Tween("ColorCircle", spriteRenderer.color, endColor, 1.0f, TweenScaleFunctions.QuadraticEaseOut, updateColor); Circle.gameObject.Tween("ColorCircle", spriteRenderer.color, endColor, 1.0f, TweenScaleFunctions.QuadraticEaseOut, updateColor);
} }
private void TweenRotate() private void TweenRotate()
{ {
System.Action<ITween<float>> circleRotate = (t) => System.Action<ITween<float>> circleRotate = (t) =>
{ {
// start rotation from identity to ensure no stuttering // start rotation from identity to ensure no stuttering
Circle.transform.rotation = Quaternion.identity; Circle.transform.rotation = Quaternion.identity;
Circle.transform.Rotate(Camera.main.transform.forward, t.CurrentValue); Circle.transform.Rotate(Camera.main.transform.forward, t.CurrentValue);
}; };
float startAngle = Circle.transform.rotation.eulerAngles.z; float startAngle = Circle.transform.rotation.eulerAngles.z;
float endAngle = startAngle + 720.0f; float endAngle = startAngle + 720.0f;
// completion defaults to null if not passed in // completion defaults to null if not passed in
Circle.gameObject.Tween("RotateCircle", startAngle, endAngle, 2.0f, TweenScaleFunctions.CubicEaseInOut, circleRotate); Circle.gameObject.Tween("RotateCircle", startAngle, endAngle, 2.0f, TweenScaleFunctions.CubicEaseInOut, circleRotate);
} }
private void TweenReset() private void TweenReset()
{ {
SceneManager.LoadScene(0, LoadSceneMode.Single); SceneManager.LoadScene(0, LoadSceneMode.Single);
} }
private void Start() private void Start()
{ {
// for demo purposes, clear all tweens when new level loads, default is false // for demo purposes, clear all tweens when new level loads, default is false
TweenFactory.ClearTweensOnLevelLoad = true; TweenFactory.ClearTweensOnLevelLoad = true;
spriteRenderer = Circle.GetComponent<SpriteRenderer>(); spriteRenderer = Circle.GetComponent<SpriteRenderer>();
} }
private void Update() private void Update()
{ {
if (Input.GetKeyDown(KeyCode.Alpha1)) if (Input.GetKeyDown(KeyCode.Alpha1))
{ {
TweenMove(); TweenMove();
} }
if (Input.GetKeyDown(KeyCode.Alpha2)) if (Input.GetKeyDown(KeyCode.Alpha2))
{ {
TweenColor(); TweenColor();
} }
if (Input.GetKeyDown(KeyCode.Alpha3)) if (Input.GetKeyDown(KeyCode.Alpha3))
{ {
TweenRotate(); TweenRotate();
} }
if (Input.GetKeyDown(KeyCode.R)) if (Input.GetKeyDown(KeyCode.R))
{ {
TweenReset(); TweenReset();
} }
} }
} }
} }

View File

@ -1,12 +1,12 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 85997561a67b3e740be145c96c4a0b37 guid: 85997561a67b3e740be145c96c4a0b37
timeCreated: 1455294104 timeCreated: 1455294104
licenseType: Store licenseType: Store
MonoImporter: MonoImporter:
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 0 executionOrder: 0
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View File

@ -1,8 +1,8 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2d994b80f30361c449f5504b6ddb859a guid: 2d994b80f30361c449f5504b6ddb859a
timeCreated: 1455295548 timeCreated: 1455295548
licenseType: Store licenseType: Store
NativeFormatImporter: NativeFormatImporter:
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View File

@ -1,8 +1,8 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ad948b3082b546f4e8f3565bdfe0abf6 guid: ad948b3082b546f4e8f3565bdfe0abf6
timeCreated: 1455295598 timeCreated: 1455295598
licenseType: Store licenseType: Store
DefaultImporter: DefaultImporter:
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View File

@ -1,24 +1,24 @@
Tween for Unity Tween for Unity
(c) 2016 Digital Ruby, LLC (c) 2016 Digital Ruby, LLC
https://www.digitalruby.com/unity-plugins/ https://www.digitalruby.com/unity-plugins/
Created by Jeff Johnson Created by Jeff Johnson
Version 1.0.4 Version 1.0.4
Tween for Unity is the easiest and simplest Tween script for Unity. In a matter of seconds you can be tweening and animating your game objects. Tween for Unity is the easiest and simplest Tween script for Unity. In a matter of seconds you can be tweening and animating your game objects.
Tween supports float, Vector2, Vector3, Vector4 and Quaternion tweens. Tween supports float, Vector2, Vector3, Vector4 and Quaternion tweens.
TweenFactory is the class you will want to use to initiate tweens. There is no need to add any scripts to game objects. TweenFactory takes care of everything. TweenFactory is the class you will want to use to initiate tweens. There is no need to add any scripts to game objects. TweenFactory takes care of everything.
Simply call TweenFactory.Tween(...) and pass in your parameters and callback functions. Simply call TweenFactory.Tween(...) and pass in your parameters and callback functions.
TweenFactory.DefaultTimeFunc can be set to your desired time function, default is Time.deltaTime. TweenFactory.DefaultTimeFunc can be set to your desired time function, default is Time.deltaTime.
Tweens may have a key, or null for no key. If adding a tween with a non-null key, existing tweens with the same key will be removed. Use the AddKeyStopBehavior field of TweenFactory to determine what to do in these cases. Tweens may have a key, or null for no key. If adding a tween with a non-null key, existing tweens with the same key will be removed. Use the AddKeyStopBehavior field of TweenFactory to determine what to do in these cases.
Set Tween.ForceUpdate = true; if you want Tween to continue to run on objects that are not visible. Set Tween.ForceUpdate = true; if you want Tween to continue to run on objects that are not visible.
Make sure to add a "using DigitalRuby.Tween" to your scripts. Make sure to add a "using DigitalRuby.Tween" to your scripts.
See TweenDemoScene for a demo scene, and look in TweenDemo.cs for code samples. See TweenDemoScene for a demo scene, and look in TweenDemo.cs for code samples.

View File

@ -1,8 +1,8 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: d536e9d2e2dc3f94cb6ca36e79a2d583 guid: d536e9d2e2dc3f94cb6ca36e79a2d583
timeCreated: 1455298832 timeCreated: 1455298832
licenseType: Store licenseType: Store
TextScriptImporter: TextScriptImporter:
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,12 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 96aee4e6410e5c149aa48287d2bb7112 guid: 96aee4e6410e5c149aa48287d2bb7112
timeCreated: 1455294094 timeCreated: 1455294094
licenseType: Store licenseType: Store
MonoImporter: MonoImporter:
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 0 executionOrder: 0
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View File

@ -1,83 +1,83 @@
<dependencies> <dependencies>
<packages> <packages>
<package>androidx.lifecycle:lifecycle-common-java8:2.4.1</package> <package>androidx.lifecycle:lifecycle-common-java8:2.4.1</package>
<package>androidx.lifecycle:lifecycle-process:2.4.1</package> <package>androidx.lifecycle:lifecycle-process:2.4.1</package>
<package>com.google.android.gms:play-services-ads:21.3.0</package> <package>com.google.android.gms:play-services-ads:21.3.0</package>
<package>com.google.android.gms:play-services-auth:16+</package> <package>com.google.android.gms:play-services-auth:16+</package>
<package>com.google.android.ump:user-messaging-platform:2.0.0</package> <package>com.google.android.ump:user-messaging-platform:2.0.0</package>
<package>com.google.signin:google-signin-support:1.0.4</package> <package>com.google.signin:google-signin-support:1.0.4</package>
</packages> </packages>
<files> <files>
<file>Assets/Plugins/Android/androidx.annotation.annotation-1.2.0.jar</file> <file>Assets/Plugins/Android/androidx.annotation.annotation-1.2.0.jar</file>
<file>Assets/Plugins/Android/androidx.annotation.annotation-experimental-1.1.0.aar</file> <file>Assets/Plugins/Android/androidx.annotation.annotation-experimental-1.1.0.aar</file>
<file>Assets/Plugins/Android/androidx.arch.core.core-common-2.1.0.jar</file> <file>Assets/Plugins/Android/androidx.arch.core.core-common-2.1.0.jar</file>
<file>Assets/Plugins/Android/androidx.arch.core.core-runtime-2.1.0.aar</file> <file>Assets/Plugins/Android/androidx.arch.core.core-runtime-2.1.0.aar</file>
<file>Assets/Plugins/Android/androidx.asynclayoutinflater.asynclayoutinflater-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.asynclayoutinflater.asynclayoutinflater-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.browser.browser-1.4.0.aar</file> <file>Assets/Plugins/Android/androidx.browser.browser-1.4.0.aar</file>
<file>Assets/Plugins/Android/androidx.collection.collection-1.1.0.jar</file> <file>Assets/Plugins/Android/androidx.collection.collection-1.1.0.jar</file>
<file>Assets/Plugins/Android/androidx.concurrent.concurrent-futures-1.0.0.jar</file> <file>Assets/Plugins/Android/androidx.concurrent.concurrent-futures-1.0.0.jar</file>
<file>Assets/Plugins/Android/androidx.coordinatorlayout.coordinatorlayout-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.coordinatorlayout.coordinatorlayout-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.core.core-1.6.0.aar</file> <file>Assets/Plugins/Android/androidx.core.core-1.6.0.aar</file>
<file>Assets/Plugins/Android/androidx.cursoradapter.cursoradapter-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.cursoradapter.cursoradapter-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.customview.customview-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.customview.customview-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.documentfile.documentfile-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.documentfile.documentfile-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.drawerlayout.drawerlayout-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.drawerlayout.drawerlayout-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.fragment.fragment-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.fragment.fragment-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.interpolator.interpolator-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.interpolator.interpolator-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.legacy.legacy-support-core-ui-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.legacy.legacy-support-core-ui-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.legacy.legacy-support-core-utils-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.legacy.legacy-support-core-utils-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-common-2.4.1.jar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-common-2.4.1.jar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-common-java8-2.4.1.jar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-common-java8-2.4.1.jar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-2.1.0.aar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-2.1.0.aar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-core-2.1.0.aar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-core-2.1.0.aar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-process-2.4.1.aar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-process-2.4.1.aar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-runtime-2.4.1.aar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-runtime-2.4.1.aar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-service-2.1.0.aar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-service-2.1.0.aar</file>
<file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-viewmodel-2.0.0.aar</file> <file>Assets/Plugins/Android/androidx.lifecycle.lifecycle-viewmodel-2.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.loader.loader-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.loader.loader-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.localbroadcastmanager.localbroadcastmanager-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.localbroadcastmanager.localbroadcastmanager-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.print.print-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.print.print-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.room.room-common-2.2.5.jar</file> <file>Assets/Plugins/Android/androidx.room.room-common-2.2.5.jar</file>
<file>Assets/Plugins/Android/androidx.room.room-runtime-2.2.5.aar</file> <file>Assets/Plugins/Android/androidx.room.room-runtime-2.2.5.aar</file>
<file>Assets/Plugins/Android/androidx.slidingpanelayout.slidingpanelayout-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.slidingpanelayout.slidingpanelayout-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.sqlite.sqlite-2.1.0.aar</file> <file>Assets/Plugins/Android/androidx.sqlite.sqlite-2.1.0.aar</file>
<file>Assets/Plugins/Android/androidx.sqlite.sqlite-framework-2.1.0.aar</file> <file>Assets/Plugins/Android/androidx.sqlite.sqlite-framework-2.1.0.aar</file>
<file>Assets/Plugins/Android/androidx.startup.startup-runtime-1.1.1.aar</file> <file>Assets/Plugins/Android/androidx.startup.startup-runtime-1.1.1.aar</file>
<file>Assets/Plugins/Android/androidx.swiperefreshlayout.swiperefreshlayout-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.swiperefreshlayout.swiperefreshlayout-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.tracing.tracing-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.tracing.tracing-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.versionedparcelable.versionedparcelable-1.1.1.aar</file> <file>Assets/Plugins/Android/androidx.versionedparcelable.versionedparcelable-1.1.1.aar</file>
<file>Assets/Plugins/Android/androidx.viewpager.viewpager-1.0.0.aar</file> <file>Assets/Plugins/Android/androidx.viewpager.viewpager-1.0.0.aar</file>
<file>Assets/Plugins/Android/androidx.work.work-runtime-2.7.0.aar</file> <file>Assets/Plugins/Android/androidx.work.work-runtime-2.7.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-21.3.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-21.3.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-base-21.3.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-base-21.3.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-identifier-18.0.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-identifier-18.0.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-lite-21.3.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-ads-lite-21.3.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-appset-16.0.1.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-appset-16.0.1.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-auth-16.0.1.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-auth-16.0.1.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-auth-api-phone-16.0.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-auth-api-phone-16.0.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-auth-base-16.0.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-auth-base-16.0.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-base-18.0.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-base-18.0.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-basement-18.0.0.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-basement-18.0.0.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-measurement-base-20.1.2.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-measurement-base-20.1.2.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-measurement-sdk-api-20.1.2.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-measurement-sdk-api-20.1.2.aar</file>
<file>Assets/Plugins/Android/com.google.android.gms.play-services-tasks-18.0.1.aar</file> <file>Assets/Plugins/Android/com.google.android.gms.play-services-tasks-18.0.1.aar</file>
<file>Assets/Plugins/Android/com.google.android.ump.user-messaging-platform-2.0.0.aar</file> <file>Assets/Plugins/Android/com.google.android.ump.user-messaging-platform-2.0.0.aar</file>
<file>Assets/Plugins/Android/com.google.guava.listenablefuture-1.0.jar</file> <file>Assets/Plugins/Android/com.google.guava.listenablefuture-1.0.jar</file>
<file>Assets/Plugins/Android/com.google.signin.google-signin-support-1.0.4.aar</file> <file>Assets/Plugins/Android/com.google.signin.google-signin-support-1.0.4.aar</file>
</files> </files>
<settings> <settings>
<setting name="androidAbis" value="arm64-v8a,armeabi-v7a" /> <setting name="androidAbis" value="arm64-v8a,armeabi-v7a" />
<setting name="bundleId" value="com.Xperience.Golfinity" /> <setting name="bundleId" value="com.Xperience.Golfinity" />
<setting name="explodeAars" value="True" /> <setting name="explodeAars" value="True" />
<setting name="gradleBuildEnabled" value="True" /> <setting name="gradleBuildEnabled" value="True" />
<setting name="gradlePropertiesTemplateEnabled" value="False" /> <setting name="gradlePropertiesTemplateEnabled" value="False" />
<setting name="gradleTemplateEnabled" value="False" /> <setting name="gradleTemplateEnabled" value="False" />
<setting name="installAndroidPackages" value="True" /> <setting name="installAndroidPackages" value="True" />
<setting name="localMavenRepoDir" value="Assets/GeneratedLocalRepo" /> <setting name="localMavenRepoDir" value="Assets/GeneratedLocalRepo" />
<setting name="packageDir" value="Assets/Plugins/Android" /> <setting name="packageDir" value="Assets/Plugins/Android" />
<setting name="patchAndroidManifest" value="True" /> <setting name="patchAndroidManifest" value="True" />
<setting name="patchMainTemplateGradle" value="True" /> <setting name="patchMainTemplateGradle" value="True" />
<setting name="projectExportEnabled" value="False" /> <setting name="projectExportEnabled" value="False" />
<setting name="useJetifier" value="True" /> <setting name="useJetifier" value="True" />
</settings> </settings>
</dependencies> </dependencies>

View File

@ -1,19 +1,19 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!11 &1 --- !u!11 &1
AudioManager: AudioManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Volume: 1 m_Volume: 1
Rolloff Scale: 1 Rolloff Scale: 1
Doppler Factor: 1 Doppler Factor: 1
Default Speaker Mode: 2 Default Speaker Mode: 2
m_SampleRate: 0 m_SampleRate: 0
m_DSPBufferSize: 1024 m_DSPBufferSize: 1024
m_VirtualVoiceCount: 512 m_VirtualVoiceCount: 512
m_RealVoiceCount: 32 m_RealVoiceCount: 32
m_SpatializerPlugin: m_SpatializerPlugin:
m_AmbisonicDecoderPlugin: m_AmbisonicDecoderPlugin:
m_DisableAudio: 0 m_DisableAudio: 0
m_VirtualizeEffects: 1 m_VirtualizeEffects: 1
m_RequestedDSPBufferSize: 0 m_RequestedDSPBufferSize: 0

View File

@ -1,6 +1,6 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!236 &1 --- !u!236 &1
ClusterInputManager: ClusterInputManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_Inputs: [] m_Inputs: []

View File

@ -1,37 +1,37 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!55 &1 --- !u!55 &1
PhysicsManager: PhysicsManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 13 serializedVersion: 13
m_Gravity: {x: 0, y: -9.81, z: 0} m_Gravity: {x: 0, y: -9.81, z: 0}
m_DefaultMaterial: {fileID: 0} m_DefaultMaterial: {fileID: 0}
m_BounceThreshold: 2 m_BounceThreshold: 2
m_DefaultMaxDepenetrationVelocity: 10 m_DefaultMaxDepenetrationVelocity: 10
m_SleepThreshold: 0.005 m_SleepThreshold: 0.005
m_DefaultContactOffset: 0.01 m_DefaultContactOffset: 0.01
m_DefaultSolverIterations: 6 m_DefaultSolverIterations: 6
m_DefaultSolverVelocityIterations: 1 m_DefaultSolverVelocityIterations: 1
m_QueriesHitBackfaces: 0 m_QueriesHitBackfaces: 0
m_QueriesHitTriggers: 1 m_QueriesHitTriggers: 1
m_EnableAdaptiveForce: 0 m_EnableAdaptiveForce: 0
m_ClothInterCollisionDistance: 0.1 m_ClothInterCollisionDistance: 0.1
m_ClothInterCollisionStiffness: 0.2 m_ClothInterCollisionStiffness: 0.2
m_ContactsGeneration: 1 m_ContactsGeneration: 1
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_AutoSimulation: 1 m_AutoSimulation: 1
m_AutoSyncTransforms: 0 m_AutoSyncTransforms: 0
m_ReuseCollisionCallbacks: 1 m_ReuseCollisionCallbacks: 1
m_ClothInterCollisionSettingsToggle: 0 m_ClothInterCollisionSettingsToggle: 0
m_ClothGravity: {x: 0, y: -9.81, z: 0} m_ClothGravity: {x: 0, y: -9.81, z: 0}
m_ContactPairsMode: 0 m_ContactPairsMode: 0
m_BroadphaseType: 0 m_BroadphaseType: 0
m_WorldBounds: m_WorldBounds:
m_Center: {x: 0, y: 0, z: 0} m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 250, y: 250, z: 250} m_Extent: {x: 250, y: 250, z: 250}
m_WorldSubdivisions: 8 m_WorldSubdivisions: 8
m_FrictionType: 0 m_FrictionType: 0
m_EnableEnhancedDeterminism: 0 m_EnableEnhancedDeterminism: 0
m_EnableUnifiedHeightmaps: 1 m_EnableUnifiedHeightmaps: 1
m_SolverType: 0 m_SolverType: 0
m_DefaultMaxAngularSpeed: 50 m_DefaultMaxAngularSpeed: 50

View File

@ -1,40 +1,40 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!159 &1 --- !u!159 &1
EditorSettings: EditorSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 11 serializedVersion: 11
m_SerializationMode: 2 m_SerializationMode: 2
m_LineEndingsForNewScripts: 0 m_LineEndingsForNewScripts: 0
m_DefaultBehaviorMode: 1 m_DefaultBehaviorMode: 1
m_PrefabRegularEnvironment: {fileID: 0} m_PrefabRegularEnvironment: {fileID: 0}
m_PrefabUIEnvironment: {fileID: 0} m_PrefabUIEnvironment: {fileID: 0}
m_SpritePackerMode: 4 m_SpritePackerMode: 4
m_SpritePackerPaddingPower: 1 m_SpritePackerPaddingPower: 1
m_EtcTextureCompressorBehavior: 1 m_EtcTextureCompressorBehavior: 1
m_EtcTextureFastCompressor: 1 m_EtcTextureFastCompressor: 1
m_EtcTextureNormalCompressor: 2 m_EtcTextureNormalCompressor: 2
m_EtcTextureBestCompressor: 4 m_EtcTextureBestCompressor: 4
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
m_ProjectGenerationRootNamespace: m_ProjectGenerationRootNamespace:
m_EnableTextureStreamingInEditMode: 1 m_EnableTextureStreamingInEditMode: 1
m_EnableTextureStreamingInPlayMode: 1 m_EnableTextureStreamingInPlayMode: 1
m_AsyncShaderCompilation: 1 m_AsyncShaderCompilation: 1
m_CachingShaderPreprocessor: 1 m_CachingShaderPreprocessor: 1
m_PrefabModeAllowAutoSave: 1 m_PrefabModeAllowAutoSave: 1
m_EnterPlayModeOptionsEnabled: 0 m_EnterPlayModeOptionsEnabled: 0
m_EnterPlayModeOptions: 3 m_EnterPlayModeOptions: 3
m_GameObjectNamingDigits: 1 m_GameObjectNamingDigits: 1
m_GameObjectNamingScheme: 0 m_GameObjectNamingScheme: 0
m_AssetNamingUsesSpace: 1 m_AssetNamingUsesSpace: 1
m_UseLegacyProbeSampleCount: 0 m_UseLegacyProbeSampleCount: 0
m_SerializeInlineMappingsOnOneLine: 1 m_SerializeInlineMappingsOnOneLine: 1
m_DisableCookiesInLightmapper: 1 m_DisableCookiesInLightmapper: 1
m_AssetPipelineMode: 1 m_AssetPipelineMode: 1
m_CacheServerMode: 0 m_CacheServerMode: 0
m_CacheServerEndpoint: m_CacheServerEndpoint:
m_CacheServerNamespacePrefix: default m_CacheServerNamespacePrefix: default
m_CacheServerEnableDownload: 1 m_CacheServerEnableDownload: 1
m_CacheServerEnableUpload: 1 m_CacheServerEnableUpload: 1
m_CacheServerEnableAuth: 0 m_CacheServerEnableAuth: 0
m_CacheServerEnableTls: 0 m_CacheServerEnableTls: 0

View File

@ -1,64 +1,64 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!30 &1 --- !u!30 &1
GraphicsSettings: GraphicsSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 13 serializedVersion: 13
m_Deferred: m_Deferred:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
m_DeferredReflections: m_DeferredReflections:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
m_ScreenSpaceShadows: m_ScreenSpaceShadows:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
m_LegacyDeferred: m_LegacyDeferred:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
m_DepthNormals: m_DepthNormals:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
m_MotionVectors: m_MotionVectors:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
m_LightHalo: m_LightHalo:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
m_LensFlare: m_LensFlare:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
m_VideoShadersIncludeMode: 2 m_VideoShadersIncludeMode: 2
m_AlwaysIncludedShaders: m_AlwaysIncludedShaders:
- {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: [] m_PreloadedShaders: []
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_CustomRenderPipeline: {fileID: 0} m_CustomRenderPipeline: {fileID: 0}
m_TransparencySortMode: 0 m_TransparencySortMode: 0
m_TransparencySortAxis: {x: 0, y: 0, z: 1} m_TransparencySortAxis: {x: 0, y: 0, z: 1}
m_DefaultRenderingPath: 1 m_DefaultRenderingPath: 1
m_DefaultMobileRenderingPath: 1 m_DefaultMobileRenderingPath: 1
m_TierSettings: [] m_TierSettings: []
m_LightmapStripping: 0 m_LightmapStripping: 0
m_FogStripping: 0 m_FogStripping: 0
m_InstancingStripping: 0 m_InstancingStripping: 0
m_LightmapKeepPlain: 1 m_LightmapKeepPlain: 1
m_LightmapKeepDirCombined: 1 m_LightmapKeepDirCombined: 1
m_LightmapKeepDynamicPlain: 1 m_LightmapKeepDynamicPlain: 1
m_LightmapKeepDynamicDirCombined: 1 m_LightmapKeepDynamicDirCombined: 1
m_LightmapKeepShadowMask: 1 m_LightmapKeepShadowMask: 1
m_LightmapKeepSubtractive: 1 m_LightmapKeepSubtractive: 1
m_FogKeepLinear: 1 m_FogKeepLinear: 1
m_FogKeepExp: 1 m_FogKeepExp: 1
m_FogKeepExp2: 1 m_FogKeepExp2: 1
m_AlbedoSwatchInfos: [] m_AlbedoSwatchInfos: []
m_LightsUseLinearIntensity: 0 m_LightsUseLinearIntensity: 0
m_LightsUseColorTemperature: 0 m_LightsUseColorTemperature: 0
m_DefaultRenderingLayerMask: 1 m_DefaultRenderingLayerMask: 1
m_LogWhenShaderIsCompiled: 0 m_LogWhenShaderIsCompiled: 0

View File

@ -1,487 +1,487 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!13 &1 --- !u!13 &1
InputManager: InputManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Axes: m_Axes:
- serializedVersion: 3 - serializedVersion: 3
m_Name: Horizontal m_Name: Horizontal
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: left negativeButton: left
positiveButton: right positiveButton: right
altNegativeButton: a altNegativeButton: a
altPositiveButton: d altPositiveButton: d
gravity: 3 gravity: 3
dead: 0.001 dead: 0.001
sensitivity: 3 sensitivity: 3
snap: 1 snap: 1
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Vertical m_Name: Vertical
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: down negativeButton: down
positiveButton: up positiveButton: up
altNegativeButton: s altNegativeButton: s
altPositiveButton: w altPositiveButton: w
gravity: 3 gravity: 3
dead: 0.001 dead: 0.001
sensitivity: 3 sensitivity: 3
snap: 1 snap: 1
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire1 m_Name: Fire1
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left ctrl positiveButton: left ctrl
altNegativeButton: altNegativeButton:
altPositiveButton: mouse 0 altPositiveButton: mouse 0
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire2 m_Name: Fire2
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left alt positiveButton: left alt
altNegativeButton: altNegativeButton:
altPositiveButton: mouse 1 altPositiveButton: mouse 1
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire3 m_Name: Fire3
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left shift positiveButton: left shift
altNegativeButton: altNegativeButton:
altPositiveButton: mouse 2 altPositiveButton: mouse 2
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Jump m_Name: Jump
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: space positiveButton: space
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Mouse X m_Name: Mouse X
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0.1 sensitivity: 0.1
snap: 0 snap: 0
invert: 0 invert: 0
type: 1 type: 1
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Mouse Y m_Name: Mouse Y
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0.1 sensitivity: 0.1
snap: 0 snap: 0
invert: 0 invert: 0
type: 1 type: 1
axis: 1 axis: 1
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Mouse ScrollWheel m_Name: Mouse ScrollWheel
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0.1 sensitivity: 0.1
snap: 0 snap: 0
invert: 0 invert: 0
type: 1 type: 1
axis: 2 axis: 2
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Horizontal m_Name: Horizontal
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0.19 dead: 0.19
sensitivity: 1 sensitivity: 1
snap: 0 snap: 0
invert: 0 invert: 0
type: 2 type: 2
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Vertical m_Name: Vertical
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0.19 dead: 0.19
sensitivity: 1 sensitivity: 1
snap: 0 snap: 0
invert: 1 invert: 1
type: 2 type: 2
axis: 1 axis: 1
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire1 m_Name: Fire1
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 0 positiveButton: joystick button 0
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire2 m_Name: Fire2
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 1 positiveButton: joystick button 1
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire3 m_Name: Fire3
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 2 positiveButton: joystick button 2
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Jump m_Name: Jump
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 3 positiveButton: joystick button 3
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Submit m_Name: Submit
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: return positiveButton: return
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 0 altPositiveButton: joystick button 0
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Submit m_Name: Submit
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: enter positiveButton: enter
altNegativeButton: altNegativeButton:
altPositiveButton: space altPositiveButton: space
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Cancel m_Name: Cancel
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: escape positiveButton: escape
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 1 altPositiveButton: joystick button 1
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Enable Debug Button 1 m_Name: Enable Debug Button 1
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left ctrl positiveButton: left ctrl
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 8 altPositiveButton: joystick button 8
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Enable Debug Button 2 m_Name: Enable Debug Button 2
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: backspace positiveButton: backspace
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 9 altPositiveButton: joystick button 9
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Reset m_Name: Debug Reset
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left alt positiveButton: left alt
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 1 altPositiveButton: joystick button 1
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Next m_Name: Debug Next
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: page down positiveButton: page down
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 5 altPositiveButton: joystick button 5
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Previous m_Name: Debug Previous
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: page up positiveButton: page up
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 4 altPositiveButton: joystick button 4
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Validate m_Name: Debug Validate
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: return positiveButton: return
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 0 altPositiveButton: joystick button 0
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Persistent m_Name: Debug Persistent
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: right shift positiveButton: right shift
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 2 altPositiveButton: joystick button 2
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Multiplier m_Name: Debug Multiplier
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left shift positiveButton: left shift
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 3 altPositiveButton: joystick button 3
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0 sensitivity: 0
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Horizontal m_Name: Debug Horizontal
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: left negativeButton: left
positiveButton: right positiveButton: right
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Vertical m_Name: Debug Vertical
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: down negativeButton: down
positiveButton: up positiveButton: up
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Vertical m_Name: Debug Vertical
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: down negativeButton: down
positiveButton: up positiveButton: up
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 2 type: 2
axis: 6 axis: 6
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Debug Horizontal m_Name: Debug Horizontal
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: left negativeButton: left
positiveButton: right positiveButton: right
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: 0.001
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 2 type: 2
axis: 5 axis: 5
joyNum: 0 joyNum: 0

View File

@ -1,93 +1,93 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!126 &1 --- !u!126 &1
NavMeshProjectSettings: NavMeshProjectSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
areas: areas:
- name: Walkable - name: Walkable
cost: 1 cost: 1
- name: Not Walkable - name: Not Walkable
cost: 1 cost: 1
- name: Jump - name: Jump
cost: 2 cost: 2
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
m_LastAgentTypeID: -887442657 m_LastAgentTypeID: -887442657
m_Settings: m_Settings:
- serializedVersion: 2 - serializedVersion: 2
agentTypeID: 0 agentTypeID: 0
agentRadius: 0.5 agentRadius: 0.5
agentHeight: 2 agentHeight: 2
agentSlope: 45 agentSlope: 45
agentClimb: 0.75 agentClimb: 0.75
ledgeDropHeight: 0 ledgeDropHeight: 0
maxJumpAcrossDistance: 0 maxJumpAcrossDistance: 0
minRegionArea: 2 minRegionArea: 2
manualCellSize: 0 manualCellSize: 0
cellSize: 0.16666667 cellSize: 0.16666667
manualTileSize: 0 manualTileSize: 0
tileSize: 256 tileSize: 256
accuratePlacement: 0 accuratePlacement: 0
maxJobWorkers: 0 maxJobWorkers: 0
preserveTilesOutsideBounds: 0 preserveTilesOutsideBounds: 0
debug: debug:
m_Flags: 0 m_Flags: 0
m_SettingNames: m_SettingNames:
- Humanoid - Humanoid

View File

@ -1,8 +1,8 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!149 &1 --- !u!149 &1
NetworkManager: NetworkManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_DebugLevel: 0 m_DebugLevel: 0
m_Sendrate: 15 m_Sendrate: 15
m_AssetToPrefab: {} m_AssetToPrefab: {}

View File

@ -1,44 +1,44 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!114 &1 --- !u!114 &1
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 61 m_ObjectHideFlags: 61
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0} m_GameObject: {fileID: 0}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_EnablePreReleasePackages: 0 m_EnablePreReleasePackages: 0
m_EnablePackageDependencies: 0 m_EnablePackageDependencies: 0
m_AdvancedSettingsExpanded: 1 m_AdvancedSettingsExpanded: 1
m_ScopedRegistriesSettingsExpanded: 1 m_ScopedRegistriesSettingsExpanded: 1
m_SeeAllPackageVersions: 0 m_SeeAllPackageVersions: 0
oneTimeWarningShown: 0 oneTimeWarningShown: 0
m_Registries: m_Registries:
- m_Id: main - m_Id: main
m_Name: m_Name:
m_Url: https://packages.unity.com m_Url: https://packages.unity.com
m_Scopes: [] m_Scopes: []
m_IsDefault: 1 m_IsDefault: 1
m_Capabilities: 7 m_Capabilities: 7
m_UserSelectedRegistryName: m_UserSelectedRegistryName:
m_UserAddingNewScopedRegistry: 0 m_UserAddingNewScopedRegistry: 0
m_RegistryInfoDraft: m_RegistryInfoDraft:
m_ErrorMessage: m_ErrorMessage:
m_Original: m_Original:
m_Id: m_Id:
m_Name: m_Name:
m_Url: m_Url:
m_Scopes: [] m_Scopes: []
m_IsDefault: 0 m_IsDefault: 0
m_Capabilities: 0 m_Capabilities: 0
m_Modified: 0 m_Modified: 0
m_Name: m_Name:
m_Url: m_Url:
m_Scopes: m_Scopes:
- -
m_SelectedScopeIndex: 0 m_SelectedScopeIndex: 0

View File

@ -1,56 +1,56 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!19 &1 --- !u!19 &1
Physics2DSettings: Physics2DSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 5 serializedVersion: 5
m_Gravity: {x: 0, y: -9.81} m_Gravity: {x: 0, y: -9.81}
m_DefaultMaterial: {fileID: 0} m_DefaultMaterial: {fileID: 0}
m_VelocityIterations: 8 m_VelocityIterations: 8
m_PositionIterations: 3 m_PositionIterations: 3
m_VelocityThreshold: 1 m_VelocityThreshold: 1
m_MaxLinearCorrection: 0.2 m_MaxLinearCorrection: 0.2
m_MaxAngularCorrection: 8 m_MaxAngularCorrection: 8
m_MaxTranslationSpeed: 100 m_MaxTranslationSpeed: 100
m_MaxRotationSpeed: 360 m_MaxRotationSpeed: 360
m_BaumgarteScale: 0.2 m_BaumgarteScale: 0.2
m_BaumgarteTimeOfImpactScale: 0.75 m_BaumgarteTimeOfImpactScale: 0.75
m_TimeToSleep: 0.5 m_TimeToSleep: 0.5
m_LinearSleepTolerance: 0.01 m_LinearSleepTolerance: 0.01
m_AngularSleepTolerance: 2 m_AngularSleepTolerance: 2
m_DefaultContactOffset: 0.01 m_DefaultContactOffset: 0.01
m_JobOptions: m_JobOptions:
serializedVersion: 2 serializedVersion: 2
useMultithreading: 0 useMultithreading: 0
useConsistencySorting: 0 useConsistencySorting: 0
m_InterpolationPosesPerJob: 100 m_InterpolationPosesPerJob: 100
m_NewContactsPerJob: 30 m_NewContactsPerJob: 30
m_CollideContactsPerJob: 100 m_CollideContactsPerJob: 100
m_ClearFlagsPerJob: 200 m_ClearFlagsPerJob: 200
m_ClearBodyForcesPerJob: 200 m_ClearBodyForcesPerJob: 200
m_SyncDiscreteFixturesPerJob: 50 m_SyncDiscreteFixturesPerJob: 50
m_SyncContinuousFixturesPerJob: 50 m_SyncContinuousFixturesPerJob: 50
m_FindNearestContactsPerJob: 100 m_FindNearestContactsPerJob: 100
m_UpdateTriggerContactsPerJob: 100 m_UpdateTriggerContactsPerJob: 100
m_IslandSolverCostThreshold: 100 m_IslandSolverCostThreshold: 100
m_IslandSolverBodyCostScale: 1 m_IslandSolverBodyCostScale: 1
m_IslandSolverContactCostScale: 10 m_IslandSolverContactCostScale: 10
m_IslandSolverJointCostScale: 10 m_IslandSolverJointCostScale: 10
m_IslandSolverBodiesPerJob: 50 m_IslandSolverBodiesPerJob: 50
m_IslandSolverContactsPerJob: 50 m_IslandSolverContactsPerJob: 50
m_SimulationMode: 0 m_SimulationMode: 0
m_QueriesHitTriggers: 1 m_QueriesHitTriggers: 1
m_QueriesStartInColliders: 1 m_QueriesStartInColliders: 1
m_CallbacksOnDisable: 1 m_CallbacksOnDisable: 1
m_ReuseCollisionCallbacks: 1 m_ReuseCollisionCallbacks: 1
m_AutoSyncTransforms: 0 m_AutoSyncTransforms: 0
m_AlwaysShowColliders: 0 m_AlwaysShowColliders: 0
m_ShowColliderSleep: 1 m_ShowColliderSleep: 1
m_ShowColliderContacts: 0 m_ShowColliderContacts: 0
m_ShowColliderAABB: 0 m_ShowColliderAABB: 0
m_ContactArrowScale: 0.2 m_ContactArrowScale: 0.2
m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

View File

@ -1,7 +1,7 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1386491679 &1 --- !u!1386491679 &1
PresetManager: PresetManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_DefaultPresets: {} m_DefaultPresets: {}

View File

@ -1,236 +1,236 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!47 &1 --- !u!47 &1
QualitySettings: QualitySettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 5 serializedVersion: 5
m_CurrentQuality: 5 m_CurrentQuality: 5
m_QualitySettings: m_QualitySettings:
- serializedVersion: 2 - serializedVersion: 2
name: Very Low name: Very Low
pixelLightCount: 0 pixelLightCount: 0
shadows: 0 shadows: 0
shadowResolution: 0 shadowResolution: 0
shadowProjection: 1 shadowProjection: 1
shadowCascades: 1 shadowCascades: 1
shadowDistance: 15 shadowDistance: 15
shadowNearPlaneOffset: 3 shadowNearPlaneOffset: 3
shadowCascade2Split: 0.33333334 shadowCascade2Split: 0.33333334
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 0 shadowmaskMode: 0
skinWeights: 1 skinWeights: 1
textureQuality: 1 textureQuality: 1
anisotropicTextures: 0 anisotropicTextures: 0
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 0 softVegetation: 0
realtimeReflectionProbes: 0 realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0 billboardsFaceCameraPosition: 0
vSyncCount: 0 vSyncCount: 0
lodBias: 0.3 lodBias: 0.3
maximumLODLevel: 0 maximumLODLevel: 0
streamingMipmapsActive: 0 streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1 streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512 streamingMipmapsMemoryBudget: 512
streamingMipmapsRenderersPerFrame: 512 streamingMipmapsRenderersPerFrame: 512
streamingMipmapsMaxLevelReduction: 2 streamingMipmapsMaxLevelReduction: 2
streamingMipmapsMaxFileIORequests: 1024 streamingMipmapsMaxFileIORequests: 1024
particleRaycastBudget: 4 particleRaycastBudget: 4
asyncUploadTimeSlice: 2 asyncUploadTimeSlice: 2
asyncUploadBufferSize: 16 asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1 asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1 resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 0} customRenderPipeline: {fileID: 0}
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Low name: Low
pixelLightCount: 0 pixelLightCount: 0
shadows: 0 shadows: 0
shadowResolution: 0 shadowResolution: 0
shadowProjection: 1 shadowProjection: 1
shadowCascades: 1 shadowCascades: 1
shadowDistance: 20 shadowDistance: 20
shadowNearPlaneOffset: 3 shadowNearPlaneOffset: 3
shadowCascade2Split: 0.33333334 shadowCascade2Split: 0.33333334
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 0 shadowmaskMode: 0
skinWeights: 2 skinWeights: 2
textureQuality: 0 textureQuality: 0
anisotropicTextures: 0 anisotropicTextures: 0
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 0 softVegetation: 0
realtimeReflectionProbes: 0 realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0 billboardsFaceCameraPosition: 0
vSyncCount: 0 vSyncCount: 0
lodBias: 0.4 lodBias: 0.4
maximumLODLevel: 0 maximumLODLevel: 0
streamingMipmapsActive: 0 streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1 streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512 streamingMipmapsMemoryBudget: 512
streamingMipmapsRenderersPerFrame: 512 streamingMipmapsRenderersPerFrame: 512
streamingMipmapsMaxLevelReduction: 2 streamingMipmapsMaxLevelReduction: 2
streamingMipmapsMaxFileIORequests: 1024 streamingMipmapsMaxFileIORequests: 1024
particleRaycastBudget: 16 particleRaycastBudget: 16
asyncUploadTimeSlice: 2 asyncUploadTimeSlice: 2
asyncUploadBufferSize: 16 asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1 asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1 resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 0} customRenderPipeline: {fileID: 0}
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Medium name: Medium
pixelLightCount: 1 pixelLightCount: 1
shadows: 1 shadows: 1
shadowResolution: 0 shadowResolution: 0
shadowProjection: 1 shadowProjection: 1
shadowCascades: 1 shadowCascades: 1
shadowDistance: 20 shadowDistance: 20
shadowNearPlaneOffset: 3 shadowNearPlaneOffset: 3
shadowCascade2Split: 0.33333334 shadowCascade2Split: 0.33333334
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 0 shadowmaskMode: 0
skinWeights: 2 skinWeights: 2
textureQuality: 0 textureQuality: 0
anisotropicTextures: 1 anisotropicTextures: 1
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 0 softVegetation: 0
realtimeReflectionProbes: 0 realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0 billboardsFaceCameraPosition: 0
vSyncCount: 1 vSyncCount: 1
lodBias: 0.7 lodBias: 0.7
maximumLODLevel: 0 maximumLODLevel: 0
streamingMipmapsActive: 0 streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1 streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512 streamingMipmapsMemoryBudget: 512
streamingMipmapsRenderersPerFrame: 512 streamingMipmapsRenderersPerFrame: 512
streamingMipmapsMaxLevelReduction: 2 streamingMipmapsMaxLevelReduction: 2
streamingMipmapsMaxFileIORequests: 1024 streamingMipmapsMaxFileIORequests: 1024
particleRaycastBudget: 64 particleRaycastBudget: 64
asyncUploadTimeSlice: 2 asyncUploadTimeSlice: 2
asyncUploadBufferSize: 16 asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1 asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1 resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 0} customRenderPipeline: {fileID: 0}
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: High name: High
pixelLightCount: 2 pixelLightCount: 2
shadows: 2 shadows: 2
shadowResolution: 1 shadowResolution: 1
shadowProjection: 1 shadowProjection: 1
shadowCascades: 2 shadowCascades: 2
shadowDistance: 40 shadowDistance: 40
shadowNearPlaneOffset: 3 shadowNearPlaneOffset: 3
shadowCascade2Split: 0.33333334 shadowCascade2Split: 0.33333334
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 1 shadowmaskMode: 1
skinWeights: 2 skinWeights: 2
textureQuality: 0 textureQuality: 0
anisotropicTextures: 1 anisotropicTextures: 1
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 1 softVegetation: 1
realtimeReflectionProbes: 1 realtimeReflectionProbes: 1
billboardsFaceCameraPosition: 1 billboardsFaceCameraPosition: 1
vSyncCount: 1 vSyncCount: 1
lodBias: 1 lodBias: 1
maximumLODLevel: 0 maximumLODLevel: 0
streamingMipmapsActive: 0 streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1 streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512 streamingMipmapsMemoryBudget: 512
streamingMipmapsRenderersPerFrame: 512 streamingMipmapsRenderersPerFrame: 512
streamingMipmapsMaxLevelReduction: 2 streamingMipmapsMaxLevelReduction: 2
streamingMipmapsMaxFileIORequests: 1024 streamingMipmapsMaxFileIORequests: 1024
particleRaycastBudget: 256 particleRaycastBudget: 256
asyncUploadTimeSlice: 2 asyncUploadTimeSlice: 2
asyncUploadBufferSize: 16 asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1 asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1 resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 0} customRenderPipeline: {fileID: 0}
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Very High name: Very High
pixelLightCount: 3 pixelLightCount: 3
shadows: 2 shadows: 2
shadowResolution: 2 shadowResolution: 2
shadowProjection: 1 shadowProjection: 1
shadowCascades: 2 shadowCascades: 2
shadowDistance: 70 shadowDistance: 70
shadowNearPlaneOffset: 3 shadowNearPlaneOffset: 3
shadowCascade2Split: 0.33333334 shadowCascade2Split: 0.33333334
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 1 shadowmaskMode: 1
skinWeights: 4 skinWeights: 4
textureQuality: 0 textureQuality: 0
anisotropicTextures: 2 anisotropicTextures: 2
antiAliasing: 2 antiAliasing: 2
softParticles: 1 softParticles: 1
softVegetation: 1 softVegetation: 1
realtimeReflectionProbes: 1 realtimeReflectionProbes: 1
billboardsFaceCameraPosition: 1 billboardsFaceCameraPosition: 1
vSyncCount: 1 vSyncCount: 1
lodBias: 1.5 lodBias: 1.5
maximumLODLevel: 0 maximumLODLevel: 0
streamingMipmapsActive: 0 streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1 streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512 streamingMipmapsMemoryBudget: 512
streamingMipmapsRenderersPerFrame: 512 streamingMipmapsRenderersPerFrame: 512
streamingMipmapsMaxLevelReduction: 2 streamingMipmapsMaxLevelReduction: 2
streamingMipmapsMaxFileIORequests: 1024 streamingMipmapsMaxFileIORequests: 1024
particleRaycastBudget: 1024 particleRaycastBudget: 1024
asyncUploadTimeSlice: 2 asyncUploadTimeSlice: 2
asyncUploadBufferSize: 16 asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1 asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1 resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 0} customRenderPipeline: {fileID: 0}
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Ultra name: Ultra
pixelLightCount: 4 pixelLightCount: 4
shadows: 2 shadows: 2
shadowResolution: 2 shadowResolution: 2
shadowProjection: 1 shadowProjection: 1
shadowCascades: 4 shadowCascades: 4
shadowDistance: 150 shadowDistance: 150
shadowNearPlaneOffset: 3 shadowNearPlaneOffset: 3
shadowCascade2Split: 0.33333334 shadowCascade2Split: 0.33333334
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 1 shadowmaskMode: 1
skinWeights: 255 skinWeights: 255
textureQuality: 0 textureQuality: 0
anisotropicTextures: 2 anisotropicTextures: 2
antiAliasing: 2 antiAliasing: 2
softParticles: 1 softParticles: 1
softVegetation: 1 softVegetation: 1
realtimeReflectionProbes: 1 realtimeReflectionProbes: 1
billboardsFaceCameraPosition: 1 billboardsFaceCameraPosition: 1
vSyncCount: 1 vSyncCount: 1
lodBias: 2 lodBias: 2
maximumLODLevel: 0 maximumLODLevel: 0
streamingMipmapsActive: 0 streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1 streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512 streamingMipmapsMemoryBudget: 512
streamingMipmapsRenderersPerFrame: 512 streamingMipmapsRenderersPerFrame: 512
streamingMipmapsMaxLevelReduction: 2 streamingMipmapsMaxLevelReduction: 2
streamingMipmapsMaxFileIORequests: 1024 streamingMipmapsMaxFileIORequests: 1024
particleRaycastBudget: 4096 particleRaycastBudget: 4096
asyncUploadTimeSlice: 2 asyncUploadTimeSlice: 2
asyncUploadBufferSize: 16 asyncUploadBufferSize: 16
asyncUploadPersistentBuffer: 1 asyncUploadPersistentBuffer: 1
resolutionScalingFixedDPIFactor: 1 resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 0} customRenderPipeline: {fileID: 0}
excludedTargetPlatforms: [] excludedTargetPlatforms: []
m_PerPlatformDefaultQuality: m_PerPlatformDefaultQuality:
Android: 2 Android: 2
Lumin: 5 Lumin: 5
Nintendo Switch: 5 Nintendo Switch: 5
PS4: 5 PS4: 5
Stadia: 5 Stadia: 5
Standalone: 5 Standalone: 5
WebGL: 3 WebGL: 3
Windows Store Apps: 5 Windows Store Apps: 5
XboxOne: 5 XboxOne: 5
iPhone: 2 iPhone: 2
tvOS: 2 tvOS: 2

View File

@ -1,9 +1,9 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!5 &1 --- !u!5 &1
TimeManager: TimeManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
Fixed Timestep: 0.02 Fixed Timestep: 0.02
Maximum Allowed Timestep: 0.33333334 Maximum Allowed Timestep: 0.33333334
m_TimeScale: 1 m_TimeScale: 1
Maximum Particle Timestep: 0.03 Maximum Particle Timestep: 0.03

View File

@ -1,14 +1,14 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!937362698 &1 --- !u!937362698 &1
VFXManager: VFXManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_IndirectShader: {fileID: 0} m_IndirectShader: {fileID: 0}
m_CopyBufferShader: {fileID: 0} m_CopyBufferShader: {fileID: 0}
m_SortShader: {fileID: 0} m_SortShader: {fileID: 0}
m_StripUpdateShader: {fileID: 0} m_StripUpdateShader: {fileID: 0}
m_RenderPipeSettingsPath: m_RenderPipeSettingsPath:
m_FixedTimeStep: 0.016666668 m_FixedTimeStep: 0.016666668
m_MaxDeltaTime: 0.05 m_MaxDeltaTime: 0.05
m_CompiledVersion: 0 m_CompiledVersion: 0
m_RuntimeVersion: 0 m_RuntimeVersion: 0

View File

@ -1,8 +1,8 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!890905787 &1 --- !u!890905787 &1
VersionControlSettings: VersionControlSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_Mode: Visible Meta Files m_Mode: Visible Meta Files
m_CollabEditorSettings: m_CollabEditorSettings:
inProgressEnabled: 1 inProgressEnabled: 1

View File

@ -1,10 +1,10 @@
{ {
"m_SettingKeys": [ "m_SettingKeys": [
"VR Device Disabled", "VR Device Disabled",
"VR Device User Alert" "VR Device User Alert"
], ],
"m_SettingValues": [ "m_SettingValues": [
"False", "False",
"False" "False"
] ]
} }

3
debug.log Normal file
View File

@ -0,0 +1,3 @@
[0510/092001.461:ERROR:registration_protocol_win.cc(107)] CreateFile: The system cannot find the file specified. (0x2)
[0510/110657.659:ERROR:registration_protocol_win.cc(107)] CreateFile: The system cannot find the file specified. (0x2)
[0510/110746.417:ERROR:registration_protocol_win.cc(107)] CreateFile: The system cannot find the file specified. (0x2)