From fb0fdae521c290fdc8d3912213fcf144799597c0 Mon Sep 17 00:00:00 2001 From: Joshua Reason Date: Thu, 18 Aug 2016 23:14:25 +1000 Subject: [PATCH] Seamless sceneloading --- .../Animations/SpawnAnimator.controller | Bin 0 -> 7064 bytes .../Animations/Spawn_SpinAnimation.anim | Bin 0 -> 11792 bytes .../SingleTap/Assets/Materials/BackGround.mat | Bin 5104 -> 5088 bytes .../Assets/Materials/SpawnMaterial.mat | Bin 0 -> 4272 bytes .../Assets/Scripts/BackgroundController.cs | 5 +- .../Assets/Scripts/EnemyController.cs | 9 +- .../SingleTap/Assets/Scripts/GameMemory.cs | 87 ++++++++++++++++++ .../Assets/Scripts/MissileController.cs | 10 +- .../Assets/Scripts/PlayerController.cs | 45 +++++---- .../Assets/Scripts/SpawnController.cs | 44 +++++++++ .../SingleTap/Assets/Scripts/TapDetector.cs | 9 +- .../Assets/Shaders/BackGroundEffect.shader | 12 +-- .../SingleTap/Assets/_Scenes/Level2.unity | Bin 72384 -> 28904 bytes .../SingleTap/Assets/_Scenes/TestScene.unity | Bin 71536 -> 28100 bytes .../ProjectSettings/EditorBuildSettings.asset | Bin 4104 -> 4180 bytes .../ProjectSettings/QualitySettings.asset | Bin 5060 -> 5060 bytes .../ProjectSettings/TagManager.asset | Bin 4364 -> 4380 bytes 17 files changed, 182 insertions(+), 39 deletions(-) create mode 100644 singleTap/SingleTap/Assets/Animations/SpawnAnimator.controller create mode 100644 singleTap/SingleTap/Assets/Animations/Spawn_SpinAnimation.anim create mode 100644 singleTap/SingleTap/Assets/Materials/SpawnMaterial.mat create mode 100644 singleTap/SingleTap/Assets/Scripts/GameMemory.cs create mode 100644 singleTap/SingleTap/Assets/Scripts/SpawnController.cs diff --git a/singleTap/SingleTap/Assets/Animations/SpawnAnimator.controller b/singleTap/SingleTap/Assets/Animations/SpawnAnimator.controller new file mode 100644 index 0000000000000000000000000000000000000000..fcba5286407c39de5e0451fadbb89c31d69ab301 GIT binary patch literal 7064 zcmchcZH!$-8ONWqd$+r^B8nizYT42%%FAjkD;2TcyKn5;ZhLW88YN;*cF%S%-o3ZE z_q6Qdmm4C=OF|++LjXxj2noT)L`^V;4@wAM3^B$u@g+fHBoaSWzp2ss|IafsXXfm! zT0d}>={fV8Isfy_GiT;`&PC+vw?uY4AtINFybmXl@v(hl<12gRU+2%CPX+<*Lb>JD zZR@S0>G&%zKKk5u$Nu!vEZE?H$PmsvZV~CB|9MmCi6r=Yeo%VfPo!4?Ongb?J-9v# z{tlcWVfrSxdIK6CL7n~iTxyVyLFePBkJvWliF|!Pdaqg?+Tr?#I$HuB>I{3H$Sm|< zgbwZJGm;*)29mw7hlTtS@+$eDv2zFRp`BaFO&OFs(Dxn`*0*_{$XWFL6zbIBn3JFM zHtAnV-Xo9o-)VG|*KtjK>R`5P|4L;4yF4F??0+|Tl{#A@`!6RK<)QtYBjpv-e;B^5 zfL#&r)3Bw9I{B3Wr~kid`FjI?2>d})7rBaOV^2lCjqC5B&^O!3jXgur`*3x@!+GQ@ ztNqo_FQZQX>>%&;&=$|*`#q2S`~j;o1pmK|Yv<>kzJKiJYdnwrJW6iH75jM?xf$1% z=smgC^NPHQYjiSx*zI}jhdlug{qRB0D{>h$My<|=Jdbs*3wWsWVb3e(y}b@P^e5M) zotNmny5946yf;`rfcI@LH0V#x?TxVmdn#a6 z6n#&WzifFe;HUA-pIbf=aPAMk1IK?dS>kV5K1E*bp-;STO#A-vdp;BJ(Ei&kueBO$ zY2NNkwp)3p-E3wZsn_$)ZPUvQ(CPI&Yjqp#)&W`j@=T+d%}wE=p609O!rfd?JLy`M zXPvG%ROtCe+&Pu4q$isBOtYQlMRl$fR3_T(rkb!>idGcDsJJeN(vAKPHx04eLZ0T? ze7dySXk`=(>$c~~G*3J8Y4drFZ=BBCnckenvgJ0%ad9i*!I6=3`yjuR5C=Ka zAuM&X&C*v@!{ac`^hS9crkUP2{zY87?ThJ+a@}^Ef0*9XP`F)i`8)qGy-}|AtfS8D zn(0jyrJOb}y-^<9!}P}Sa64ssqdc~UA+Vo4OmCb$Z^F)RqE26GMm|b=j6a_Sqd%G6 zh!p%8)X16Mg!~k05cL*4Za>SkVMhXgnd?@=}kZV8`-z2I<((?Ch)yeo%l0B)0;wn%IY({ z>8H>1rk_63n|}ICZH~sXP-t^OFdecvz>z+Ic0J`u0PZ4zCc$O_=bDrE- zYGy}PR=OGY?8Q!ssH^eDMB_-lX!ViChO;PC)Y~c{>#`yDnMiP?HItbK9PKpn%tnek z)8>hc0b;(<>9jkzFh=>XU0ccbrKW$m4i2U>N zgZKYxiocf z#) zC-y@Tuwp+H0c%iB;a=wl1}xR7$d7S-7KMIbz;ff|#_0UOfaQ4T2L>#s6Z&DN;l;R| z9~iL0@j5?@mbml7F3;5ue?*;rV8GJn#(voCdF+Qh0cUV?2?+z1vp*a!1D50Acp0#i zt3BHjwTA&qd29~@mh#vh1}w*KfQGY&{#LFDiSs`LmgAv43|Pt&`3vUD1ttb8<*_{s zSjuC2^m|GwG88IJ6^)%VwVygSi(%lL@pXQgFA9CQIC{qbbi- z|6!{??Rl&}Q{qnl_7Zpcv!1K|lU9Gu^H~40CGPYOmblYDmjx=br$){;G$(6|OfAcUVS&y&bbeAdm zzf{hhd5oEpJcyE`@HdOY6>a;`7oIe2Shw;7+L#_L*fuhen}^Q*_MvBn=D)Ll_qPt; z^V0MH;eS1t0xcX*?`^qBvv*K(E6POL%|`VHCez~Wu>Hy>Zp$GH$7{?C8-r`6KE@6t z<_&8Meu@I^an}ouS?pdcIIJK~)juCMsNX;T>AB@Gy1s5Mklf)}$GJ0J;Giw1YTC%_ Sb84H+V%H3>T^~?8&;JH~z1UL# literal 0 HcmV?d00001 diff --git a/singleTap/SingleTap/Assets/Animations/Spawn_SpinAnimation.anim b/singleTap/SingleTap/Assets/Animations/Spawn_SpinAnimation.anim new file mode 100644 index 0000000000000000000000000000000000000000..25b5587b75800c65344c59e659c052dd72f3765f GIT binary patch literal 11792 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 literal 0 HcmV?d00001 diff --git a/singleTap/SingleTap/Assets/Materials/BackGround.mat b/singleTap/SingleTap/Assets/Materials/BackGround.mat index 636b85fc7a61c1d2b92d1f72a27a4a86c0cadaa2..bcb4c99ee6ec29ce0b45461a82c5483b3d32ceac 100644 GIT binary patch delta 74 zcmeyM{y?3Bfq~-!1B38`jT|i;j1M;Va;#=&WSHzJFnRJ9!HCUw1SA+I`v^Hs_7qlR aVqlouA+%?5j&KO~!v_iWP(1mxuqptp;u}u@ delta 98 zcmaE${z09Cfq~-!1B38~jT|i;j2|}la;#<-9TayVSRUYPK zmEJwcg^L%ftSwJoJn6-=#R)%-aOG-IEdPJ^q?wL6dCp6{bid#9ym=opla9#DuObg@ zipc#KF^J5~9+{n6J1n=iwzh%*U?=q3YuESPy1u)AffYsY$aFeiV65JG+v{7cLk5ATt2@jU9dU$+tY+Oc}>2-Y*@Ev9Iu;t z{tTP(JnQ(hcU?YbHs2ZVy3dmvo$>1Vg5x#$1#{MuHGUCFVcj;--`_Fkz5fy+B#>$2 zfB3w=Y?$Tc`+wH)y8H>>f57H5dI&1gFn+Ee-)pd@psx^@_+PNd`3zca{rm%qeqJRm ztsnY1GQx*`UUR%+`gj92>p4fBGk(91uRHGd5${VQqkVkSt@r!*mg9aO-*(*Z<2&Hv z`goMwsNctT9j^)N$v(1fd~Z?szT)!^HTk|rnEyB5dB^>H-zSHR=KBF*PVVQs;JBaf zamW397s1EnyF_l(&zJ8}%WLu}B4ECJcbhLct*5M>HDDhhb|7e8YF8HYt z&Wq8{>4Gn-OsAoWq}j~Uql>LDOVY)DrsHmy#K&ZPbt#PW$>W$bRo218tXt`*mQH!t z&fMgb9$ZS&Ru|xO*zRQOYGWx*{=?Q^QVtTyD6ILrpk zG}+K;HdyIsozbbfs9OaLHNBkE{l)lVS7NoU?Kzg%Ls>7?Jne#twDe_w`I)t~uJN@L zB`Pz4BvF!fC6%_E7sY~zG-(e@1rV1~b5{Ff)Adhj1uScs^C>;82gTH(Gj4 z^`fki>Tc3YFCg5BOe!#`z@!3`3QQ_6slflO0RNJ%Y^Y1I+p82?ChqwQ;ooj#VE* literal 0 HcmV?d00001 diff --git a/singleTap/SingleTap/Assets/Scripts/BackgroundController.cs b/singleTap/SingleTap/Assets/Scripts/BackgroundController.cs index f3e50d7..6638d0c 100644 --- a/singleTap/SingleTap/Assets/Scripts/BackgroundController.cs +++ b/singleTap/SingleTap/Assets/Scripts/BackgroundController.cs @@ -6,6 +6,8 @@ public class BackgroundController : MonoBehaviour { public float transistionSpeed = 1f; public float waitTime = 10f; + public bool forceChange = false; + private Material mat; private float lastTransition = 0.0f; @@ -20,8 +22,9 @@ public class BackgroundController : MonoBehaviour { // Update is called once per frame void FixedUpdate () { - if (Time.time - lastTransition >= waitTime) { + if (Time.time - lastTransition >= waitTime || forceChange) { lastTransition = Time.time; + forceChange = false; StartCoroutine(transition(transistionSpeed)); } diff --git a/singleTap/SingleTap/Assets/Scripts/EnemyController.cs b/singleTap/SingleTap/Assets/Scripts/EnemyController.cs index 4520d12..a3d9644 100644 --- a/singleTap/SingleTap/Assets/Scripts/EnemyController.cs +++ b/singleTap/SingleTap/Assets/Scripts/EnemyController.cs @@ -13,14 +13,14 @@ public class EnemyController : InteractableObject { public float shotCoolDown = 0.5f; public float initShotWait = 0.0f; protected float lastShotTime = 0.0f; - private GameObject healthDisp; + public GameObject healthDisp; // Use this for initialization protected virtual void Start () { - lastShotTime += initShotWait; - healthDisp = GetComponentInChildren().gameObject; + lastShotTime = Time.time + initShotWait; player = GameObject.FindGameObjectWithTag("Player"); playerRigid = player.GetComponent(); + healthDisp.SetActive(true); } // Update is called once per frame @@ -59,11 +59,12 @@ public class EnemyController : InteractableObject { health--; //Debug.Log("I got hit, health: " + health); if (health <= 0) { + GameMemory.control.enemyDeath(); Destroy(gameObject); } Vector3 newScale = new Vector3(health / 10f, health / 10f, health / 10f); - Debug.Log("new scale = " + newScale); + //Debug.Log("new scale = " + newScale); if (healthDisp != null) { healthDisp.transform.localScale = newScale; diff --git a/singleTap/SingleTap/Assets/Scripts/GameMemory.cs b/singleTap/SingleTap/Assets/Scripts/GameMemory.cs new file mode 100644 index 0000000..d8145eb --- /dev/null +++ b/singleTap/SingleTap/Assets/Scripts/GameMemory.cs @@ -0,0 +1,87 @@ +using UnityEngine; +using System.Collections; + +public class GameMemory : MonoBehaviour { + + public static GameMemory control; + public bool reloadScene = false; + public Color transitionColor; + + public GameObject playerPrefab; + + + public PlayerController playerScript; + private GameObject backGround; + private int SceneLoaded; + public TapDetector tapScript; + + + // Use this for initialization + void Awake () { + if (control == null) { + DontDestroyOnLoad(gameObject); + control = this; + }else if (control != this) { + Destroy(gameObject); + } + + //playerScript = GetComponentInChildren(); + tapScript = GetComponent(); + backGround = GameObject.FindGameObjectWithTag("BackGround"); + SceneLoaded = UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex; + + } + + void Start() { + startLevel(); + } + + + void OnLevelWasLoaded() { + Debug.Log("New Scene"); + startLevel(); + } + + // Update is called once per frame + void Update () { + if (reloadScene) { + reloadScene = false; + UnityEngine.SceneManagement.SceneManager.LoadScene(SceneLoaded); + } + + } + + public void startLevel() { + if (playerScript != null) { + playerScript.setHealth(3); + } else { + GameObject respawn = GameObject.FindGameObjectWithTag("Respawn"); + GameObject player = (GameObject) Instantiate(playerPrefab, respawn.transform.position, respawn.transform.rotation); + DontDestroyOnLoad(player); + player.transform.parent = transform; + playerScript = player.GetComponent(); + tapScript.playerScript = playerScript; + } + + + } + + public void enemyDeath() { + int enemyCount = GameObject.FindGameObjectsWithTag("Enemy").Length; + Debug.Log("EnemyDown. Enemies Left: " + enemyCount); + if (enemyCount -1 == 0) { + SceneLoaded++; + UnityEngine.SceneManagement.SceneManager.LoadScene(SceneLoaded); + + } + + + } + + public void playerDeath() { + playerScript = null; + UnityEngine.SceneManagement.SceneManager.LoadScene(SceneLoaded); + } + + +} diff --git a/singleTap/SingleTap/Assets/Scripts/MissileController.cs b/singleTap/SingleTap/Assets/Scripts/MissileController.cs index 24f912b..59e9ff2 100644 --- a/singleTap/SingleTap/Assets/Scripts/MissileController.cs +++ b/singleTap/SingleTap/Assets/Scripts/MissileController.cs @@ -33,6 +33,7 @@ public class MissileController : MonoBehaviour { // Use this for initialization void Start () { + DontDestroyOnLoad(gameObject); startTime = Time.time; Collider2D thisCollider = GetComponent(); @@ -69,7 +70,6 @@ public class MissileController : MonoBehaviour { private void moveTorwards(Vector3 pos) { if (boostEffect != null) { - Debug.Log("Playing Boost"); boostEffect.startRotation = transform.rotation.eulerAngles.z * Mathf.Deg2Rad; boostEffect.Play(); } @@ -105,11 +105,13 @@ public class MissileController : MonoBehaviour { return; } - Debug.Log("I hit " + coll.gameObject.name); + //Debug.Log("I hit " + coll.gameObject.name); colScript.shot(); - if (Explosion != null) - Instantiate(Explosion, transform.position,transform.rotation); + if (Explosion != null) { + GameObject explosion = (GameObject)Instantiate(Explosion, transform.position, transform.rotation); + Destroy(explosion, 2.0f); + } Destroy(this.gameObject); diff --git a/singleTap/SingleTap/Assets/Scripts/PlayerController.cs b/singleTap/SingleTap/Assets/Scripts/PlayerController.cs index 7a4ca5d..bbbe83a 100644 --- a/singleTap/SingleTap/Assets/Scripts/PlayerController.cs +++ b/singleTap/SingleTap/Assets/Scripts/PlayerController.cs @@ -7,6 +7,7 @@ public class PlayerController : InteractableObject { public GameObject bullet; public float speed; + public float spinSpeed = 5f; public int health; public Renderer healthMat; public Color[] healthColor; @@ -16,12 +17,12 @@ public class PlayerController : InteractableObject { private int bulletDirection = -1; private Rigidbody2D rigid; private float lastHit = 0.0f; - private bool isDead = false; + private bool isImmobilized = false; // Use this for initialization void Start() { rigid = GetComponent(); - rigid.AddForce(Vector2.right * 200); + rigid.AddForce(transform.right * 200); } @@ -34,17 +35,17 @@ public class PlayerController : InteractableObject { public void rotatePlayer() { - if (isDead) + if (isImmobilized) return; rigid.velocity = Vector3.zero; - transform.Rotate(new Vector3(0, 0, 5f)); + transform.Rotate(new Vector3(0, 0, spinSpeed) * 50 * Time.deltaTime); } public void movePlayer() { - if (isDead) + if (isImmobilized) return; //Debug.Log(transform.rotation.eulerAngles.z * Mathf.Deg2Rad); @@ -75,7 +76,7 @@ public class PlayerController : InteractableObject { } public void shoot() { - if (isDead) + if (isImmobilized) return; GameObject bulletClone = (GameObject)Instantiate(bullet, transform.position + (transform.up * bulletDirection * 0.1f), transform.rotation); @@ -89,38 +90,42 @@ public class PlayerController : InteractableObject { } - private void setDead() { + private void ImmobilizePlayer() { + isImmobilized = true; rigid.angularDrag = 0; rigid.drag = 1; rigid.constraints = RigidbodyConstraints2D.None; } public override void shot() { - if (Time.time - lastHit < 1) { return; } - health--; - if (isDead) { - if (Explosion != null) - Instantiate(Explosion, transform.position, transform.rotation); - - Destroy(this.gameObject, 0.1f); + if (isImmobilized) { + killPlayer(); } - if (health <= 0) { - isDead = true; - setDead(); + ImmobilizePlayer(); health = 0; } healthMat.material.color = healthColor[3-health]; - lastHit = Time.time; + lastHit = Time.time; + } + + private void killPlayer() { + if (Explosion != null) + DontDestroyOnLoad(Instantiate(Explosion, transform.position, transform.rotation)); + + GameMemory.control.playerDeath(); + Destroy(this.gameObject, 0.1f); + } - - + public void setHealth(int input) { + health = input; + healthMat.material.color = healthColor[3 - health]; } } \ No newline at end of file diff --git a/singleTap/SingleTap/Assets/Scripts/SpawnController.cs b/singleTap/SingleTap/Assets/Scripts/SpawnController.cs new file mode 100644 index 0000000..bf03c19 --- /dev/null +++ b/singleTap/SingleTap/Assets/Scripts/SpawnController.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using System.Collections; + +public class SpawnController : MonoBehaviour { + + private EnemyController controller; + private CircleCollider2D boxCollider; + public Material mat; + public float animationTime = 5f; + public Color startColor; + public Color endColor; + + + // Use this for initialization + void Start () { + controller = GetComponentInParent(); + boxCollider = GetComponentInParent(); + + mat = new Material(GetComponentInChildren().material); + transform.Find("SpawnCube").GetComponentInChildren().material = mat; + + + StartCoroutine(spawn(animationTime)); + } + + private IEnumerator spawn(float time) { + float elapsedTime = 0; + Color transitionColor = startColor; + + while ((elapsedTime / time) <= 1) { + transitionColor = Color.Lerp(startColor, endColor, (elapsedTime / time)); + mat.color = transitionColor; + + elapsedTime += Time.deltaTime; + yield return new WaitForEndOfFrame(); + } + + + + controller.enabled = true; + boxCollider.enabled = true; + Destroy(gameObject); + } +} diff --git a/singleTap/SingleTap/Assets/Scripts/TapDetector.cs b/singleTap/SingleTap/Assets/Scripts/TapDetector.cs index 379e014..79c85e0 100644 --- a/singleTap/SingleTap/Assets/Scripts/TapDetector.cs +++ b/singleTap/SingleTap/Assets/Scripts/TapDetector.cs @@ -12,10 +12,11 @@ public class TapDetector : MonoBehaviour { private bool isLongDown = false; - // Use this for initialization - void Start () { - playerScript = GameObject.FindGameObjectWithTag("Player").GetComponent(); - } + // Use this for initialization + void Start() { + //playerScript = GameObject.FindGameObjectWithTag("Player").GetComponent(); + } + // Update is called once per frame void Update () { diff --git a/singleTap/SingleTap/Assets/Shaders/BackGroundEffect.shader b/singleTap/SingleTap/Assets/Shaders/BackGroundEffect.shader index 2ffe2a6..5986326 100644 --- a/singleTap/SingleTap/Assets/Shaders/BackGroundEffect.shader +++ b/singleTap/SingleTap/Assets/Shaders/BackGroundEffect.shader @@ -1,15 +1,15 @@ // Shader created with Shader Forge v1.26 // Shader Forge (c) Neat Corporation / Joachim Holmer - http://www.acegikmo.com/shaderforge/ // Note: Manually altering this data may prevent you from opening it in Shader Forge -/*SF_DATA;ver:1.26;sub:START;pass:START;ps:flbk:,iptp:0,cusa:False,bamd:0,lico:1,lgpr:1,limd:0,spmd:1,trmd:0,grmd:0,uamb:True,mssp:True,bkdf:False,hqlp:False,rprd:False,enco:False,rmgx:True,rpth:0,vtps:0,hqsc:True,nrmq:1,nrsp:0,vomd:0,spxs:False,tesm:0,olmd:1,culm:0,bsrc:0,bdst:1,dpts:2,wrdp:True,dith:0,rfrpo:True,rfrpn:Refraction,coma:15,ufog:True,aust:True,igpj:False,qofs:0,qpre:1,rntp:1,fgom:False,fgoc:False,fgod:False,fgor:False,fgmd:0,fgcr:0.5,fgcg:0.5,fgcb:0.5,fgca:1,fgde:0.01,fgrn:0,fgrf:300,stcl:False,stva:128,stmr:255,stmw:255,stcp:6,stps:0,stfa:0,stfz:0,ofsf:0,ofsu:0,f2p0:False,fnsp:False,fnfb:False;n:type:ShaderForge.SFN_Final,id:9361,x:33209,y:32712,varname:node_9361,prsc:2|custl-6614-OUT;n:type:ShaderForge.SFN_Color,id:2943,x:32587,y:32901,ptovrint:False,ptlb:HighLight,ptin:_HighLight,varname:_HighLight,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0.3602941,c2:0.3602941,c3:0.3602941,c4:1;n:type:ShaderForge.SFN_Color,id:5129,x:32576,y:32684,ptovrint:False,ptlb:LowLight,ptin:_LowLight,varname:_LowLight,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0.7132353,c2:0.7132353,c3:0.7132353,c4:1;n:type:ShaderForge.SFN_Lerp,id:6614,x:32890,y:32938,varname:node_6614,prsc:2|A-5129-RGB,B-2943-RGB,T-1023-OUT;n:type:ShaderForge.SFN_Tex2d,id:7481,x:31875,y:33749,ptovrint:False,ptlb:GradienceMap,ptin:_GradienceMap,varname:_Gradience,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,tex:cb89da7e1100944499f9783f8a750859,ntxv:0,isnm:False|UVIN-2380-UVOUT;n:type:ShaderForge.SFN_TexCoord,id:2380,x:31564,y:33766,varname:node_2380,prsc:2,uv:0;n:type:ShaderForge.SFN_Add,id:4392,x:32094,y:33110,varname:node_4392,prsc:2|A-4708-OUT,B-8125-OUT;n:type:ShaderForge.SFN_Lerp,id:8125,x:31852,y:33157,varname:node_8125,prsc:2|A-8573-RGB,B-714-OUT,T-288-OUT;n:type:ShaderForge.SFN_RemapRange,id:714,x:31618,y:33221,varname:node_714,prsc:2,frmn:0,frmx:1,tomn:1,tomx:0|IN-8573-RGB;n:type:ShaderForge.SFN_Tex2d,id:8573,x:31147,y:33174,ptovrint:False,ptlb:TimeMap,ptin:_TimeMap,varname:_TimeNode,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,tex:b8f1d2aab7a1ed0478705fbbbbffde97,ntxv:0,isnm:False|UVIN-1982-UVOUT;n:type:ShaderForge.SFN_TexCoord,id:1982,x:30920,y:33087,varname:node_1982,prsc:2,uv:0;n:type:ShaderForge.SFN_ComponentMask,id:4482,x:32305,y:33086,varname:node_4482,prsc:2,cc1:0,cc2:-1,cc3:-1,cc4:-1|IN-4392-OUT;n:type:ShaderForge.SFN_Code,id:1023,x:32714,y:33346,varname:node_1023,prsc:2,code:IABmAGwAbwBhAHQAIAByAGUAdABWAGEAbAA7AA0ACgAgACAAIAAgACAAIAAgACAAIAAgAA0ACgAgAGYAbABvAGEAdAAgAHQAIAA9ACAAKAAoAEkAbgBwAHUAdAAgACsAIABTAGwAaQBkAGUAcgApAC8AKAAyACoAUwBsAGkAZABlAHIAKQApADsADQAKACAAcgBlAHQAVgBhAGwAIAA9ACAAbABlAHIAcAAgACgAMAAsADEALAB0ACkAOwANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAADQAKACAAcgBlAHQAdQByAG4AIABjAGwAYQBtAHAAIAAoAHIAZQB0AFYAYQBsACwAIAAwAC4AMAAsACAAMQAuADAAKQA7AA==,output:0,fname:CieltoGrad,width:384,height:187,input:0,input:0,input_1_label:Input,input_2_label:Slider|A-5345-OUT,B-3076-OUT;n:type:ShaderForge.SFN_Slider,id:4708,x:31020,y:32871,ptovrint:False,ptlb:TimeNode,ptin:_TimeNode,varname:node_4708,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,min:-1,cur:-0.6582282,max:1;n:type:ShaderForge.SFN_ToggleProperty,id:288,x:31690,y:33410,ptovrint:False,ptlb:InvertMap,ptin:_InvertMap,varname:node_288,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,on:True;n:type:ShaderForge.SFN_Clamp01,id:5345,x:32503,y:33211,varname:node_5345,prsc:2|IN-4482-OUT;n:type:ShaderForge.SFN_Clamp01,id:5374,x:32066,y:33749,varname:node_5374,prsc:2|IN-7481-R;n:type:ShaderForge.SFN_RemapRange,id:3076,x:32297,y:33684,varname:node_3076,prsc:2,frmn:0,frmx:1,tomn:0.001,tomx:1|IN-5374-OUT;proporder:2943-5129-7481-8573-4708-288;pass:END;sub:END;*/ +/*SF_DATA;ver:1.26;sub:START;pass:START;ps:flbk:,iptp:0,cusa:False,bamd:0,lico:1,lgpr:1,limd:0,spmd:1,trmd:0,grmd:0,uamb:True,mssp:True,bkdf:False,hqlp:False,rprd:False,enco:False,rmgx:True,rpth:0,vtps:0,hqsc:True,nrmq:1,nrsp:0,vomd:0,spxs:False,tesm:0,olmd:1,culm:0,bsrc:0,bdst:1,dpts:2,wrdp:True,dith:0,rfrpo:True,rfrpn:Refraction,coma:15,ufog:True,aust:True,igpj:False,qofs:0,qpre:1,rntp:1,fgom:False,fgoc:False,fgod:False,fgor:False,fgmd:0,fgcr:0.5,fgcg:0.5,fgcb:0.5,fgca:1,fgde:0.01,fgrn:0,fgrf:300,stcl:False,stva:128,stmr:255,stmw:255,stcp:6,stps:0,stfa:0,stfz:0,ofsf:0,ofsu:0,f2p0:False,fnsp:False,fnfb:False;n:type:ShaderForge.SFN_Final,id:9361,x:33209,y:32712,varname:node_9361,prsc:2|custl-6614-OUT;n:type:ShaderForge.SFN_Color,id:2943,x:32587,y:32901,ptovrint:False,ptlb:HighLight,ptin:_HighLight,varname:_HighLight,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0.8676471,c2:0.03827853,c3:0.03827853,c4:1;n:type:ShaderForge.SFN_Color,id:5129,x:32576,y:32684,ptovrint:False,ptlb:LowLight,ptin:_LowLight,varname:_LowLight,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0.3823529,c2:0.3823529,c3:0.3823529,c4:1;n:type:ShaderForge.SFN_Lerp,id:6614,x:32890,y:32938,varname:node_6614,prsc:2|A-5129-RGB,B-2943-RGB,T-7325-OUT;n:type:ShaderForge.SFN_Tex2d,id:7481,x:31875,y:33749,ptovrint:False,ptlb:GradienceMap,ptin:_GradienceMap,varname:_Gradience,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,tex:cb89da7e1100944499f9783f8a750859,ntxv:0,isnm:False|UVIN-2380-UVOUT;n:type:ShaderForge.SFN_TexCoord,id:2380,x:31564,y:33766,varname:node_2380,prsc:2,uv:0;n:type:ShaderForge.SFN_Add,id:4392,x:32094,y:33110,varname:node_4392,prsc:2|A-4708-OUT,B-8125-OUT;n:type:ShaderForge.SFN_Lerp,id:8125,x:31852,y:33157,varname:node_8125,prsc:2|A-8573-RGB,B-714-OUT,T-288-OUT;n:type:ShaderForge.SFN_RemapRange,id:714,x:31618,y:33221,varname:node_714,prsc:2,frmn:0,frmx:1,tomn:1,tomx:0|IN-8573-RGB;n:type:ShaderForge.SFN_Tex2d,id:8573,x:31147,y:33174,ptovrint:False,ptlb:TimeMap,ptin:_TimeMap,varname:_TimeNode,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,tex:b8f1d2aab7a1ed0478705fbbbbffde97,ntxv:0,isnm:False|UVIN-1982-UVOUT;n:type:ShaderForge.SFN_TexCoord,id:1982,x:30920,y:33087,varname:node_1982,prsc:2,uv:0;n:type:ShaderForge.SFN_ComponentMask,id:4482,x:32305,y:33086,varname:node_4482,prsc:2,cc1:0,cc2:-1,cc3:-1,cc4:-1|IN-4392-OUT;n:type:ShaderForge.SFN_Code,id:1023,x:32714,y:33346,varname:node_1023,prsc:2,code:IABmAGwAbwBhAHQAIAByAGUAdABWAGEAbAA7AA0ACgAgACAAIAAgACAAIAAgACAAIAAgAA0ACgAgAGYAbABvAGEAdAAgAHQAIAA9ACAAKAAoAEkAbgBwAHUAdAAgACsAIABTAGwAaQBkAGUAcgApAC8AKAAyACoAUwBsAGkAZABlAHIAKQApADsADQAKACAAcgBlAHQAVgBhAGwAIAA9ACAAbABlAHIAcAAgACgAMAAsADEALAB0ACkAOwANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAADQAKACAAcgBlAHQAdQByAG4AIABjAGwAYQBtAHAAIAAoAHIAZQB0AFYAYQBsACwAIAAwAC4AMAAsACAAMQAuADAAKQA7AA==,output:0,fname:CieltoGrad,width:384,height:187,input:0,input:0,input_1_label:Input,input_2_label:Slider|A-5345-OUT,B-3076-OUT;n:type:ShaderForge.SFN_Slider,id:4708,x:31020,y:32871,ptovrint:False,ptlb:TimeNode,ptin:_TimeNode,varname:node_4708,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,min:-1,cur:-0.007141635,max:1;n:type:ShaderForge.SFN_ToggleProperty,id:288,x:31690,y:33410,ptovrint:False,ptlb:InvertMap,ptin:_InvertMap,varname:node_288,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,on:True;n:type:ShaderForge.SFN_Clamp01,id:5345,x:32503,y:33211,varname:node_5345,prsc:2|IN-4482-OUT;n:type:ShaderForge.SFN_Clamp01,id:5374,x:32066,y:33749,varname:node_5374,prsc:2|IN-7481-R;n:type:ShaderForge.SFN_RemapRange,id:3076,x:32297,y:33684,varname:node_3076,prsc:2,frmn:0,frmx:1,tomn:0.0001,tomx:1|IN-5374-OUT;n:type:ShaderForge.SFN_RemapRange,id:7325,x:32955,y:33142,varname:node_7325,prsc:2,frmn:0,frmx:1,tomn:-1,tomx:1|IN-1023-OUT;proporder:2943-5129-7481-8573-4708-288;pass:END;sub:END;*/ Shader "Shader Forge/BackGroundEffect" { Properties { - _HighLight ("HighLight", Color) = (0.3602941,0.3602941,0.3602941,1) - _LowLight ("LowLight", Color) = (0.7132353,0.7132353,0.7132353,1) + _HighLight ("HighLight", Color) = (0.8676471,0.03827853,0.03827853,1) + _LowLight ("LowLight", Color) = (0.3823529,0.3823529,0.3823529,1) _GradienceMap ("GradienceMap", 2D) = "white" {} _TimeMap ("TimeMap", 2D) = "white" {} - _TimeNode ("TimeNode", Range(-1, 1)) = -0.6582282 + _TimeNode ("TimeNode", Range(-1, 1)) = -0.007141635 [MaterialToggle] _InvertMap ("InvertMap", Float ) = 1 } SubShader { @@ -66,9 +66,9 @@ Shader "Shader Forge/BackGroundEffect" { float4 frag(VertexOutput i) : COLOR { ////// Lighting: float4 _TimeMap_var = tex2D(_TimeMap,TRANSFORM_TEX(i.uv0, _TimeMap)); - float node_5345 = saturate((_TimeNode+lerp(_TimeMap_var.rgb,(_TimeMap_var.rgb*-1.0+1.0),_InvertMap)).r); float4 _GradienceMap_var = tex2D(_GradienceMap,TRANSFORM_TEX(i.uv0, _GradienceMap)); - float3 finalColor = lerp(_LowLight.rgb,_HighLight.rgb,CieltoGrad( node_5345 , (saturate(_GradienceMap_var.r)*0.999+0.001) )); + float node_1023 = CieltoGrad( saturate((_TimeNode+lerp(_TimeMap_var.rgb,(_TimeMap_var.rgb*-1.0+1.0),_InvertMap)).r) , (saturate(_GradienceMap_var.r)*0.9999+0.0001) ); + float3 finalColor = lerp(_LowLight.rgb,_HighLight.rgb,(node_1023*2.0+-1.0)); fixed4 finalRGBA = fixed4(finalColor,1); UNITY_APPLY_FOG(i.fogCoord, finalRGBA); return finalRGBA; diff --git a/singleTap/SingleTap/Assets/_Scenes/Level2.unity b/singleTap/SingleTap/Assets/_Scenes/Level2.unity index 1e4e9ef3c47d10680769328428941fb271fd0b5b..d2199908f5da4aa654a3778d75df7d2def5bebc4 100644 GIT binary patch delta 3309 zcmbVO3s98T6+U-&VHaH9Ae%M7A_Pe^iUrgVUJFbh6v-OUB#Ms}*FeH!vsqJ9Or>Mf zaU8XTlk`Ui;~JBhwi$6#%-D3aF-{-WQPC&}#pMkFK{0ib*w#SL{rCTIyCj`y|CzJ* zp7Wi@J?EZ#;LOLW(SBA8P&5c&9R+|OfR(fWq%KZgoVs->OifQuvoI3er%hY$sWwga z;D)Z;OQ%o#eece$u$K4FSN-Xsy9fRmbJXTsHjng*KPt{w;3w)ukqj6(lu(~TQbwdF zf~NtGq&i4UU3r81_mt#E0PVPLBIPP3WM9yi?U=2Wh3bDaN4{^E1KvD%9A$cCL zDk6Ru<{^JdlJgWizLB*AvattHqSX9eCe7#Ey;IwkgXL7{QAK`m_amsVD7&^G>&6u{O}Lg^a_(d z{_UE6r^6p$FG(Xsat8{KG?V54@V4bW5G$n-C}9_ktQ+MoRU9ea8Rtk?1BSGRp|f2ReU1i?cYeE8oqn7H@<2*KMOdc}%R^uMl8`&B5wJ}*sWf-94ISwVBoI}MeD z?GD2Y*YyfrIR2Qtn8IhDW#fgxEbiqDVZWx;^DLVr%o>50$crNaZ<3eG5de!wvrHs+ z*~%qNpn35Y$;la!8`~mbO>;4`Q?JlO;@VDqS`+n>_o+k9A2gC7j1uNu{7?zouEQ4c z;?&`J@?xM~w|lj4-CAP__tHee&rGXlMmr=7qA z|Hy9D_I$nay;TuZMEZ{3kG-26p(#B0-Upj5X1D!I37FcQgmv8&7<3~i`@KRhEINFtaCrG)%lJOqfebFY-!Mi{q|sQoLky=E_F}Amshg)Z0l`)XQM;OrP$xC z!>{}2;n^EC%m=G$rzGl&R!KJjfIo! z*iej67RWg48d^fX0mJhG=#M4nlHC(@TKx7Vy%tbd7FvgLLKo)}+hJtBZ9VjXt6Xh;96Lph2S$%T};a7rKGBMS|3-SJh z7Vq4gpo+W3cTvU76LmtmhH2C^*5O7I!|{oz6nRY2ycIurq{_TJer2A|YCJV;5}kBx zYT*~7;=>&mjTrDJE{$+Gh^ds9x;&7S$@%nPJK9%^BgY-5K8xS>o@s`wMjmn7gjPPV z5z=+cfJGxZH`MdA`az(E@o;P!iN~@5jYfWV=o|>gd;Jen()YxK>#*ULMogNjeoKSS z+j)3n!XVv%1|5?Z@bX>NNvDeKRWKhRL(Qm0!e?q$Cp2qW_(_w76)6cgG)DwtwX6r#~y=Q3iRZbpSra%7HhHNVa~ceaMT) zOh2&i8V{E4Sgq~jM>br3;0woIeeZzWC!GUfcNLZtmgQ1Ob(bWmVz)1_i8b<6^25GK z^(V;d2Shu&@Mn@d4!#mT`(UAM3Tw|{&$Y2l`@R7m2tONRyT8k`_NnBAK1uZ+=VzI~ zKJ>F}z(YUFd7eskgrC{Y50BB
    +Lc<5&Z&r``fl=Bey;Tf)oCDmxpjXLZN&hz3q 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

    26bY1Dxsg# zu|+@j5?r$vKOCxAdwYo&Kb%XEHx=ia_`}6;shY^_$Sw`4HMwtHC zjkg*8<;kU7dpmk|Gq7%J>ai~$nKAQ(nKLmKH+NIeG&ss_M9FS^c&nEN{bS$hTYUFB zFTFJ7?RyySv$2Hnz7Muds#;y^#XIY_Uc5`EspEZH?6WlSE`D^pi=QQpck!d+UHpXc z&JKJm7M|aVSXf}jDLX;&!@TgSD}EU7mfQH9%xx^D6E}V=m-b}h9Tmfi0iOv?hb?`Z zc<Z2YFCxHA2-`;<=-csN6k)$F&g6p29zJj4UTZ%+cKXNrb?owb7tfBp5>;nn55Bcs z#hO*RUPS+2>cJbk+j7NmnC)V2vE)O;gQ4UN$4{GZ)!!aJzI@KIzg%y@%_mZE4iNtt z#o6xa^&t(&W6bM5gtfUeeTewceTev3(mq7|ERW;c5xSj8h@Y?z>Ft`?l*rI>aV+UN$%Z^ZL_HtfUzZ#eG;xTaF z4U0YQ;n*fKJ$B%~0gT6Gk8SO34=l%Jj~#M3E_>{d%W+w6;c-vIHjk@&>;^C%mpyjq zM~=&pK*;5|_HJ(j@@zTfxb|)@xvj5Dod57C9Iu!+IBxFtrg@B%xf^~vIO~Kr!on-; zZ?Va8ZiFSg!aixu%u{^1!p?{P7r<%XfQ3oQ^H;2s4_dEQLqd_`!rlr7Ju z7K7R=zLaM(V@rG6>ZLsPZg0)cM$Qj)V$y!LG;Co%YzNpCi)|O%VuR(}8Vi%~X2-X& z*z=6z9EmW=`F1c2fX8lNubK;Yi=-@)@#@+0`T)%h7jKSx*4I7+Gk;W@G1!9EJ-m zvwEyUPevZzox#@#6b+wMdQ(m`?ZDh4R}{FNQJgE|7ZzN75djYYGx;Lk+sYQ&&4Wig z7%gS>_NYu-*1ltH?Q4%0Te^ys=3;SHj&s@(*_oN{Jf4%vO>u}Bze^C0sRl#`_UOQrcO&X zdt#;CZ(5I$(}Jj27N1PJB=)9)*{CuS>fg!ZKJ~@}>_ONf^mu?RkXH}p(Kr7s>Z@Pk zhsUzkwnd8{bA@s_i+WE){O}6ZXzXJ@iyIH{*z6&fL+`_~vo*>UjaOvq$ex^6sPKx+ z(Jk#)!4h7PcXixcq0AN5_Sm~SPG6z@9**-0Wx4IihdItG6cfuiALZE#>pZTVQ`Gn* z$IYC=^d#2)P{-|@!rF7*a0C`!ZR{0_-1fAh!#cr;NBB#_BUz=zjnfCecCs^9qG#WO(SGS18ME{Jer~mS;08O!A(~yI3b@ zxtQpmGatDE@(LBc=dvuE(wJw7<_rl-Yt|)d{U-ho-?v{wU75`&tBHd zGwtKe;G$G}-Wm0*K{wu%%kYk-eF!NVxG>?Zc)YVB-m!w)oO5_duxDbf2JB7E3O?=i zQ0`&&_L7P`ZREX9>|p!!S}%@{**vYClxfR#vq*MR&a$zT&G@hFgw^X5%Y4`64pcc1uT*#>4(H8G8<-t7urJlJ`& z(ZYpEY@FomJji*mOwzVf;E-!iEbMrhmsIKBHbUv#mmxMfjpWY}#lmbK%~a(>Lk(jE6Guye7n z?Dhs6?d`MaYn;8E&RNb*|0Zy1$vTslL8#kp;P`K*b5b7iM;td7%QXGii`Mht{a|k| zmNovNkPc?Esz=&}13 zOS5L?i*sDBCpKlXJ$h_p8*JE~&p#T%YbPbV@iC#h($!rN+L)h_Z7VkMo4M!;CujL0 zNG9K0#0$@S?XLDrx^vpd!t7kBSm?xL!IYr(C~0INGb5knqwqFgHh8mm62D4}FGbdJ zWX(Ph3kqB}Bf6;YI1zA@f&I-(kvs|WF5(#bb|fYw6XN$)CT7~&?4^NUB59m}uPxhe zl9=(mlwk?pU|D!7;|@)~C4BjdZ=rL>Q^@2;%RA)3)}#!kT;1kv^V%dL+_zRBl$WnG zG?vR*d{x`MQ4>P2NpJ<7nedtNg0z#(ot#q3|TVLu-}b^>DX_|LX=A&Q7s2~sF>?=mlC$~0fpwPA%suewzL(@<-)%Q_<4Xq~V(b!aU6Nb=dX_UwpKu}d04X6|0yi1*e~v0V1Aab;RtyYV`0 z7Q?XCESq-HnJY}nwj*>o5=vUL`Menpb!H0P=ontU+>{aPATh6g&C%-28JVTr5Xle zo7KQP%NIQr7C(9_EPfb{;%8A)Ve!MOdt)!jri?Zm?J=6cCSdVzbXCc1 zb2`x3OE~rc$Cb63arXA=PW!&*O*Py+tJ05zBi=BJUXf)}XV|CkjvKGy^4m^$br*gZ z*0EH1rRLS$@@37`Q<^2p5b?R#ruOz`E%U7X(T>}zdySvqxV^et&hnh;IH$t)xOS8v z&6`*EkW2HnH*1+^?QeB{cy*_}=ypHWsgJ$7TYJ9YC%W0IJ9(^|y}Fafy7B66%d-qM z^Safh!m(}*-rjQ2ZGhsU8@pud-`b0An+818Z8Ohf-596VkL9A<7K)2*TYBCnX@EYD zV4H1uD=bNxzHB@{i%r)1)>xRxIqH2G>*U)IB9XJ(ecPXzX5HPa z4fqN;8J-W@D--Rh!`A_M+#L*Mnekg(z__s92a#84Z%5&rvg3a;m^^Jc+v6~2Z!V!# z^1deir9BRX4O1WRus!Z*G3@(A?U9#J9tZIgwa1-3Up8uw>?f@KvQb>^>iKd}d)!TN ziL2cem$>?d;u2ST1U!r@&Yo;}>>Hxe9)~F|aW!0ViL12ZqMNkGMsOyrTa#f6>&7|~ zeOONE$3_G^Y>y*7k98ZRxac-oanWsz;-cHwfQP#6<$0{z-inKEXd{u%q8o=*_I&$B z?QtLQFmA`eh;h#AiH-9(ZYPo>iT)X^(|%t=d5k!2CxP4J#&O%?c^tQs10L$XpXagu zQxq5d_g7r>pQ^a%e?Y)P{n=h^`D6VLQe5;uSaH$+5XVI~iQ7ZLnY3=x3?q+qo9=n6 z8|%TAGj8uQJdbs2Ra|syQ(Sb*DlWRs40xzpyXUcP9g2%?ImJac#(+JqIBsWwOWf`c zgPB;)0LqhBxliBZ9;_V>&OV^i@ji%8#7y;@;Qhb~Sg?v^8FSq^&het-Vt=CJU3Kga zSN8n6Fa4M5*q4?4+0MRF$G%(HpXcmn*Rh|Y>@RlqtY@q)biO^xex9>GqK^HM%Kit= z{-`?k-}Jm+aw@Lxyc^O7jPYg5WBHFAKSpsrETw%_@jD$qR`GisKTh$796w(1#~lBb z;(v7f+ls&BINJeMvDosz?)Zs{zvK8xihu0*$%=pO_$i7n0}-ghsfw@U_-Tr->GV?4=!D zR>yvx=W#olueh|M?<+3t=yJuS9bKWgw4)y=F74=tic34XQgLZVS1B&-h}QwDXWWji zQC!;5wTeqS`jO(&j;>Q&+R^ojOFOzjacM_420Uy>KUQ4Y(ND7obSkW=Vrrd_T!!XPmT4$_CIs>Y^M$I^9Z)FOL7bC)3ooCG-GuNAjfIEuCo2o z9x+qp_=e^AITj`vpJcF3`(GGpj~mW&{|DUGS3Ews&GUGCa(lqTaoruB$K#Vb73Xz} zslX2aB;7od4$Nb)O z`?cq>ZVv=J)a^H($GSbJxajtf;-cGc6&Kxp7w}NGhdqyVW8B&EvRrigz2c(Vqn^ic z`xtl_x6@tRK2BccG2*y=f*eWo&tRQ#`=p@@>;DvZZ~Fhi^H~3<10L%CN6%yZpHW=& ze^znPAKJR|SU;lw^8pX_f5G!u{}&Y({a;dC^nclL(M{s^6>ugUx33yT9=G>Dc^>Qb zTEIiy{_J_I+v|#pZf__qy1l8m==N5?L*4%3d92&pii>W4Ra|s?$MZOD-vtljw&>#a zJ@P7bi{tivawO4T;`RfJ7t;Sj@ZRF~BhO>~KMr`P|0kZu`u|OF(f{v?i~j#mT=f4m z;GzDXc^>Qkx#FV#7mADi6oER3ZW6aCLL?oxeVo0H+rFO1y7dcqsM|80$GR=6xah`T zb%6g^ti9;gUvbfG`GAMI$$d(m7dgkByzZ>%?JXDGR#IGaTiNqCZdU;h%@r5jwg`Br8((q5e=Mq~du>5@0()zK_PtS6E zWWZVPmxB|HQv4T=k5>Ev$H$PTZCpJK#)bXoSn?`;#?O`Za`qBe@~ZFNf&XUg`nvNo z&ije`?eWfD`kxH;;c@rze&YM~e6^HWy5FAYdEEc(8}P9I;jd7$e&YUzuepa@`k%>) zAB{4wUiMR5`kyHQXZ-NK747%;Jnny{DlYxc0g6libD-m*oAlcUfivlT`(W=U?za!| zJl5^dfQPzG^E}pVy5gc6-=@QVEY@Cho1wVq)*A3ow>HmX-Li^{ZZj1Z-P%2m`|S>J z#y{hk_krI=+@i}$a^y(D-*@~l#XoU;mg1i|o>#mNf`R@!6<@*eg5qm9UQ~R2$GZYP zAMv&cIQ}PxE54QECB+9iURHcZ$14G!2Yq%2C+g;pG}lwfXfQ5pzq84!R=4naG{@W9 z`#+PM{akM!_YXbfND}86tkeGyj_Wu-5}aAOe>lqXIL>*W*xJYAlcPP43C-A-3rbUQXFQCxKUuIF+8a1OY{`BcO#7slba zbrCqTbev!8d0bzY1U#&-OFfV4 z>wAhzeO;!w)Ym-4rM~6|Jgl$pdmh)<<%&yvU7@(t*AE;Q-6YO`2+pK+yVCoKl7E=t`B&q+YO$_y4|R_==Nj9MYo@L9>@7j;5N=} z+~!=|-b`Mlo^jm%lpIO)&tRQ#`!mP2{A2`7aeFs7lh*AX?@;+&&B*#;uGi9wDzT9JjwG zM-u%rSZCZm>bTbbF>q$-xP9F7SpO#i9_s(3=du1zDK7f|L2=RlX~jkVKL$M1{~6C? z{hw7_^nXrq(f@hJMK_7t7r>dcZZCR2aooP-d92&Z0S|S1#q(IVR}~lC{-n6*_L}0N z+n)m->h`+lv2JfDF1o#`xajtl=W*Qr1zh5m6wPj`=Ovp8?Z%y?y-N(R+@|`wtukW0&N8d@>7h9zFm4z;UtXIFj}s*0KLc*>n6y z`;Y6`f1>O;ZlnF*>e&BX*>k)_`+wB2|5Vv?oJ9N2>ezp-?B_ZAFY4H%I*e|j5630+ zpK@I5*~jzveTlw`^ZE^x^i!PIOLD$1fK@Ek53f(;%PP+60Xgo|ME2}|$@?qL{*HWk z#o51*ub?>FGx>^&v;C0s{ROQ0axz}Y`OUPDGd{>yQJnQbzN+H#zQk&Z%li_mD=zO# ztPya|XXU*k=1Y0V<$Z~@$kWV=-#hvmcv5BA;`jH~_I~1aw2tFqFYRdEI`-=+duc~f zUL98(D0^u~U$5hTLuD`RXrnsz_*+&+A1S}IqlP;61C;$dh|6}dNgex5mA$kh{7o!Z zFR`ARdmgu=Efkk_w58(GjKwjz#BZCjJ&L`&ceHyQ`)@dVw$lc*UwQ9n589{cE0vs%0OZ2)-k#)D^7wi> z%-h>}(0R^&xVMkzL1}U%85d=+PXCRL>v2&Nxb0`+aZ$79@wkXOS^M}t)kx3danUHn zWn45`aTynlQC!AFV*?(Ji}vz79vAVO@3x$l%eZKq;xaB`ebQcZlkwy};7nS#3Eoev z+eFV}-S!Q5IG&v3d8}KD;-cGR#YMOM6c^q2UYpfnIrIF;-~abK)@`cdqT2zAi*5&c z9>@7X;7OXtw$G2QK-}VgaxgiP@M|4EMDd?EeyHLL9G@2O`Di)6c6@rkIgWi8oadh* zPjfw$JPpQ$?P3Ob)s`o`Kiul=c-^2hPhrMSe;;fhQAlpGh`q}`Rl znY3;d?;EnA-s1M#p2zy15b#j{6FrahKS^=X z|768Q|5Fqf{Z9>esQ+o6$NHbHxafa|;-deVj*D&*w`YMfY2D8De&V?Oj_0v%-wk-E z+c}=cx}B@I=ysmsqTBh3i*6SLJk;$%&tu&#Qe1SqSaH$q63^qfy%ao2*W&hd*FS%c zyt;7QUPg{2`b*r-b6o2`AH27?{l4e1{+9voIcqT8*Ci*7&nJdWF6fG24iw;VsbiMVB){g3CV2-0A(q{rLiCFZG+j-aPJI-cS4<%P+xs ze0@LpZqMWTy(i#d{r<}HxPI?dTF7^A6 z2~ou? zDaA#%KPWD`J?(kiF8&Cfq^Vmf`5I!G3*+z^@+x^e&wbY0$K&niynP(!&yyobeMy|Z z;JB`@7r}dr^Oro2>+9u!hxPS}=W%_#s<_nGpA?t+dQEYuuRjMotgqKSkL&9V#ihR9 zR9x!oEyqPSiSxgJGilx4_I~0x|EuS*Ztny<)a_l*W8L0UTy%S1anbDq#YMLd10L%3 zk>{~)A1f}peWJMN_BYStIR86%lD6^Oj8%C~{SWdgc^tQ&k|T-!61Sf@uJ!*Mytlah z!t+>v9M0Lt_h-$!xLzpvt=e?P@V|78Lm>d*IQ?QvuMms4Ey@2|M%zr5q3 zo5U^O!)4OCt?2#4al4Y|v2H5|JdE2_Jdbr-RdLa6HN{1@)fE@r)(Cj0+nS!ox~-+S z==L?mMYpv*kK=Y7@FY#$Y=0}`ZN9_YTimWkjwJd^+^+Aq)*rtw#MOJO|JOZ__1`ey zq5d0r9_zoc;-Ww9wYuY4d(nS@;-dd10T1=(d)&Rn?PiLL{+lZ<`fuU5=q7QyB{-AT zZ7c65)@^IgW8L_!xGiVg-naEU)@?h*MYru07v1oVdZef5wnM-}-3ECc$L(OnMYkb} zi*7?bkK=YnaEaS+yuA}Sl8h?`V7x(HcJ}tEWGEOH{7-fvuh#5k9KNf!x9_))fpI^W z?&kfck`^#79M9}t$ImwcKh4-*-n-kw+sD@hzVFW@aU$(&nBzK5hJ)LBkK-imc^oH= z0T0_(ljm`qG%GG~GD2~QlaY!`oQw*17$>7WkK<&F;u0rg6_+^K%W=_7+SlITOjo!qw(QRMFMYlVj6c^q0_dIT2 zQ^BQuHDguAGY61Ysa+hm2a+R+{t~wbIj;3T7`!+A5Ai(K|ImPk`cLyb)_=O$ujx2fVkqJ;L)?|04q)>d)^{SwFG<-&9=mKU#6o{}{zZ|7yTP{g3rL*8e!gMgQX! z7yZBGxacNv`)zP0t=kFSPaL-=dLHX`QouvqPWC+3?G(jDw^J1t-A+?nbUQuZp>Ah* z9_x0d;-cGGii>V%dmhK_cfiBAZFl2}?~+#+j@xs{kwkxq+jAY)`kx2hTil-Sd942h z0T1=R(DPXTixe0AFIHUizeI7-|I&bm`hU;!SpUlu7yaicF8a@RTy>{XRI8*6nid zCyv`IJdbtzLBK=Ze&~6u+m(uoZdWNTx?Qcf=ypxOL*1_RJl5?;ii>X7DK5HQ?|B@z zH-JmravXj*;+AoCBRP_c!{vVXj|2Ppus<6199RFu+ozImgK^=w`X=&f&5w-FZw~x4 z!$jV%{;9W*$0t7{N0NG%_Hv8ky54UE@2$Q3-1E5Je-ZGo-v7t*xZZD5Tiw6BOTFLixacPBpSZo;>v^o(eE|=3yWjIz zw_htRx;>z{==K}MMYjh79_sdx=do_TRa|uYo#LX~!=A_OdcFVEn8u=5e;{egZ@ zo-{yD8@HS%vRyo?ILG1Sk9nR-E`<*+Y%hW@%Zto~Ay1lEo==PrHaeH|mJd9hJhkig_rJixzen^fa`b*q?tibAjM_eGT8G}audcZT=+X^hmco! z&hh&IL&?*Y?+-!bdu04Q5Y|5a9@$Qg%lAR#dt^IO(BFUghO(FMzwA-R|DMWTzW*|;j{R_DFW-Mj*RgL@_VXYLP|{S#zFFDJ_g_ZT zu^;Jq{QZ|vip%$3Mk_Age;K2=eE(&v;`05My%d-4zwE8JeE(&f;`05M@ruj$U-nU4 zzW*{oaryqsM8)O%FZ(Jk-+$rt!N#Z6ZJ9p27U21k;ww2mS@AU;-!I_vFuzzIoPMV$ zzP01~lc#ADe~)Y`cv58<;_s0i;Qhqy=s?HCUfR(?b?gsT_R@|HsbhbrvX^!=t&aV4 zWiRb0Q^$UWvX^$$TF1Uk*-Jah*0GRI zOFNpQxU{3W0T0_zkK)pfjvz-n;y5Jy9@&xLOw=Fu0R8W;KFawK`|)UxH2r2B`=gyb z+i3&*$oI&Op?#YE`y}CYxoZ40fXCP6V-=U{@^Oyy_xRn5Ycdy(KaVG`TK^mm$o)57 zhvm2&pYZ)WqHpsD63avW1pE-45OBOpS$ze3CGZnHkAJV-N#Hil99&Jl5?x#YMO46&KxZP+WAo zG2o$YKlVJ7PEtghqY_GjePh2!=XawO4T;`Ua@wf;W` z?=5bB;d!k8{{%eL|2EHK{cl%X^uI%K(f>}xMgIi>5B0yx^H~31DlYopt+?oakK>}7 z#O<%ZnY3>AdOva8-sgF&+x-C#b^EpFv2G72F1r0janbET#YMM=0v_u2ThC+Ney6zT z_ORlj+asRGar=AlFm4-M+&)TPT{vzZBS#YbC2k*gTG{|}zW z`ai9>=>JE>MgM0M7yX|Nc&Pt#p2zw>uej*{g5sk8i;jzK61OjbGilvk_I~2HeZ})w zw^sum>h>qkW8Gd;Ty*=h;-cH@ii>V<1U%I3P0wT9-cnq2`-|eD+uNSUar;+riQD;z z)Ljv`MDOqi632n$BOQO&asHjqJ;3*M{5@~q*Nl@7b^Lws6b>Nc$*kiaczZj}oa^|9 z0q1e6j(-$zj$=;&XM6Zq@k<>4MDZIP{~LLl`=*k+!MKbC`a5}*JidSR4{zTmc?h;I zVd1#$Q*tDZqgY>?W1Z+T{9w7r2llP~Ug*y~w|?Gpe!i&VhcCDG<|pO3_0xAbTb@4P zOu9UMy?tDsex6%D>o`Bl)bX>dw~zfS=ehN>o%7Sbj-Tbdee7oi&#j+5oSzlz_*u!@ z$9`6J9DlsLl55RpTYAcsY-eKrShM|W>m%n@vIYKOa{j?){RhnR*+P4zV{D-%+nS8e z74T=%o4ZT1vq`xEe7A+nOSpA=Hy$TR zXZx{B0+G0%`50_JhS-mx_G3r;v6KDS*?#Q8ztY{^Y0A8Jwx?`28}nTq8M~P)_|u^F za&C6TDv>+F1%y=9R4asR9uRN3io#xEFd|pV;&!H$*Q+KIcX)bmn!1;&Y-GT5|;?WUE6*@RKL5Gm- z%CHoTbF<~d6xwB?a&0r&Z;B(PqnI!|Tbj(iqLRyJ%Tw*g0jS4Zr)l_;P30EnSm9cG z(2I!*lZtbaDcO9n)y52)>=Ec}_Ai$5Z7p4>=VWZ51FBb)5vsb_mQ6+#ORaJ`R#u$e z#B6Dl>A%=9mI|4?u`0U~cXsD1xvo58vpJvX?9z@i?dU+d;k%|nuAH>NGFvd}HT9UD z!@0vz+iN1mc}BX0P(Bw_c55;3x3i4w0(t=RG1z_#u^&V2$By=6C)DW(TOw30>J>V5 zP8(UsmfCy970cxbZ06Q4``f*9`MmAzYzu2acZm?ANn5teu9Pv7tDx_|H9+<>&9j^w z-i^K$-TLg}+-#oFV|O&?kS&)p?WoJp)rg)#rZd-yN@Qy(mb|}m($YP{sb(6jbPD#0 zHY_Q3&p=bCV7I1R31w2-g9G55_QpcP5!p=S$!rf!?!&-hljm-EeS>4mv%j~?K7~(* z-~Pxbuu>m8Na4U^7Yu@U!-(rimE8V;bNpi9D#ti>Fk|^T*v2n9t#Tj*7sgfwh}&bE z_INMCa}K0-#&&;~N8kL1UrJKNFS0d$I8LzC4k*PB##x?+elWgpJeBMSKeL@59;4CZ z#D10!c<5&Z&+Q*>KLmbwt}9}(4`x#44~`D!HWr>U6U)kh?0B<|UtCC-wj3{kRS(4` z^<0G<3Hn4g+E%p~+zvoDz&_M%wSbSrd0`S`^jY0=JCP85)&RG4)6Wc8Mdvj=Pnkc^ z&dCtVvzF&^dA{a(T%NT9&Ku|~56j6Iu*XfA8^K3lo7$}Fd943>0T1NN1 ze2ShNpz{xt^0;3oN230`0ev&pdE5;Nk#rnxWSHgQaX0onWhO|!#5Vmm7+y90S-+2& z?IanX_)Cs&qIh43LR~f`Pg_4M|LTDBzgb{EAAB>%H&=XD$F~UhSg;vbc)nX=NsRwk z=dHYbpC}%-_B>@KJae4?Z476bQ%M8rm%sSG57@TkY0LTG>U_ty181T=`4x^c9+}AJ zt9h^F|Jtav4%4sLkP0k+uWyD7~zN_M+9N*3JR5Avv1q=P}ZaDRc>+u`l zI7P$5xW%O1aqH(m=V#A4eujDbI3A=wW4*9EGn}7v9Y2kA{4{xP{T$}}G}rMn!rRB? z8R>X@nT*G!(V*wbt@7Fs(vlbU8m9AgV+&(2Jj z$)h zc`TIV^umlot+880>3p4WyoB;*<|@*RgO@Tg_Ot`C&S`pkoSD2!t}D-|?lz;aRjW3Q zVAZlfjrm-Ap_7wY)Ix4HYK>$1BWlwknGUgFn5+zTpF`Z|Q1d6LE=-QR<;vAhc&+m< zr#|)f)VpVIf@u6T76fyGN2}GP869DlgjZi)ZMlD{YFja{R`knO-k=)#PS47Z~N8C}qq^>1D);h*5E(ho;Rww%i( zJt*faY_pszczb)BRmy2bM<#DsbCr>Dav$q|nPd#gS;98`b97|=FB_GUqa%BjvA-5m z%E{4@^|M^EFUrVra+{;0(El;mrhkr(dh>5aM``X8`>&0TV*hIe{;9*avCVU;jgDd+ zYNMlAhuY|+H)X&rlbzpfoIuadt6_a}5=ty`NKO7xd zZb#i$W1D_9^4wm1#7}K>WP53;-v)1QM{B%2O}_*9nNAYi8Jn5mvj%`D#Z zH?q)4*mkS$;>Ej^;kDS6Ey-;b=NEVM+Hn`6%jHev%*WonE6z9!Jt=x>+zqi^bmvDn!3(A{(g1iQG?kk+J#-_|$ z7v06__zZon=<=>Y-bCavQulPatmN`OLEdTLJlSeHbd`0t1VoXw98w7JYAMXm$w?aDqWT)mp2c2x-88u?WDExeeQC3(~&n0+n<^GV-8}@<=q(U*U#;D{JyuFq5S>G%fOaWnA6`$a@R>-DehC4>MfeN$7qjqdfN_?_O7b zEwAsvA#(BpYU7*u439V2vma}*MP~^LV7;Cp^yH<{EXzB{tEfKY$O9W& znAb6M;kZ7^J2habwkt1wB-;WMnGYh2#CXchC27xt0I zuKHpDD7h7R8GMHO9p~~IaBXX0gXR!R2)!k7Wt_@)KR&0_5p)ILYNr#16WgC%e3pkarS%`g%Zom_p;@g`OMm z(_YhMo!PRE%Lf|ab<5m--~JajpK!_9$Gx@P_Ej2y-g3y~V}F|8=cFs9u5<2tukmZA zNZ-u8vr0?DeU0a@v*x|Gt@RMUv>&8ZgY{CjTH?zh%i{)6l89)HU2$8Y=TVV9U+t%nNy^P10G^6(A&T=o9=b8p(<{%x%7 zj&sHwSy=z0y>6ND{Szk-dF2XAFF#=78E6HgPyW_?yE!%X_ z`0JNhBe%;Imb$ZD_+wr=Nvi0l?{89h>@VF?9nOI#`lDUCY9)o9E13490WPL7T-yXKX z!Mn!M5SDWh`yR2lkzxeDrEplKe*q#rD%sdn#85tV<|b8azBQf?7v2%CulAfDkZ$Y zfR{UZWp3B#V@cX5caVESV$V+*4~xT#E?lqfxIt|6r}&L|b@=5!f35NJVHe)D+}_VD zu>FDb0kLJcWe2t)iPu?X(Npd{(Sr4|f2OCah$~#U&ODvu{599xa^EZFJco4JF3gd0 z;^)Fi=8OyH*!pEmS59ICF1laR{mbI^tJmHaw_m;XUS~hwPt@y|7PsG0meU{apDky- zekm;HlJrZo-}R2`O}(vypS&483GbF>dmRB_UhM9ZF42C2W#o_~a_?Y?_8U^$Pwsy# z(SAc~`^o)4?)NkEmowsV3L|wq&b7ozevm?YuIqkU$1iuK-IDgDZ1d9YWgIYoPLSlj zFYAFx?h)^4Hxs#^%zlAB_Rr+=T>n?cJ#r7*_9wl!e_I6UBkWeapP@g_73r7d9lllX zdobS~JIt>Rm;Jaaehpkxn7cIVQXY=co(|^1i}NA-#dcPoyFa`!P5#h>-)pS(ov|gi zWX!s_>p>V7GA110+{rz7i3_=3FL5FF_P^}7kmm`uZvOSS2>tzUhzlvt(#D1C7uU9r ziv{FM8W*g0_C+$6;=b~%jq8g_@{GmSPkfKCwx1~%V$>c-?vZeNNsdF`EF+Wjsa$8Q zec9s_dA>vcwZ!tL7cA{KWpV9|`Ep+J4Cr2WP&tnM%zgOTd(wXFKC++Pr)Fbxw{UpPXDz>G zA2ZsD&)R<0y7n{PhdkU*>}vaKdv3=p+`qP;c#_X}AJT9?ZsSplNnGze*@&s-#oK-0 z@XPk`gUfCmRy!ws4*xzac#i))uGI9uS7#oDzciDHZI6AOjq&>%apg_(S&S@6a&xoE zUYZ|pT5Hqu(qBcrZiM%x!hiLPU;U5wIn+kdSD_7${Z$kw1u$k3$qsXnjABhnG5F`wepL- ze8&5bhWlBo{~lM=`uFP0qey-H=QXeO?^1>^ZfZA; z&(o}L{WBh~ENcAHTU=;w|LS%vUjCDD_MdNKqSIG%zC3z$IPU`l4-JN!8(C7Y|G+2D zUG5*sd)s+;TzSWvn|wdYe={tTZ!q6)1N$yq_$TAz9qMUzQpI4CY1Ru%j2Is*F`0kQ|d+Dxf$SgkoVo?If}d+FV9i@d-Tr7m-T#2 z-rculUzBEY{);+8Tvyz?`Sd6EZ+XsN)$=te&(c0ek^SPctqz}b>)LnKSatXf7jEBJ zFV^Jw8e@A=iDi?xknaqv<#v$o7aZ)i<+}(+xo!F0!oF@>zT?16J`Wh5$rT#x_ekA) zY546v=4+*H2lZj&K*3%%r@8Mo{BN{pnSOQ8h+!9BbkVT)-+OP^{CV@-`^-EM8^;%2 zcp>_hBSzq@|0a75^U}z>ll=)3EyHAP(HX;r#;LpA9QX^Z7G4*f;vCz~R(SGq_-VLH z%49!d%ca?33`rcx`+WnP1Nm-<^e^%~66s&$J11ZEb6WYHi`DpF?_WZH{~P)jDbLdO zFS1`;zovg_tg-6wYnPyZvD()5;@WCh`0mGl-+Nm4J?uKVd}Z%F?aB%Z63h4h_xGOU z{P=!Bz4u2$9ae%Je{*0-U{Pd-h{^&AXDt>-n@*uTq(|A@5#szc2e; zD!4RL0O^nAT`}^1$NLHLJw5ubCHA-G{e%UU*=t|D>x{fd+1q%9V+odfaqo9?-|f{4 z-izC>-usD*+ppgHiFNk#?YrK4l#APMDa+}P_s^Dd4zy(KF75l>J7J$N@x19>boxVE#FP$dM)X3OYiMS z$|~=na({WZl&18Jb^J-YJL7SRwW4BPwm-l|E zlqWg_54xDTkL-gD@wYVNWwr~657Baf^C{n9mUxiwJIlOAz8fvqfB7DD$?Y%Sx#lL1 zGZDW+nBNNt*PUtfVI+u1?;G-cZ?We*Qhy(WednQr<*GX`?Oq2-B)09jSBHP+?A6_U zDckOTbnUjokFD}My>|Q2NA|^b0vo&i;rr#`FTF5*`03|gKWt?j2c^!+6lkk^HsGIDbLcxHBUzN^CxCj fs>8QF_~QkRrLVwyV6udEQk&9eGEd$Y)pq|6{(F;L diff --git a/singleTap/SingleTap/Assets/_Scenes/TestScene.unity b/singleTap/SingleTap/Assets/_Scenes/TestScene.unity index cccd36e8bf00335b92215dcc407b2b4b9ad6af59..d3dd9a70fa46bfa5aaeb2017d85823ca02b993f2 100644 GIT binary patch delta 3246 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 a?@q_kSKvJw>{69Z5bh~#dC4U8-RT`vZq diff --git a/singleTap/SingleTap/ProjectSettings/QualitySettings.asset b/singleTap/SingleTap/ProjectSettings/QualitySettings.asset index 1c2eecf30d8f0e0995803ac4027bc3a65caf5668..ef612ab102e5c7c716b2ecccf6e9fb55b41c2e76 100644 GIT binary patch delta 29 lcmX@2enfo(ivT0@W>x`vCe|}&eC*y$zAGrZIZY^z5df0y3FQC) delta 27 jcmX@2enfo(ivT0*W>x`vrpYz}9FrdiN^MRPiem%-ak~e( diff --git a/singleTap/SingleTap/ProjectSettings/TagManager.asset b/singleTap/SingleTap/ProjectSettings/TagManager.asset index 32917f44b3a49be80739b668dbe762ca4602e4c6..242644a5d7fb09349df212336ab02e6205877473 100644 GIT binary patch delta 51 zcmeBCnxn+Qz`*p2fk9AaBgY3OMw!h&nb>(5nI|&}NDFW=FfceJCTF`B<(KBAFfdG( H5%>TAHPZ}~ delta 34 qcmbQE)T6|~z`*p2fkBXGBgY3OMxM<-nb>(5nI