From ade3f7e714a7e298a2ba70f86cb51b03e866e125 Mon Sep 17 00:00:00 2001 From: SOL <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:41:30 +0300 Subject: [PATCH 01/16] Stage2: Add --- .../Assets/Tests/PlayMode/B_MovementTest.cs | 216 ++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs diff --git a/TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs b/TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs new file mode 100644 index 0000000..a664b13 --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs @@ -0,0 +1,216 @@ +using System.Collections; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.SceneManagement; +using UnityEngine.TestTools; +using WindowsInput; +using WindowsInput.Native; + +public class B_MovementTest +{ + private InputSimulator IS = new InputSimulator(); + private GameObject player, camera; + + [UnityTest, Order(0)] + public IEnumerator CheckLooking() + { + SceneManager.LoadScene("Application"); + yield return null; + player = GameObject.Find("Player"); + CharacterController cc = PMHelper.Exist(player); + if (cc == null || !cc.enabled) + { + Assert.Fail("There should be enabled \"CharacterController\" component on \"Player\"'s object"); + } + camera = GameObject.Find("Main Camera"); + if (Cursor.lockState != CursorLockMode.Locked) + { + Assert.Fail("Cursor's lock mode should be set as \"locked\" to make cursor disappear from screen"); + } + + float xRotWas = camera.transform.rotation.eulerAngles.x; + float xRotCur; + while(xRotWas<90) + { + IS.Mouse.MoveMouseBy(0, 100); + yield return null; + xRotCur = camera.transform.rotation.eulerAngles.x; + if (!(xRotCur > xRotWas)) + { + Assert.Fail("Mouse down-movement should increase \"Camera\"'s x-axis rotation"); + } + xRotWas = xRotCur; + } + IS.Mouse.MoveMouseBy(0, 100); + yield return null; + if (xRotWas > 90) + { + Assert.Fail("\"Camera\"'s x-axis rotation should be clamped between -90 and 90 degrees"); + } + + + + SceneManager.LoadScene("Application"); + yield return null; + player = GameObject.Find("Player"); + camera = GameObject.Find("Main Camera"); + IS.Mouse.MoveMouseBy(0, -100); + yield return null; + xRotWas = camera.transform.rotation.eulerAngles.x; + + while(xRotWas>270) + { + IS.Mouse.MoveMouseBy(0, -100); + yield return null; + xRotCur = camera.transform.rotation.eulerAngles.x; + + if (!(xRotCur < xRotWas)) + { + Debug.Log(xRotCur); + Assert.Fail("Mouse up-movement should decrease \"Camera\"'s x-axis rotation"); + } + xRotWas = xRotCur; + } + IS.Mouse.MoveMouseBy(0, -100); + yield return null; + if (xRotWas < 270) + { + Assert.Fail("\"Camera\"'s x-axis rotation should be clamped between -90 and 90 degrees"); + } + + SceneManager.LoadScene("Application"); + yield return null; + player = GameObject.Find("Player"); + camera = GameObject.Find("Main Camera"); + xRotWas = player.transform.rotation.y; + for (int i = 0; i < 5; i++) + { + IS.Mouse.MoveMouseBy(100, 0); + yield return null; + xRotCur = player.transform.rotation.y; + if (xRotCur < xRotWas) + { + Assert.Fail("Mouse right-movement should decrease \"Player\"'s y-axis rotation"); + } + + xRotWas = xRotCur; + } + for (int i = 0; i < 5; i++) + { + IS.Mouse.MoveMouseBy(-100, 0); + yield return null; + xRotCur = player.transform.rotation.y; + if (xRotCur > xRotWas) + { + Assert.Fail("Mouse left-movement should increase \"Player\"'s y-axis rotation"); + } + xRotWas = xRotCur; + } + } + + [UnityTest, Order(1)] + public IEnumerator CheckMovement() + { + SceneManager.LoadScene("Application"); + Time.timeScale = 20; + yield return new WaitForSeconds(2); + player = GameObject.Find("Player"); + + Vector3 startPos = player.transform.position; + + IS.Keyboard.KeyDown(VirtualKeyCode.VK_D); + yield return new WaitForSeconds(1); + IS.Keyboard.KeyUp(VirtualKeyCode.VK_D); + yield return null; + Vector3 curPos = player.transform.position; + if (!(startPos.z == curPos.z && startPos.x < curPos.x)) + { + Assert.Fail("Right-movement not working properly"); + } + + startPos = player.transform.position; + IS.Keyboard.KeyDown(VirtualKeyCode.VK_A); + yield return new WaitForSeconds(1); + IS.Keyboard.KeyUp(VirtualKeyCode.VK_A); + yield return null; + curPos = player.transform.position; + if (!(startPos.z == curPos.z && startPos.x > curPos.x)) + { + Assert.Fail("Left-movement not working properly"); + } + + SceneManager.LoadScene("Application"); + yield return new WaitForSeconds(2); + player = GameObject.Find("Player"); + + startPos = player.transform.position; + IS.Keyboard.KeyDown(VirtualKeyCode.VK_W); + yield return new WaitForSeconds(1); + IS.Keyboard.KeyUp(VirtualKeyCode.VK_W); + yield return null; + curPos = player.transform.position; + if (!(startPos.z < curPos.z && startPos.x == curPos.x)) + { + Debug.Log(startPos.x); + Debug.Log(curPos.x); + Assert.Fail("Forward-movement not working properly"); + } + + startPos = player.transform.position; + IS.Keyboard.KeyDown(VirtualKeyCode.VK_S); + yield return new WaitForSeconds(1); + IS.Keyboard.KeyUp(VirtualKeyCode.VK_S); + yield return null; + curPos = player.transform.position; + if (!(startPos.z > curPos.z && startPos.x == curPos.x)) + { + Assert.Fail("Backward-movement not working properly"); + } + yield return null; + } + + [UnityTest, Order(2)] + public IEnumerator CheckJump() + { + SceneManager.LoadScene("Application"); + yield return new WaitForSeconds(2); + player = GameObject.Find("Player"); + + Vector3 startPos = player.transform.position; + + IS.Keyboard.KeyPress(VirtualKeyCode.SPACE); + yield return new WaitForSeconds(0.2f); + + Vector3 curPos = player.transform.position; + + if (curPos.Equals(startPos)) + { + Assert.Fail("\"Player\" should be able to jump and it's jump should last more than 0.5f seconds"); + } + + yield return new WaitForSeconds(1.5f); + + curPos = player.transform.position; + + if (curPos!=startPos) + { + Assert.Fail("\"Player\" should be staying still after landing and it's jump should last no longer than 2 seconds"); + } + + RaycastHit[] hit = Physics.RaycastAll(player.transform.position, Vector3.down); + foreach (var h in hit) + { + GameObject.Destroy(h.collider.gameObject); + } + curPos = player.transform.position; + yield return new WaitForSeconds(2); + float firstDelta = player.transform.position.y - curPos.y; + curPos = player.transform.position; + yield return new WaitForSeconds(2); + float secondDelta = player.transform.position.y - curPos.y; + if (Mathf.Abs(secondDelta) <= Mathf.Abs(firstDelta)) + { + Assert.Fail("Gravity should be applied to player's y-axis velocity"); + } + } +} From 02c245e9dcc3a33189ea63451d5d12daf9624ef2 Mon Sep 17 00:00:00 2001 From: SOL <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:42:22 +0300 Subject: [PATCH 02/16] Stage3: Add --- .../Assets/Tests/PlayMode/C_SettingsTest.cs | 215 ++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs diff --git a/TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs b/TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs new file mode 100644 index 0000000..361053f --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs @@ -0,0 +1,215 @@ +using System.Collections; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.TestTools; +using WindowsInput; +using WindowsInput.Native; +using UnityEditor; +using UnityEngine.EventSystems; +using UnityEngine.SceneManagement; +using UnityEngine.UI; + +public class C_SettingsTest +{ + private InputSimulator IS = new InputSimulator(); + private GameObject player, camera; + private GameObject canvas, panel, sensSlider, speedSlider, eventSystem; + + [UnityTest, Order(0)] + public IEnumerator ObjectsCheck() + { + SceneManager.LoadScene("Application"); + yield return null; + Time.timeScale = 1; + + if (Time.timeScale != 1) + { + Debug.Log(Time.timeScale); + Assert.Fail("Time scale should be equal to 1 when scene is loaded"); + } + if (Cursor.lockState != CursorLockMode.Locked) + { + Assert.Fail("Cursor should be in \"Locked\" CursorLockMode when scene is loaded"); + } + + canvas = PMHelper.Exist("Canvas"); + if(canvas == null) Assert.Fail("There should be canvas, named \"Canvas\" on scene"); + if(PMHelper.Exist(canvas) == null) Assert.Fail("There is no basic component on \"Canvas\" object"); + if(PMHelper.Exist(canvas) == null) Assert.Fail("There is no basic component on \"Canvas\" object"); + if(PMHelper.Exist(canvas) == null) Assert.Fail("There is no basic component on \"Canvas\" object"); + + eventSystem = PMHelper.Exist("EventSystem"); + if(eventSystem == null) Assert.Fail("There should be event system, named \"EventSystem\" on scene in order to detect events"); + if(PMHelper.Exist(eventSystem) == null) Assert.Fail("There is no basic component on \"EventSystem\" object"); + if(PMHelper.Exist(eventSystem) == null) Assert.Fail("There is no basic component on \"Canvas\" object"); + + panel = PMHelper.Exist("Panel"); + + if (panel != null) + { + Assert.Fail("There should be no panel object when a scene has been loaded, " + + "because it should only become active in pause for settings"); + } + + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + + if (Time.timeScale != 0) + { + Assert.Fail("Time scale should be equal to 0 when app is paused for settings"); + } + + Time.timeScale = 1; + if (Cursor.lockState != CursorLockMode.None) + { + Assert.Fail("Cursor should be in \"None\" CursorLockMode when app is paused for settings"); + } + + panel = PMHelper.Exist("Panel"); + + if(panel == null) Assert.Fail("There should be panel object, after Escape-key was pressed," + + " named \"Panel\", where settings would be displayed"); + if(PMHelper.Exist(panel)==null) Assert.Fail("There is no basic component on \"Panel\" object"); + if(PMHelper.Exist(panel)==null) Assert.Fail("There is no basic component on \"Panel\" object"); + if(PMHelper.Exist(panel)==null) Assert.Fail("There is no basic component on \"Panel\" object"); + if (!PMHelper.CheckRectTransform(panel.GetComponent())) + { + Assert.Fail("Anchors of \"Panel\"'s component are incorrect or it's offsets" + + "are not equal to zero, might be troubles with different resolutions"); + } + + sensSlider = PMHelper.Exist("SensSlider"); + if(sensSlider == null) Assert.Fail("There should be slider object, named \"SensSlider\", that will be changing mouse sensitivity"); + if(PMHelper.Exist(sensSlider) == null) Assert.Fail("There is no basic component on \"SensSlider\" object"); + Slider s = PMHelper.Exist(sensSlider); + if(s == null) Assert.Fail("There is no basic component on \"SensSlider\" object"); + if (!s.interactable) + { + Assert.Fail("'s \"Interactable\" field should be checked on \"SensSlider\" object"); + } + if (!(s.minValue > 0.2 && s.minValue < 0.5)) + { + Assert.Fail("Set 's \"Min Value\" as any value between 0.2 and 0.5 in order to set mouse " + + "sensitivity in range of [minValue*default, default]"); + } + if (!(s.maxValue == 1)) + { + Assert.Fail("Set 's \"Max Value\" as 1, so that mouse sensitivity will be " + + "in range of [minValue*default,default]"); + } + if (!(s.value == 1)) + { + Assert.Fail("Set 's \"Value\" as 1 by default, so that user would be able to decrease sensitivity"); + } + if (s.onValueChanged.GetPersistentEventCount() != 1) + { + Assert.Fail("There should be added one listener to 's \"On Value Changed\" on \"SensSlider\" object"); + } + + speedSlider = PMHelper.Exist("SpeedSlider"); + if(speedSlider == null) Assert.Fail("There should be slider object, named \"SpeedSlider\", that will be changing player's speed"); + if(PMHelper.Exist(speedSlider) == null) Assert.Fail("There is no basic component on \"SpeedSlider\" object"); + s = PMHelper.Exist(speedSlider); + if(s == null) Assert.Fail("There is no basic component on \"SpeedSlider\" object"); + if (!s.interactable) + { + Assert.Fail("'s \"Interactable\" field should be checked on \"SpeedSlider\" object"); + } + if (!(s.minValue > 0.2 && s.minValue < 0.5)) + { + Assert.Fail("Set 's \"Min Value\" as any value between 0.2 and 0.5 in order to set player's " + + "speed in range of [minValue*default, default]"); + } + if (!(s.maxValue == 1)) + { + Assert.Fail("Set 's \"Max Value\" as 1, so that player's speed will be " + + "in range of [minValue*default,default]"); + } + if (!(s.value == 1)) + { + Assert.Fail("Set 's \"Value\" as 1 by default, so that user would be able to decrease player's speed"); + } + if (s.onValueChanged.GetPersistentEventCount() != 1) + { + Assert.Fail("There should be added one listener to 's \"On Value Changed\" on \"SpeedSlider\" object"); + } + + + if (!PMHelper.Child(panel, canvas)) + { + Assert.Fail("\"Panel\" object should be a child of \"Canvas\" object as a UI element"); + } + if (!PMHelper.Child(sensSlider, panel)) + { + Assert.Fail("\"SensSlider\" object should be a child of \"Panel\" object"); + } + if (!PMHelper.Child(speedSlider, panel)) + { + Assert.Fail("\"SensSlider\" object should be a child of \"Panel\" object"); + } + + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + + panel = PMHelper.Exist("Panel"); + if (panel != null) + { + Assert.Fail("There should be no active panel object when app is not in pause for settings"); + } + if (Time.timeScale != 1) + { + Assert.Fail("Time scale should be equal to 1 when app is not paused for settings"); + } + if (Cursor.lockState != CursorLockMode.Locked) + { + Assert.Fail("Cursor should be in \"Locked\" CursorLockMode when app is not paused for settings"); + } + } + + [UnityTest, Order(1)] + public IEnumerator CheckAction() + { + player = GameObject.Find("Player"); + camera = GameObject.Find("Main Camera"); + yield return null; + + //Check settings changing + + Vector3 start = player.transform.position; + IS.Keyboard.KeyDown(VirtualKeyCode.VK_A); + yield return new WaitForSeconds(0.5f); + Vector3 mid = player.transform.position; + IS.Keyboard.KeyUp(VirtualKeyCode.VK_A); + yield return null; + float dist = Vector3.Distance(start,mid); + + speedSlider.GetComponent().value = speedSlider.GetComponent().minValue; + IS.Keyboard.KeyDown(VirtualKeyCode.VK_A); + yield return new WaitForSeconds(0.5f); + Vector3 end2 = player.transform.position; + IS.Keyboard.KeyUp(VirtualKeyCode.VK_A); + yield return null; + float dist2 = Vector3.Distance(mid,end2); + if (dist <= dist2) + { + Assert.Fail("Decreasing speed slider value should decrease player's speed"); + } + + float rotStart = camera.transform.rotation.eulerAngles.y; + IS.Mouse.MoveMouseBy(1000, 0); + yield return null; + + float rotMid = camera.transform.rotation.eulerAngles.y; + + sensSlider.GetComponent().value = sensSlider.GetComponent().minValue; + IS.Mouse.MoveMouseBy(1000, 0); + yield return null; + float rotEnd = camera.transform.rotation.eulerAngles.y; + + if (Mathf.Abs(rotMid-rotStart) <= Mathf.Abs(rotEnd-rotMid)*1.5) + { + Assert.Fail("Decreasing sensitivity slider value should decrease in-game mouse sensitivity"); + } + } +} + From b2759fb447083e1bf78b4a684886158cf6239553 Mon Sep 17 00:00:00 2001 From: SOL <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:43:07 +0300 Subject: [PATCH 03/16] Stage4: Add --- TrainingField/Assets/Sprites/target.png | Bin 0 -> 183613 bytes .../Assets/Tests/PlayMode/D_TargetTest.cs | 179 ++++++++++++++++++ 2 files changed, 179 insertions(+) create mode 100644 TrainingField/Assets/Sprites/target.png create mode 100644 TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs diff --git a/TrainingField/Assets/Sprites/target.png b/TrainingField/Assets/Sprites/target.png new file mode 100644 index 0000000000000000000000000000000000000000..da00ecefee8ea5622331a3edc7650675ab562de5 GIT binary patch literal 183613 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

iuaEYYtbHk97Xtp+h{1sLmbQ}T`cgE+-f6cZX( zf)YH>EybBWRSwE72+-s;1N8!FZ7pQPO0(#`qg5@y2;xIZ)uBpynDF(w-_tdXruVP@ zh2biF39@k*pE2>ca4)|(=EOmnA^HnL*4a)qy;X;PdW05u>EZ_^cYWV`8mSYr=1f+J z2f{yWad(_+Hx_bk+r{`TB+NqT+(iAz86~6IubBicE>sDalJIcX$h()SD#)sR$&48z z60g4d>^%HH>(7!7*(*P4z21paB~cSyb=H>1PYn~RgF`)!xTSk^o;VOi_&8J~v1Z7% ze8#{0XIt|;n^-j^$6bIx$QY8Mm|C~xAY~vi zQyn_6V;C*`@#nXmW|$miL|aQ~trx)Y(ln^;9v5irE&&D;MQuzCBwqrX6)(bDD;8~> zm*OStF#iQA@zdmK5x$}bg$ATKoMIF7Z~4KwPa>#Dq1WW|D?iPgY1migUbD!vkM95} z+n!oR-bU4VJ^u0*F-1)~ezc1u<&wx;6blmr@$)!$Tigp1=hz`bR(zJHq^&c(S_Wu0PIVC? znHkZA7?b4LBq7l~9QBhiBZ`nLhE#WLZ-Uf+;Dh5r(3L7gqa)`J9Z`&29_1pYRjeL% zQ8cSmHaxo1{%A+oRI7!QW~-+odsdl# z1Y|+#0h6K7oAS{Wg|;X4>n4=ZH?kuH3b;fOPV*V+rA*1E);h4vWpH$4`@l9F$snQY zfN6r6s%2Fd_)!{;lrRs>)bKRU5lZ3jG^J53KwQ0#Ys)&&iRh8i{da+AP^&q$5is=U z#>eMdR#OsI9Ar#FA47ibn|O}l7~~GH`x246Iadn#H3X^gKP3qqe>U^=w*CUux~G7 z9nIPAO$%BJd?HzQ{I4mNR+LwQa8`;NuHS)otO zD+%8_@?ICcoNp@C>c(k~NXYGncQv`<@0hQ+J%Kp)>^Bf8xZSyLMm5&vu&L-tSQ7Dw zglU{U+_hmsfZCqgmXecXY?h;Iy$7!RR)uJBz#~$uMBFz-gH76bGXITO6wxO9NOmRD zm7Zo%x|U>q)zo@xgvvqDY@mldvr5)uw%Ol|8W5{5M3lD&Y1x%oC>d%O$1+)!(Ygby zY@Oknc`O45?Gz7`oEfmGgxy);VKxOWzdb58VTQKQbNmc@%?d&&h9 zbo8pwLz>$*8&GCsV=1{blqaZ3mqH34W7h-M5Sr%${dEGoz#5cK;!x zYd$eM%Os>zvNepmn_A6HO<_?l#lb4$mi&ED%}2;5XA+{*D-T5lqW~K1TX)NX-<*t)_O${i zuu!>y54mgn(-ZfXt`fnU0BM3L@7={z&arc#7+-wLMu_%*?_4Jwgz~_lTXWcN z%9EKR?WIXtX3m#TsQY;M_G3i(kfHNU8K?Ajlf}dDm1Eb;JU!R3KfknExz;MJA-5qC z$L-{Te;yF#7QiL4mYpE6LtV$P;^U%=IHAR9VPhG?+)lgq#mim7**^qvvFpukKP;8##DJkJ{L_~$3k`a&k^kqDdT`)2VOdKBL{y?1zm`ldW8~^r{ z^?*x;E{07XN~mRWNMIPHv6}S0!nl-~87u7%073+CtAuxid8$TJ4I07^-;uvnI`$HG zoVr)wtKCAr2WlQ z8^^C#+w0~D<4Kw+AD*gKY7{o1r=|pVpm9P3p~*OlZ@c2iA(; z-L)?0;O60fhl@Ll;}9gLMS*L41@e9|B7Flmm$m5gX4K@^DWiq7S6kttiI zJWIBK(O%?5`Scy&0V%SszI5E8Q&VDHaVqLXmw7(qzH>kTsNbC)2XMX9R9n|+r%UrX z>dR+>@30;|A_VYD)R@7u=88O+3S}_IW}!Bxk=z*j&R&s_U3d$B$$HxhJ0VY)pN%0y zoJ@LUt{sNMP$SGR|_eGe^%i9$|hfGV8LprE#$Sa#eZaI$1C%bkS zbQHTNEkkeNA%3$kIA$EMQaiwV9*P97|hOn_P2o{ zB&`eR*xasK6f!{yuqI3i;8`yqTEO6&?A8K-B^82>*A=6e01` zVH7-ab2ZK#5aLMykRZb5!kz9UKo&4SQvihH_~VaXynlwCU=Th)N|3r4LWJZ;nPddebQ4;qM_$_0bOT*&KGtWz8c5MidZ|8$0p0XnXUQv@E)@j>YIH?A z&vz=UDNW8>so$wpR?1|*)nLN3%Pr<%Qi^PMliPSM@;8quc* z-9#(TcHWirUpppXjC{69Tkir8HevJ_P!&=bu+fn!BP@fx2;=aebq0e7$TZqwH3Op| z-Q7(bTS}3`Q(!q zV{UMTq|{rKKv_Vi{g;FR12iCnR=Wspo>*J>kRIShz_2-;&zKA05DMUiyyzWjn-uRoxMV4AM-0`Gj8W5Acz25jpZ#tE; zsGs`KMRiaPV4_oilvh+3ID(=N0$NiPrV^0frWEv7Qwo3(x%V5<2l#Z5&PnUl(K8*H zi5$X4a$@X^r?KZe^6ZVDv0a~bXIxFMGQ4C%9t<(t13x)Mh-LcLeK6#VPI%t5F9XU( znYK00PJV>pbKtuC4X(<|T)y9&R_%mD7S^KT$bb&Sh|GWRjDZw}r!yF0bD0dfa0h@PNL?V*jY;Nk zx>C2BmXHu$vv&xc1ayQ@5D^gz1i&DfVo*=sNe5dX7(iM62nQeoo(O^Z`=5~?n}d-M z6=e}tW$=E~1w+&(Z3J*a`h-Cl2!Ow>7&S-)iU4@mg+Iz={7oN>&2^pg%HD&YT2Oas zQ}0qZa?fzljmC(#V|Y|AniGNOJ}?*PkP(J zR$xg#kp>{hvqOv!0{TO5{e~L=8W~X+eH0O=yE7gB1Ur*A*hN-3T*jQ78#kUWIq14y z&vm^pr-)n^2_qw%AJYk(IL=qc=yLcx$JUq%M!3m+Yo~mU1au=GIiwr%Eac8!`QH!w zglw4RW$?+HXaT#Y-t-d*=@1}tNhjeox%WQ1r7hZ~-LOHs)K|OZ$r%=XV29vQ{r?Wy$RT@eKyIwr=;@*LKw1Jzl`-T)E^(F)** zSO6bHp`&!WmY1NlBf)?g1j&UCfKMcX*CT>Ku(S=}nQkz+7DXWk1XsDDABaogCPHMe zMNQ0A*#RLB!dF={9h!8Y#vfqpM#O*subzB#n1^J%F@L~iEPotBBz^LXfd(+S>f8UcasdToS3Khcj)_N32%9eC5DB6-LGa7768iRY9{ z*E^hSMhOmW+Koi-l(h~7VywFpzqXAo8u?Q1~3i*Te$%HW{+n&jhV@K#x zCj$DsGga6W@~d2ioJ=APo>L}A6nXF77dDIxvUj3Ye$y-E(QC4XSTsFHZvCc<&Ytm{ zhy&ZwbT#|dal+c#zJGbqn<8R#qDzVDOYNd}>TPOSf59T{Rv+*5Z2h>c&TmZs%v&>B zI#?kZqfyQMwU~}kq>!!X2XxKz0i{llvPeTkJwu^=j}#aL3=Dwq0xa;*IgGQ$8hnDo zgElxA8UxNdM-mLQ5E4V{JQC2D~P5F~=uf+yu6BLU5#a#n7W6R++OEG40_7qFGacU4UFQsN zhm{yl^4H-c64@5cvv*j?usJxS7sv?j8{f{$ATMN*mrK^^M|-C`qiLPT)chdM?E$_dIj5ycYtXUc4z~C|@~19O)qIbl$csYiH;$;teP0maVOvb7A-5B;8hrf#$h$eI`YX@?*$9ks2m*5*r zhI_`5JevkXi0P1ZA&fJ_PEL#&Su);;uV-2tMNf>m2rE64H-k(jIg1QB14<6)9T^~} zrdi1Zj3;~K2d-N@t{$RX@ExHiM{t5jrR?taAs%x>)0-A0G2w3hi_pX zl0aw-9HGIC2*`;ip15?L1$nj!0wmAtOx{XfKMuW!uF2oa>cJde51u(`u z?>fd!Y00fcNaWx2j_(^|KxABvF90LQqC@@$8vZ6zNT0DM>kOoP{cW5(Q(bw;h`M>F zNP=?6U!*)E3m^c4kmOznfPCq+2tx#fF&~=+N<1w9ZKsYME_9fVBj0q+^jV7)TfErR zVV79>oAGboxX-$}wKW7KpXmedc1D5r(|bCqUy%Vnz%_5KGYX93#p&48twWdeJJ~mO zZG|hc)?sGIFsBf1lW#;B7L#+jAde0S@;Aqgft8QBeDWyr>U+kq?XvV#gjLyO8EKV& zTfLDDI^}P3`#x{0UyEA1<&X@qA%2TchyaTUYZJ$>^)7xh`hGa2hzDI~Gs!oZ%`t`* zZ3EXni_&dj>aR@j&U)c7v5F^CK>A>f5rbYV_a{yGL=18W`+HfB2q z&j)Y_zc9jpH^!+v;eVaqF}{GKI|PsnLI9Au?_b;0LDPbWbFt=i5d!tMm_tOt zf{oZMfznr#QYIXFd^`BnRgIC_Wh$E%3}k9`cX{FnAP50{!rO+oX$jAD&VX{97hwCJIapBz zo!B*u^0BQCxFQG!1n@HOUCaZ(2^>O!9H>trBXvPQgo~76@CcZBpY9hxMleGF&kIB< z5F2F2x`71Ewnm0wn}Z$px^Qi#4<>Tf&0WUS_!~du)Kb+dg?PrnwLsAf{iMI#7@LZ?~;{_2oLu@BgMn)>oqz;%ra2 z=ZYZooroO$MT$DB172wZU2_|#$bd11Wr);zs$i}gxNH)c5e0_1`oER=e&{2cVagPq z!cF7F))+^|+PITFkpgGC_?zd`q3j2BLbdhYY zk2h{Qj&33kt;kmn8|Ur-#<_#LI@%biZ+ju40xRegvP;&~m7UOTb?qj_cC#rfdF?Pf z-@&c6S?Wi1>$raP**0x`4uEjGfx^%=T7xK;j=_F_je!wjS0RSZ98H(_AO$*1NW=RE zOhd+oTmVRUV0C_b7kJ8>(FQ&`221oer53tJGz_M>K<_cUw$JHYMj8;9(*X=R7btj# z5VR*5Nl-3=BYz!8P`qm}n?uAFJ&Rlr3fl{t57jP20nxCH4;T|Do?-U^m}W4T+RXqs z0<*;+my~uc>^P8x9y5I~Q9KG`>I#^UC$a==jK8tO^c}ci{H)2)$Lqdcv+bSzPe&~1 z6#91X6!|0<&VnE_^oQ~0ol{hVFx3GD7(Afg&C$Gp)Af=u9wnMmpn0Jumb`9m-w=1Cc;6x-~z3RCmujyLH zZ}&e?^e#fhsfbYM+olTO6djbmXOMJw)#__Ri2?B&G2eC@)lA!^-Soxyh-|etAMTP} zV@c-8o!^Wjf@a+5MhD@DyctUbnz2RJdHYST(s!SAox62x-s6-NR_DO6W$c;-;3C|n z2jodE+IC1DIFj@chRZ{lWGx%zya2Mprihp+i!D$Wk!yC*x&iqrpM6Omv`=5KKk{Wq zX_%RCI4?$cgCYvqJJT7fGN8Qk z7Mfk3 z56l+y@4dnr0+myF^CXI%=m^O14<$RJChJTFP|)o z4FNFaMJDX~C0FE;S3wT_PsWi#y1;ODz5^1>fclK=AcmBmyr~P1gY5WTco7-xR!TBU z);$+s1(52q7q3=5=>z$vLk#iScq=|%Ob@m0M1;8m)vP;VdrZMLO$D>N*^eB-@1hIV#mFB?r;Dv4ATOQLhg{H6 zn2)fMUj~;9z-$D=_lQTQ1ky!oy-W*`b2`9*?Sdjx(G0%tw1w^Di1=LD^juU}onQ%j z#a3v89}CXm2PZ`YntW;lolrMFoPyRS=&P+40d9L45FpY>%BF%kQm5(|9jyX9U=`%y z01ZYR>&dH8(N<9MlCUp>#aq$|I^C&B1_gPW`5GK;Hs}Nr zVEWGA_rL%B7dD5;SSj9tEz^TPG>Hr}w@j8O9z`U#0K|Bc2Og>|JQTYFNEkBmng_U^ zhhF~;0LTYDu=r1+&~~?wSqqXVIwK`q$DorJgiyG=2n3n8Rsdo49R2D*67N%Ly3rBY z&3PBiP#^DTCqQBdmDyISy&e~;FVzdkX>;fK>kIm#KSfG>XCV_X*AGP=I-5ZKOY44I z8^ef0p8q;}(SpH@`8p58zqwjK&J*gAEuXdSKwtVB+3Mo0)(^m?wi?o7hJa4XqxdWzLD>~Z+2iT#G#fDFw zvHMLuM5tTfsvdNT4P&!B+f9YO_gk`CP5b;`RBfBIH31Ngr^p(q!8~ukpwkVUjxW3l zU{!z-P4QF?2r}B{JSZ9vqHuVQWT&lln215usRTiO-a$YR3gMk@1|*nyCWww_&3h6Ug9L~@<9q!iGU0y% zCwd|pvh5L#GyUImN!}BMAV9=^HC8|!0AcE)LVh!@ zqBvwnejVE>^hlA%=5{a!q(y?>H9h61YJbxu;DTTlMkM=Wvde(z5W?w@69D3KKx8_A z{1*BnpY(&iAr!zx9m)D$w*dkqG7K1b#T^BVH2JN)R$?Op4(6iIq94B3KTS`lYYV>0 zD2e8VRb#(1+ z0K1KMznAqGSM-En!E7=N%Z*PvV|><{8^#{qcCZk;LJpBOT4Mp)WL*kTcXcbQ2iLjgM-%D5YtZjlqiLM6iDXeEB)~hysZe9A zyK}bJ;4HlDc~fCXE}0hL%J}D5rc1`243R1FV*XHs0dXMz6rBtLC2L9Kr(6*N-bx3M zc%O_RyvjDs#=rr_7RHX%nf(D%M|SVF2=G7>(CZuk2C%!|8A0_|o~V{S2700y>i^is zK6d}==dr_J=W&f4MssJMuh#%{5ZHREV7;hty+9Bk!!blr*;3(ML0_K;d3kT>7_Y(M%p;EFTcgx^xBvk6Ef+$ zuB~pz8bVhzO61ow2!y|z?jgf$9lTI4cuvpMfo&n@jBU|iHlW*MTlgxkcJt5|^3v^p z5z7|2BP?W%?G%xgpL#1#RFaL$#;PB?roJ2u+i&|!-8yv>ndxkROG?KccieI3Z4=f4 zE|`tV^QgNJ2!Jx~I#c5S4r8oh9d2R}TciP)brJy90h9|#(Bby}14a!OLIEH;n(`wU zV-pJO)ImQ6AK(xe1Va7>8DQxQB!b|WzR)r1+M*!s=v-xa`JWf1Uf3IOHrU#MX|>u~ z8TO5;n|8MIK_3*-(O!dVy@Gm0o@Uy60^*ch5`n?4P5T%VTT5G5ndjc#^deQ1hjNPY zP@?Ag$7ZqFZU(c&b{*7yfK$(m+aPfRsNSofW+Sq&`-BBmg0TdX3Vf*T& zECwDaMmChigCS>KL2d4{x>Wa$##JBfqZfOf0$>Drzr3sUDSqn6(?VY8JA#Ao15eLb z+d~gM*LQjV-&lFmJ=e1t`t>e>c1N@}Au<7Xx(`IY z`YvzJXTI0x9YBQGiNg4saWJ;}oZMX0mcmH@EsHh~$Q@Sp)}{Ma)FG z$OFZa)l_1(s|Z8fY!jsQ#;vQdW?9;pAADc*ir_ce75*rnbrq+ zkImU8Ed*ej`2u0RR#^fo^OCJZ)(`-J#pvilG(gV(?N|0WhSNz)Rzxz$21N(h8?7P2 zvlPw#O658APdV+a?-<1H)0Z3vEPBBEH_hOC0L2KKACc7Gd=UZZ3e`?0G=KyQ(Lfro zF#`rb+wov9F*}27AWd2LToi%8bu23ok(cNM5YJ1TX>WH4qmL0jjM>6B zi9(y#3GQ!ic8!b+xLz=n!2(Y=org2J*Q!o~;eY<2~2}K)L!J!0J;` zG=PPisFy{w*3r;AWEiL_7vXB&Rm6Y})4#Q$-1+y;H3I%d@aZx`0Hh-c>uCbInPD%r zkZ|AXWI={ne#S@t18mPR2CX(Xp2h;m>O*4>w2=evk`H48kU2#iCmw0oOVni&hOz(7 z3**hZ<($zA#+NSnZQQ$`f-c)hKwmj^yzb5pkOz6CfAmP0pRP8I)*buCt%Km?>0M=a z`=96JTVyF&YN`(2`(7yCJ7kL^31i>{xuGxQ4xY4?m5rlYh4VX5u6t)h)73*c$b#?T z54qIFNC7-ydwjp`?y}>y^-3`*%C95M^&{!wNB&>aqT!@#txBG7yI}v^25%@ zYJa=&w-Z39p9ie$4jr)olw2d8WX<0UkMCN6Y)>*->YyLSr)#DApU#kRK%z|-i1tA&6&rvTdi*H**+mY2TKPwnbx z`ldbAzGsA6a2Pk&2uwdx}@KE_Vm!-#*5w;70y^1I}u-a-%hUXra&Bg4<|a!FQZLHJ8`ldS)TKE zS6styc{Ak6s`2F{+EoN&io&T6+aL<5e((YYkQJmKUT}InqaNM+j~I}_u{o)d40m~! zDNXH%Io*+e+O)77w?}w%6pr%^)^684bug>I-^syFdg8i0+hYm{&-uIl?MPc zx(Sd18A!mYp*jG2^DgFOKt%#5j_Cj%11}oz`Cex>PeeIAqcbc7q~wSRLIALQ4W<2{{A;k$f=;9+qD0ls0pbvDhP^&fOO9mT1K>}U4&!-WBIg$fPDB{yVVPhnWpJpk_ZSx(DbP9I%KGG6ebZk@YMLx<<@<5=?=U% zHXYi5Oj|`WQ$0=QsT%uf~hLkUyK@S)X;76~JlN3`B74H1tFvd=NIH@(bgw~E0WiV(pKciJ?gI{h_q0xx0Pn1QzZ$|gYMl8QpEHzxOc!7@&O--o-gBHTa0T{A zg#n5rU{4gTBZYk?KZ9wY8D^hh=jL^Jb~*`QcF>2xWdLjgBp4kboEOD2Q(r`bu`p=r zpyTCDu$1S2gXg&}gV7eAr7)-W=KcL2Oa~gy^t}E>Fhy+00m5aADH#FUj3q;B?DRWu zmqYz6_v`PSr z?2~0iLw(2&IU%REtggLY#@&<^&=6U3rg%UFghVxz3)uWdhUBkYfY)64dcM0*A+o`v z-75iT3l#7|Li`A8(gB_>&|xI$OecD(2R+bl-rc#iulnk{$oBfGVfth2I?+)7X?H|H z|Ewb&k&3Y*arH&p!Ky>R3OxOE$k2tGt5;hjSd>Bi7@% zy%sPk1G$DduungbdDG(B&+wBybyI)4A2^@tyG`1f0Jum&hhbVe003FV-y%PZLs-0% z^HfOa98hR1MZt)y;sj2z~%418xR14f>pd45J+XPY+A8337}Sgnu6 z3GHHPI*9V}?idDTsJ~MJbrgWH=#Zx*WFrc}80c(e@if)hV04zdfhBBXb2tS+qT~P@ z8`B?zX)gA=bV+~meoeu+RSStTcEHq_GHBM1q+rIEycvHo$iE zkQNaL{N+KeO%I3`tnZemNSM1LWEosjO;~=ZJ>_FFZGfO66!J$L$gTr}7=PrGA)}zc zNj=q%UQm2ShN8YSH_cd-;v9`?gEGa_&I~gQ6r(ZgrxQlIerYrg( zK?l;l-JauUA_3OQw8gUpf_~bPPVVU-l4l&c_l3=Y*Dzjm)_A~)7KU~+CH;ms@)E{x zDu|4BF&4~_H@RzJIT`TN`5#T2(M?9)Pg54%`q%CqzsYy!rFKps{^B|N@<4!y6 zv?WwZNi<|^fRsnCBLEIXGv9)Vb=#6fRt8aBtOUmjb&$ay8^$QQpyS$msgq3)@FsaK z!u<#Z&x4i56uBIhENez#_UobDt7a{=H7(?#_|yUyT1UVYcCBbSVJhkvmX#*6J?{OJnf zHa5B{Vk^Hc+M=JvnGugfce*V+BBLS#$=te*{$^{GDIYeEQ6?vBgx~T~9-Gr5-t?k# zWH={?HOy0IQ-y3xrxoTT!6Eh#9;mzZW-x_aBwrTlZj-hq0F)35l6desn-|WQGNgna z5bIxULY@XoP@5U|Avo8Yb*14-5Z=JL5sQQe6H^x8K~_4yfUxi+fp1%Zgn|f!j@1W%my-L=ATdM;gnXvw ze_)Bs=xYSf9)5l7|IUqQ;h1scY4a%a5d9XVA?z*i!RW~dxoY80%1DlkW31cwk|pv2 z&=Fc5=gy=|vTIt2fwm}*cTXuZ5Nppy-op4IX5>j*JV!SCCfk%8;RF!sk8lDba@E=y z_2zYs)k^pxAI($iBg9F&3m6)GoA0d;g7dH-+tlftFo9!9X1v>x)8vC~@!NAEQEe@zt8Gn9zdCb( zW6A+V>f0frzKphK*e~|8(zTp?ea3HT&R zuuaZWwfbVo100!j3tp)-hQOve$ z5j5{;k4_~pUExUhc>Fvcp2=L~vwfnd##2b#R1M{0U;sFQH@?QUkSgWt;*Iw6yRgUH zKI3T%sTJw+Z2^wo8GpaY1sUK~M+_{!Lp}<}F($}Hsnhx>paq9WBLD{y824_56?haT zRR4@x$Ig;>GDCjI41fSg>W>&Rl-jR6^40=cWdR+!LN_`=u>1A9{HLRi0gCtb8Ug6s zjcz3C4hv;1)QeWdHC!Ux#4ukgY(F_8yjpY zdewdY?f5b_Yz+N3kMEfd;)-yRx7NKGXU`(YIVx}sCMW~8kX?0%Bqr0mf6j4t4#yT?|mh7Xs2PP>2Xm-QecM z=s^Ex7?7KeGq%u!@aSyd*6M6P#0X%IJi?BSoW_5<)P3AY8P@7=GGrX|t$y@(i(*;um@;m)4@1GL$`YEUL1ey<&c=7%w^Xkb% zCllI0Df9lvj+@RH0rGF5DcSRXr_dGhw^KyDeP(Sz22Z_#0Ucw|kkd{RWYEdIc9}x! zUJg1YGS~D1xt5Owj@ooErldNWSUa_;x++nNUB*V+Kil<2C^^Lic1OuMHDS?7Wv(E7gh zK|Z4+ykXz*u-ToWHl~P;rNgXXJRI<2ijO^k{bb8nbxEA)8u=ZY#eYSsnxp54GTg?H z+;px03@Kt%G@C3-edh-T!5MPEn3I2X{S3Gj-3%>{3$Orq zi@O+fMj0`%FiYn*Fb3V?qJ5kDlRbmQ=}1!n>Y+{!S^-RFoN>kyLQ!840)uK0JJu1C zYq1p|%=jZeYeO*8?ulS`v2((qp_!%d% zBa+i;loYVj;{t6rP$B^2fDDKzP$)!#99p<1vV)kI+b%>%*2%Wj{Og?_?L;733^D_y zO#zYL+N6Fw!MsTAz})j1$P`0BAGC*}cLuq((>*eX++g~J#G6Z21|w5n90(ZfmXxgy zbb!9<=eD(JU&mtuO5ekQj?isPJC=8B$Py!|9}%4v4F-VC-RFG+N%;d(ec*4#m|i-N zN&9`Le~p1LhXWlH*1=)r4L>*v^>Y7au+4PzG=`j+~9UAiPh~AFzZfeix z>=yfp5coUU5JAu$<+m7>{GHJ|a= zb%>5oA#?Q|1f-IP1BC@%1}5bL9C_jf!@$|PCA_b*ggd%j4-n{N`3aQ*TOcih5U|RR zVF&VvLMue&;rmXQQWsk%2mz(@nb0&gr6Ua*Qlh*m?6qx%P8>8HP^uVE{%#M$C znxjZmi}|pB9yYJmI+U*1R43n&e>+QBY+7n}2*o5j-D=q(IEC@6AMd`s${iU>)_5gn zo_Xf}oA&gFDK2m5zxp$;xhq8FMfOGB4#qA3ROl3e zYIVNx>h#R9>HALf({63qO_m}~MI7W~-V@%4qR8LacSDu_6zL$385qFN$aL2N!qS3Q z^=71sg3YvhYSDNRKYd45?D!%#90Gc0hZvG?tedYl9e^am5VA$DMGFuy@3!a=Y35#7A04I z4lP^jT?8SU2D`RN$89T9E#TuRnL7arDkOxSAygT_1iU(`kuq74n34m&7Rnd|o*Dz) z5yHZpyfC4Bg8(3#%Qr}^s&wqA@(o^lErnBU9b?c9y8YFX!3W5Nkh?&LvgvFCh-`H1 zr_L1-0OXz%#&jDZumW_1=xATvEv5HbPo z8rD25(F0@0C=0J6dt+mWu>X$kq_||SaQav+@akZh!nwiV9O^U{9pF&tksgMY~c9nH|@vr#w%|{Q4t(aah^>Sjb@I<5XCv7M1qPC z94@`{tEFFlW&PuFd-|N}oKDQHT?;mQs$tby&pg6Ige`5jb@$zVnJc1~`=*F{0s;aB z-!j!_4!=$~K`;{#30B|;toZEuGAzu;_bRfn=-4a&V+8r%)7%L$wTN}CQvEz1-1iLj zw_fkgG2hApn^SQP1p`(zsNl@#o8L11=VCAq48*+cXU%7FLwF7_K?r~^=qwG;8rHPx z82>%2t*oH2x(3SOr%vA zeP=Bzj9$$#Oz0Mzr2G_4Vgzd<h#5fk8&{0~?L#^J02|S*(i)_p z5m!CWsQ5)CGSieI)(E?E?RN~Zz&XhB>Z`B5(KG`b(HbBR-}$N5<#^BI<-P>Ls|MmB zxR9joc?h*|#XJeA;0Vr$N`~OlVBOpN5t~Ya`VG8hQg?3E#&Sg!iC)lK`SX59C>~Zf zKuiek6+|`GJ+~JG8Te&A;3|RLd=k6}EY`dJ3kLW=Gp@5D6?B)&2VGEj%RMsZTL;gK zcv~N9;#lW+fv;i!Dkp3Hr6#&&Jqr+8))MQVre;lju8c5PMPNN2n&4%RYcK5D*1a5a zYgY!sIB6|i{d)Ic2@5Wr+q_xJti3takSt5mF|LLgbl<*U`~*b!!g?*(7=Nkm4BP{Q zXaqXXf`gx7tfhy_9%JPO)2<6=Q+f#)cvsa3(V3Vs`T$1kC%A$G6ixUH_Jf1mTz&@w z;0WA+0W{J)>^b@Yex(Te3?|&e|CHha+QAdviS`i~w~WnM0FaAhis{y8xkyarSPM&I zW(ANQNE@dyIR^14T66AGT*WfO@BH)@n?J?E(8BpuL`hq4_je5h*5WcL6EbN1HiJ8$ z5|3le--TcWQqZg{5awj@JPQI%f`agw4haU1sXeicGEWOUuhraikpjn9c zjJ?xh)q8LbB*NS=4R8W+>?hbl?DF%6fDoCLpx`dV+I2H`-&y-Qqyg8ltMb#%1rK1S zCQU`lgAI|xkk1~2DN;NpL&87B32=lMVAznE73r!`emeo6eBWYUFc7XSLJ_wW_g4A) z#W(m2PH7z&64)#U9lq3P2d)T6GB4}oo)tx^OWMN}0BBG4E=xp#PjJLD629$q0ZsYG z5wu#jhV%X_UdOYYT9bN@sTTN&$YwP_@X&|S^gMgV5){*>6BN?S?SBE7V-+HuQ(NC$ z59a82&s(QA-(AZyfhCOD^{j_`p^H8X81)$uk51IADa%O0jq4ZX?PVU|78B^cU>e*L zqRb7=y~-MJ=Pl>~ac;x2!+(qyuAu3Hz%fd6$9}W&u~do4Ah^OO+O<8h?lgJ|tyEf8 z7&NBXH0Rm}p9ur@2MsF_oU#-11+Nqe`(pphDZXhg#gSAgFpD0z%6et67*afH{^Q;J z!CJj9;00j@ul1kon=NCr0Kiu|R`Vj$CL#uiRp$ec5P{jWz#GyMZHLK2L^7?sz=nBL zw1uXP!CPoPS$n z;jEzOq80PXS{#!Vm-gpT>!n<@dqVK85zJN(UguI)R)m!ea(OR!dZX~z&eD9#iC z@C;_b6N?&HN<4I5^gLuTm=X5y}hOiLNc^ELw3PDpxy;h>NLiE5)zeNqx`blRj2FyK#0;XH{ zzyK_AHQHU@BJ!nHxy&MC5H*Cbh~`_1Mw(696{2wOq-Xgt{>Atq0ERDH1LI@;VMRe8 z0j+3y1QQ|xT)%@O0z;L&5M)ROX)74x*rLk;dS#gNl_Ib;Ye`Eop9Bf}UHt&R6;I$? zOomWOT4%Aq)XfFM#Qd-Gp+QhEahldT53mZx5C#MzlW)1~1)B-@^Sl`7y{V5q*rt&n z`UMYVN)P|?xf5#Pk!Q$Cg3y>JW(*G=h5&%*Rr`Fb7D2)>qJxNvlYv|IgyvMvbFn~a zIf$G+F!vh!lmcwBfCvhF~vzDb%>Yvntrjg^@8%=V6gR14vP1~K@u7SI}V1%F`2^(umdQ8>0b^`5y- ztCdrBpG(&IucFJ(34*jyWSs*kI8vHPQUQ16m2c;W?UMZY&ny zs~8*SZY~5Q24D;DAOI%s;Vh!XK`0@T1tZ1S2&M{?ArJuAx**YplByw16_ZG07K4NZ zkue4YpSA?i2mug4VFS_>!Y(J$;zJq)(K{_&03qb+WfYW1K(KM;9-FuHK!Jj;Yg5b} zf)N}D2cA`6#_V&u3fL}DFtE4Qt9H&c%CWX%wTvKSfL=tZePuPuZ*RR3Hw>a~U5GEU zHbUrn5VUCX`pi3zpa3z`ND*iVQqWF;W_1Uv!A4Q}Vh#u<;DvAqCcy|8bk1pnf8);D z;AUq2MTXAgUbW}Jm$}qRHU^X*IP-Kl=WtB~b184&l7%7jWNrqGfDi`1 zXg&24zs;B}0GMtT7|-Cv&1X(5WbWx@pY6A2&%ExrJV!qG7<}6CY`V@=oA~#Jd;=}zk!LP66t@A>Nr^6I#F6z zbObEfTe$B(79k89pBpRR00;J*Foa7YvoMf?8OL=6gcSHeQUerBIyS&HEwJkd3beSDg**+onKhI7w@Vp-(3*-| z2Gpc##Lb%LyN`g`bCx4oQ$bgN+4_~oZlCIb9iW372!wGUkl+MyEv3f5*zIL`+;`S? zu;ziWnE#YIp+-kTknx2^4% zimza1a2KwE2hUUu2J=JE>_0q9^Nm@KHC=M94NxJVYUw8=r2YFJ;cFi}S6LQllY&I^ zbGm+63VttJAgdAjGi&#m`rE_&>9r=#|Ia$vNJt@oc^BV-HnLLYdZ;-JCLu1$o(V`Z zCv>Q+3b33od1q~lY>pMKN+`6x@WveBA36!n-NUsBVn)>&XhCco2PcN`y-|eAe zD6{w-m_Se6!*4#jZx+nlWauaua6P!-Sy>^rj?FFriz14WCP16vkGG&E##gQuK14*U znI36Br8kJcw;1`k23f#rFXBj7h@iiA3be|Wf1Lf-+NO-A26BOyfi#(RR%!wiAmSw zt6l=L8)B@2-kqtfuxunu0Z|8El!cnLq+PnU&wdvZ1x_o`3Lfhn(eocw001BWNkl)zT7smu@7Ap4U`rB=$v7;nG~Vc-6PRi<_8M!vP{rG1ME#HqRz!T(L>5lY3<2ZAUV zX}ywZS+sma3*bAiR=v#e6@{r*a)W@tgbbNTIEae>Njeq?0iw0%zas%dOu>gX8e%i; zRe#%pBA}YTn5UdeQI@VjniHJFtawP#{~iF0PYbcb{4vP@*It&6mASOEr*hM4hU2)R z-7Ah^Pt&xxam0^QdbOZCpIzs**Iru?DP{x!kw9+0{_HmxaDA`_k<1k$qyZwz=73<@ zV+<97j){>wS0sCqy37{GWsVyggua>4LT*}k+9%>{{)A)#Q5FqEiFE)0G6%%O|E2d~ zsu%&n;l&ch1>rx8xIA?*4bHh`Fcf$~*tl)lSlTwi7SYDW28kZ(w#9ocNerYK z1lFo3axjZN7Zho|J>T56`qBsbQcM6X96Z8N>su@8=uj0S?MazxlnEB71W#)Y-s?)q zawvuky<+ub$+j01B{+@`!E5I^9~^L5*?WA+ZwY#ivFEN|?+N?Q)di+1&7F&>jGF>W z&6^^yW!&9L94wZFpmBL9=B}7-^@tG&Qg`h=5v0r+%%6@&m}uce^V$FlSo0uSzhet} zA}BbApP89Irp?M=AoR|+U^bSe0kc=wM<9g%2`-pR`H|uQJhws)2y$g25i{4ll-mAR z74SJ72pR#&+H&t$PsGf61H6Pi*8#A8CrL+S)398pmZ^?+TzwcE?=z{_=Suu)r(51R zz$bXvo3txPfaq3)r~2^`Vf$M3H!z6cVqVT??!$PMb)LtQPd>Rw`!rezYYqv6*R2)P zFqrks;mK(fI7A2Av<|<6M}(+UK*Yt`(&Q@?WKGSx)UX2E%)Q}%xQCFL18v$`W`@4a zFfZ4xvS3VVZj3|tF94B{@7^>YOcLF2E-MR~z#T&f$SqI_<*E$UJf||ynb}+W3aD6P zG=pN1W#QCSlhDu}%szcuSVXl|3< z<-T>UOi2nidfx8cdoGlE31lrv;P5*J1lHYCrpm);RF>d-?ygR_g`a>u`~)m!g-IZ^ zC*T#s&F#(2Ny!~+%#XDNE9i`UfWNHIHJKt5+JAIYTv70DIF=QiC8$>VxiGW*fe8YL zd*Pwgx~X~ASliv72Bt?t%y;Y9TnI?8Tz)hUmIiH6Jwztef>&r^2%d-G>#(4-HRl6l z0S^|3=AtgUz%1Vd*JK`a4vkP1Kc-v6UGRhjL2wBY%zqXh(MCA=cx|o)gW!_2(GOxkCYrc~$~PbpiZOVIc5a)e_qNTBE91x|XzJ>wsRB51z2m90Oo2VQJFN#nI;8}S%Jj}ngN`uy7u0Fp zSn}{40z;kmO8W$7Ue+69ho|<00GtaNuLMIFGesr~jk!<&#st6M#{Q#I_81=pYo#yu zzt5GgZhsOa+*d7~En{;KAYh|eLqLd(@OfAd;UO^#3q)eV_z`o!4*2**5J&(HX=zsg zo|FTbXa_6`5SMn2ph7r|-NL#z*MjpcJR+;Q6T*mz)7tq!0lfQKXba^$0tG49W)U)M zGG~d`K}IMPh>of>MQaysRf2ChS$&FTo&Y4lcmutSw`z31`(;s9wZe zyWc$#XxDe`nljb1q5Ulo%%1rj{9p|3Rj^*}jNBBiV;^0Y^#k4@_JWpamX0l8%*%Ya zQ{01agxIsRWh$<=L&2QRCqVUVK3mJI3#G0Rax*c5M=>r0klC$q6?|Rw`<{ZFQ!E9N zgHcQy&e~6OrkeiN%l@&bfkiM>IbdsSKcYu)Su7fUgchmT=QzyW{`lXq_5@tGmV3Z^ z$AOWoPxig|C5i<2%j%T1Czoq9{NB{jvKXQ*W3`AqvMB~2Up=Pnp=cv~rjQB1`5%D; zn0)(yoXOrqnK77B`2_(Z-w4SDqpqJQ8s}F?|%Y?Kt9(ar2%|y0|;ZI zNKDL*78BB7Leg%Mq%1nm3H+=~E^$@Lgx*&8kv8Zsu0;8imnF$T<-6k=El+FIV` z4j`=6=t-cU-|I_{=ofiSdvo1>o4d9}uxV$6LRKd*G3SZ<4i*WC5pr`ZKi9d{Wv?L( z1QYK;;N!}wnT+dJ?25z>P7nj|&H`c$Xyr6Vzk!$9x6V19K-EI&UBRmTvH9hX%C z4mi$r1WKZJ<_z{cbH$>-iaGe*+JplM&Y6+@7cOS4AON6sF^;SOmp;G(K4P8FA^VFc4hJy+CPO_4XAnnR;HiV^t_Q*v5 zsUj3MnHGs4=ik}$xT$^t0%cziJ`7JVR}sw2yJ=`u>GOTgJI)jp0NY1MlUcf;tXlgP zfnC5>IsCq3_B*2_?q16*s36_|CUB+Cy;MqEjU3y*jtOf`!IAI;Bc?%0; zrf~v(L0rD0MHGdZagV7S?(Flo=k}7o@%q|^cXnmvGRTyU<`BpT0<^z`;M`Ja`1SDj zxuCrS^sY@;%G*-7+8Z+S?e}JRj;jg{0uKvTn;#matVlnIixN;4OkNrlsF#GtUI3@c4 ze!&TPO1LQYCpTARpcB;W^}V%>c$TazuUQlmL@O{=b2QaNw+vKplLg?%KmPHOx(87$ z3?xuL-DDt2#Vjn4<48Rs5lKWe?|g_fAq2K+ScoK(2{SC>UVU@~fT_Q_=YUpF3t_+l z69)KHF$fwMhU0shyl0{{x^8I|7FK}9i!Z*o+>5|+T}8J&kJ;1*s08^*^Q7_6Vlg^a z9s35r^GjM^dja^0;P*K|_FjozNReeA={oai1hf2k-(#%x@h`~9U}BS3FU1A&fT>Dl z<~o2V7%hP`3qkeWUC(|C@*_}qHj%sHQ)>At&Vd<_rHT;hIr9-R$+04_FcCH}eFzU} z{qDY8S*%*t6P$vvIv(y>vwtf_u@3ftV1=#_2v}6W9XP=dYuYpu!p!r*)|@g)h^r5K zX{3l|S~8g89$;y-?*-vigv$Tm-8EPv;6t5KYdM|U$vIgCvP$|La|Vxf6wI_+p{U9& zyMCHHxGc7Vpb8$*K*Cb-DOt!0tW2oNQb3?6Qvr@*FqfX~RB&xg=*02Z$M1dbdkg=e zz~=U|C)_AiGsVB~F7$$X++Ns6{IB$1LY=h-BLqonkADhu1{(#!gI}=dyX)FFzZ3q7 zc`D`#JQaXl1=RN4XFOS&>XxxN4Y2lvh^q;bBoQ`d_WV>9v0w)aB0`tH9Wy~N5l9d3 zGlZjMVlJ6(#R2$U76CxF2^NyiA49LQ7&A3Lu0=J6nz%R@QW8$24-yVKk1$bL&ax5q zI<^MxkWw)+fs^*dT0i~t)60K;&pc|)tXDoPz(&KLiRoC0P=Rj|;e7E0z(h>PRP7E> z=i6fbG7tCh9n)s=C7l;PAlfjvu3Q^NmF($BAW0_+-oRNR6{|IC@DHvFX!T#$DfVO5q5`%U}m8ZUI3b8pT7)YX7ZChVbK%?f&`(91=3TDi?)4rDIwzB* zJ%cPEPW~{*%hr(lF0%me*GR~9s*V-G=Cfsa>X{)8CQblg(gQ>47_bx(KD``^fgq$J zXAw{-q!qdWTl{=nT%LsxYYt$~^^fuP4||p%j}C#on43LDw83`mlux@6CZPJ9n%{t5BrYhfCD9l!3jmw@AkO<9|iB(YuB&) zXEia#>R!bUbAkGd*Ai$QpOvWk7!RU+Y_fcuXCk^+1`o0H?*m>=AO4FiDyv zqUt!lc)&@LVsfU1K?aPS_N6-)tAT5|rbTc(gvL-<2>j<*3&}O$I2%{4dd){{3X?8G zwVC;E1P?;K%xQZb_p<_6A7&~AZwO`fvRr<`nBYxEK^|5h+B(7Q*=L_!7&h3bm9%rfW16A!A%_2DF1Qy# zR4hnkR;vk*fV+OhH@E<}0>F;=5y;IAVvQg;e?H+B?0HpD?Cq+%ep9OEUdMwzcP&=Y zCYD1Mnd&kin1r=bH?QhWSc+lyO*l=u0sfQO-u&t zP(%ow&ZF?4Wz8jKgZ7mw$N~k9(JV{}En_(-E+;&#=RrZL=x|Mmz4<)X*|C&t6$yzjHHy3GkC! zu|XiP9|X%XVsbMXRj@P%0v~?pID3vK*CS-kO4u9&aQE)rO+kR7!n+Yd%a=~t_AnTE z{t=U6{gveMsf+`l#p5v>!{lt;sfacaBE3RAy^R%03f21faqA(69g*& zjF=GEOP{F)w|G`v^o4^s;1_$cvP=ISf1e)ev2t9$scS13^&z(^b8j4eCr0(TB zu0kEzOdBA~v798Vxh)aQRX<+46 zS1c#@004$;%>D>xx!F~U1AF$i<4P5TD1?M66*7yGtZDq-!Ps1BjY|PsKyI}TJY!M( zEKKGPp=-!;jPn@@yx^*6YQB2(fDlk_HlmpzP__X21uwvMeM|_k;E47G9$7&#VGJQ5 z7;J$Vu1K`1==+LM(H0FFU}b0#b#q7%0q=y-3MQeG=2Pit$M~&cRj%VcV|91QnDD&C zJ5{RN=h82|z;jjJ+&Rxs#V29v`zHJf! zwq^n7cqBNimYfCi(W+@|<*#};{$vxt;4KJbp;eamXc1~@=;2JAz7+vb1E!ekA{PqRHivd6+B803Z7$4JB zl^$7P5Sjv@>~;O9s}Yc94;ZaApoSnxr$w<=@>0+pfsZhfX6_ndH^hjzcI8wHL`3{Z zwsWaV_jZrUWhN!l`s!S1uI8DEw!RbzgNQMW3PFtNA7g*R{-PhWEO1T`00Uq=B`B9v zbwm(a?nO);6DLg6V!WbNrFB*pqkumzIKw3D9c==aU^{D5?P)P@%-(OV2i9E&uA#ZX zG`vFKyNBz7e~bfTay-E}i$Hxa&`zK0R_J+rPEc_jLNY6dIeEUV%F^E4RMsD?SYvxn z*=%141NI>oV%`4;4fe*qfiE=1d9{BAGiXaO0+naZI#VfUJks}q?!i~qS?A+(xq+%? z=zjt(g~lAwGXe59jfHM+jRC+Y%Ew1gY2F?}a7neYYis~;2mzRkn_%n~RPYMGXRh~q z!8Zm!EJVb-F$HrX&Cu@oJbWfaN$Z0ouH}5%B|zqesPIM&NiZ?K5cj%NqVCzPAHTM> zV_FB8a|zKgH9WyY5rMIm_eHdr!w76FF#sNb*Y?#KBP@0Qb4>w8m^4_i-h>3~C!>UNfvBQ0m@9&e!PZHRV4MFwTw;aFYKAzw4|vOh zkd>`~TgQN3_~g3I&+LzmfniL=9MMO|!$rRrY)J4hfAdCv6Ux(IgMH88`mT-X=kCbo zU9@`n>y>)G#1Vb7-j(aM|Clfs$)afOD|yakSh-;5SU<5=^{c5LL|JpL4~D$(R#pJ? z41A!el~B*hWZwuM_R9XaCb)B~|J{@F?0*?>H;u(5d+*-8O}zjRf6TQMlCkEQnqU#u zq!$3kJ%EslrUXowfjs@H?jh_11`GqxReF;|{`~XLFW0be7FYzf>smOB9}+ONBspU+ z=425B{#Y#cwa5|sN-m!JIF+(*lDYu`D~TgAtd&! zKodbQ1h!|MdFDU50_NYMCHWokz>pL6(vaL2p@A6SBcY&xE!83U(n`~VY^+G!3j{(0 z5*%^&)cD67AjF-u3tI@}cXI#-6^SB6yIwWHPs<=5<1$7r0+vWHUylNW8=g>NBFJD6 zJQf(}|KeXNNH!*o4vaJXvRr~GG_u+j;2!LOLAZe_`_CNACC$=xT}wqoI8{ElxuC^p zXW0Obho@k>PMdR=&apQ3avje}iSrC_gGB<~VL<3X&s!`58vAD4VCRfWp0~Vw>tyfI z7r&J%Z0*r6QT_x2u|}AD1%aGvpNh>$P`tNx@GQVO25vvgBp9pWlJ&G$C&y&^2b<;t ze(Wcu%5gHP@Xak_aRF>OkoL$VkC{Un!E|nJGMEOxan-I0{3{0*pbLnoDNg`e0S$tL z1tcLO{Ix?R(TJ)<(0#VJ%-0?ez>CVYInJ?|Ox#Q@{Mzo#e^)EcJ&d{5{kY=$JOC6y ziSR@tC%_eDTtDv825EJ1djT0=T z2V(vNQ+`_aJM#38F%Pf`E`qNrSXTETK{Lyd<4;oxD;R_c^XGFjAnsKhtR{tfV7#sg zMqLwqBYeapT$4o${O2#OSyBQ+u?sc2Vy$pZI7Ep;r{Sq*$OTX!r1`iWrUqZf>LST? zKoB7`v*Nm!@25C(o$0^-&N+UjU{cRv&GDM5NfxMS?Ff66PW-2aWHI_`m!MD85J<4A z!INtczN)DLcFKaPP*g?JT-%$CB@!fhT#20gA zj_~j%1OduTtbhR~0KiQw=I-J7U73I}1gU%$7NaWf*29o;FrW$}Fv0!#&wpMP-Eo*i zHMYlUl@P%V2@(B0)%Y*C0p+}$O&bbDI$ZRM_3{<<>1$U-F{-MH2b3S32BH2 zM4-_lRxAm$BYWKbnv1nY;k!2<)`NmF!4g8)oFIsp4|~XRQQvdN2-IT@ zC}^qTE#d{Zn9QS^6bP^1z$v(r##h_bV;tiq93$w`#<>U38E{`EQSeWD#}E?`!lP=q z=U1l*`kz9AK9wF_#Y;F?vmN8U54jKt8v2Jm^r1!b2dD^$y%|%j^irM5&9`ot zI>tLr8clfB5QVkHx;i#9y<@=yCR;gR`@y2X{UG~7s;2UqEI8FAcTd*^8wjAFPJyP% z{X#ad;TXb9B{9K|cY6*gz!{B4I$xP27{2^mM6bHtM>^C6OMvZHPxC~WqEa61&WGKF*e5l z5CFEALtPvI11Jl?yiEEK-4DPp1QMe~D|)nu+Oc+D@*M!>gGTUU;QaNjVJncvu$pLiD#p+4>*yWBddFL>7kYdu{Dq*WTunM098j_EbFp1kB5vWN*wJ)EonryaRkp+cl&S z68dN_1-}sLB1Xj=xF=*ms2nQ@hnZisK1g|J{KvTMsJa?>VhKaoYi@-xWA5k>Vy-eE zAs2nZ2v{oliyenD-$ul~4_zoKq}URp!v)+;#A()H2L0eDAyG-(&aG>u78Z!|)pGY8~vGm?C@(9B`4N ziB(msQ?C6$W3!Of(%Cg?4Si>7XO2GFOP?vej&bZ*;V}g+>rYLoz+p8bHg^M*1+c{e zz;w&B09Z)Ah%74r2?d}tIhZ7^oY|~~7-@r5gR3Eo#k%UDZ~y=x07*naR3t6aIEx3s zI5I~&M&O|TWCkQmSkzj+GAome04Kr^=mlgj{qL>R?@c~6!jouy+Ol=55lZ>`t$RMh z3QW{l%yrW!s(2M~L3pypAU=TE{rm?e0KdI;46WVzi#;G<@WC4jJP9PMwm@^}x$J3{ zq<%wqzysKDZ9*bADz%Arrg0I|8@G?ZK!|k|>^a8$#%%)ADu<3~=N72<06IhqES^cF zN^lBa2+tTSp&*UUIgSOZxkm}`j`f0*V7^Xt`TyZ*Zic!IrVXN(lqSVz98*sOIDuJJ zY^xydECB@sj+Mc96(^8o0Dcoh2q~Vau9oLIu2QP5gAKF_^S9oZx^-X;;BNIFzQ=k) zII6WU+GX8yU4j>|V=aBQAFX$tAB!ugaFe}qEK7TR9t?_IF#-0a9v5gU*xXzRaBCqT z4~OBKm>ZZ3>6WCzbZq<%;Q|AaEK{X>Q`Cm+6*g#g;AE@PqQZk_zX_r4WgZvkLHypUa>0g zb0l~L)l#4m=FvdR0=*=di#^CZoWf9T4mb~QeaEE2^|59%RPi$Zb%K3?j_?(&tpMDd zCU{P?_RRz+T2nO4I#zaBJcYOmf?@Q~zEv*WTA@wckp#R-Fk8R&E_bPzI09cOqS0r{ ztvzDFnX{h6me@zIW$(=gyl^E^%D0To0)VK0+8zLt?qCs^mN0+*5D!XI_i+BptPvmy zFbjbFPI$nq05{+@afo3N9cS@KJ{}%26+~eH`S)qN1ONeLf^wwFVE*QEDWi2%)sG*% z$ka4_{{u_}inM9%0f)UQ10bLd=wvaAl-A2fd1C;Xw8(AVJ@Z~b`Cf;QlliIydb zKmdm2VOLo)_d!`P=o%QV@B5tIRh(4XeRwd|bly^Rn_pEmz2KF5Pyp1guOShYCDJQeR#7Vd;fZs_Qaq3XCBV5rQ#=j~vG(ADM#6%7Q?9uswv0#a+_|%< z5YSjFr~!CET1lt?+T<|@jdqwjigryC<)38|_7J3C4{Z^PJoREq;UiYTh#A|%uqG$~ zL-3G3SSkvD$87S2kwQs4?sF-l=u-&KzfKZO%O5L&0BGf^794^I08FnU{jGJ9>uFBB z|C##$emV0sv>2;}0Zj5|Mn2V{933CT<8Z4t~+cv6{@mG0R!KHo!XguY@p$8(zXeN)BaacB_?6 zmJ6@4*`1d)AlKShkte^^Ft)u*S`7Po(k+_ zwE+_>Lz|-sB^@9&fO1#AFiaGZDjg=U0`}94K0F(OeztzB6uD*I=wdi8+{S zDcbj?{rLN&T8{J4)u!JBB2AbCtx~HDxq_ZbiQM}lgC^~0PZ04 zb#epW7%o~h7xBpyocSHjQj*{R+(iq~S_}tsaD4p>!k2<-y_{1dKfFbE`&=v)oa{fx zV?4P8GW}=fz#rS{j^Dgu$2dDT7?HH;o4>1oZghk1yIAO^p8)AbNQI zSbhgmP|Y($yXLp@5RUoqhd;a&6UuihA{>Dy5Rh1sq5v*UGV6eJ2A$y`4vo-a(l$vr z8p=QfzNyBZ{ZQ7FMMSy@D+m`!rF;Q}^{b3z1xz3|20PaeP#g#2u7^T3#|!dPT!$aY zI#+KzvwQ`f5GlxR4oS87GXZa10*mku9?Wr${s%`!X-n=;00blQ`E^&bzX#(##yO1y zWPx1>becZ=#6;_s3g_Tr#f0D_BJRKX$kY7GH?Klrjflod7ZUUx=bYJ$@7ic}o#fmT zP7$u>^xy*0x<-OPMQv)5RBTXvK>X)38ts}l2?2Yd(G^>w0CBOD#S!x#tJYuqM}n7g ztXElb)tq1rKnDxp%<@7ApxM*>D?d%ib1&!k3~mGomZiX2dec|}t+xsQpZUyZ7VTTA zRW*_;kyvZXI>wP|GFO(_$=khf%Z9pb|f6?X^ zgHTXBz+T36K}gmT^JfyTu#XLwabewQ)tQGvcA5i0D$T&PxmaXXh#FNhpxn{Seh~bH z7hYHh1owh-Fl7i`ai+9=z*n$JT1){(?hk;y%++3!OzQ_wxDVN{g{|J#OTo=-)lhRc`rd|C)}a8bx|ao z%_)6VS{W+%OZy9$B{J3cV z004*RGu1Q6GYM6m5FjxHnP7fk+8ZFCNeV{!`q#g{m`MPK>r_;ODMSnaWH28O>j4Fn zSrAgH|D9VaPxaqvviI``pL-qZc~}!^m^6RUyrt$?ySj@3!0JX>cep^An^mz(=5Az0$o9Dfg@m^qk_C0EmG3&)y;qWfHiq|HJ^4 z72va2jw8VD7<(FU2N7pIMf)g1EO-^|DN>w(K&vA#qo;5X&N&}#rDej4+FrxYI?SPy zF?{qKeiba33(!3ZJcR$~s_Xe39fkXF8m>DR*O4J~|GgDT*CK!T{0nN)#&)2bU}K zw)en5YmFCLyXqvMeWkl+Me$ztRP|M?X%>KrLyeVp<;p35kg}Jn)&JHT9O)Z?rlPHi z5{)$objw)cJ+@i^6zr*{KcF>1Oxz?f4}b$`0EP!N+2RB+1%d%{mw#-9{gYf>hhQf7NFFo7fe_W6)c*)hX01$H1sl=c72;8=+<9I#!9eir zZNWqYH|D{*5&~4!|Ej4DfDy{81kyw6KgKzXtKf7_-D6op&*X(;w6$@q>Sj2NX~5G0 zcoV8;W)Y+HLSyqIqnj+FXsOR-0K`~|?vDwf;m#{v5e~xFy55b|rGef$4(_7;r7F6X zXY;!`R+1Jipghd$us1qA)~o=6kbOZ1(az|beeqsFy!tKFc&Yj)7uziYF}Nf>#)g6L!_jK>&*frsyQLu(KU4gT zbGcO=53f@aDyxkiV9qtFsm*K^R_lxyU2#7Aq_DwXbej?f$ISyD7;E6K&&`SEiXV8+ zv2!6F)3t8a#`9YXYifP%Ni;d%e%2qywx8g_=XjYtuk5n#mHsWJ%DPs9-7(w<)?I4& zmP&w2AnLo`^{!3507UShiULd^Fxz# z0kHUjG{^EQnU^s^ekBVaFbu=kOR3-MkV2p&tvq3BtZhpX1sk7fzcS0UC>^VYUT~fP z(5fC*-s)K01AvN!CwBtmubETLMk?r3t#EtcyZ8)ySe3tu`;tTs)s^?cE)a=3izLmjG)I zenxr2%*(Wx;{poQtlWB*S2VT#a6Rkn7}u!o10ldZ`knG7ecpb`lDlav6Q z0F1~(04!1_DzlLdFKwv2-(D4qkYb4l0Eij+ zthwJHDM`NkWr*%~2%Cwql9UCt_vzqw$*O&KbnlDI*#kM^-cKlPRO$7xn6=B!Sh?jQVDR&fzt8#bDn$d zxrIT{%55~@u)%!67J$j0R3cc92_NI1OBkx;=Cf#a3uRFNp@;Cl>j7BILi_+`;o;pA zBfP5G-`-417(bT_#1!R^Fj!N9R6f8MaGHEI!vRHRrhn+9$x-r_z$j7~s}1PeKX8q2NWr;W3VJ>7z^mv<7QZx5 zIE}%%Rsn+E>n&2?Z}MC?lp^L~Xz~Dp`4;2A z5CAb|!X(k4wF2yNSWVD7Q!v1;OeUZ!A{LMUp3i;mbIXHce3-v_0;leZy#bO~2o?~n zbRnrVwpJqM3&5*@2&Cde2MkPel???@2uLoQ2ne%~@9vS+Apa7fL;77+{~&f6MS(0? z8!8XVl0Yb|j&*J!h;GjeRvZCO%J|Ye)b$4o$2i6@{!PE&GrSQv4PVQkfnNk}nN&sd z$AmNMqq&&>X&(;)0)`Lo&2xF^wW_cxcy zx@Q5T6x4wbEvfhy9^yIo);nN+ma0Hjbrmg^5mB4wIstO+V)9u}vaV3}F#g=FvgF1p z)D=fiuL1Y5miD*I4@33cEpvY4-o1O9EC2%0_%vwa((`C>wIUSFO7r7e0&t|8$`$e_ zC%FJ(%mBc6_?V2~62X22n0^2I-(O72k3II-!UX-#_YZLPJeZ02)0Nr8qybQV!qP`Z z=^KwcvPj`iJ@wRroLmL@kO&4UK~)3@^H-|*(MKO0AN}Y@--rs%Oh|}xAJrc1DF78v zVlTZzUUNeb2nj|_fb0ptD{aVLCqxJwLd?uxe!uHo)uaE2@IS^Sj;m6YX@Z0Rf;wDQ zH$|E5Dg+iyUh$r4Zj6;d#6+B1@E|1t9cG}?s3{NMlm-=-`8%)^an`WU@Q*-+(ptKsf}9fR>> zCPg`7IJ8&{fHW)M%x}&swS|Abh*MbsvIJi6~LKu6hTsar*y}k{p@E; z0j7F^rvb2p)OZ5Z)e6`P8q40lNh4A zf_(yTh=I?9EJ*8Edq9FG{Sy?J^!%S70(c`f_7?MZKi2}>Rcz#*aQ?ykk8z9#8{ri? ziutmbqNlT~kAO~jDishOQ=IA?NH}15CDd2AtDgTD#aM#^;WLG;Vr;AgEC;>2Mf65=8L770?DR=mV@6n7s4$ogIU?r1_@33d3@0B5E-Ezy? z?}7qL65FGYFu}lF#fI?x&lSLqag1YZAE#0BaGuGRFz$1$g3;i)tvWo!Nb2xc ze*tv2On|DgW=ZfJV}ZMs{B{lZ!MsJOQ{t)@Q2x4O-QT_4D|c=wivygjHG{p6Q)}$(YXz1MSmc)<17DbuK)`F zzO^*?maIQ5-+7RmzdmyyLBT$8Khz7LK%X>=vIqRm@>5>2lui4&rv^>OIL13=Fd>)o zkJ;9xv)&-(kB_yNe+(PFKnG&t(WD~(;k5t9T1=?E0&{>L#Q^PyaiJUaysyy^o{+-l zzUYg1v5vv$b6e1cGjF3enAmmWTmyxzA(~xf+fx2Ym!8`$R|(SkRQRd*stPR;3J6lw zSuyZSO0+d*!2u&Ix?9HPQou~oCPkafuWzy#6VnvaKCRva>poSLy39r%#>1MV-6%nH-hF*1eMgPVE$-kZDZ5^69(XRfqY$;**JyGakR(!12iZQ zuB%jg7Dx0SBSXhAdvqjbRy2DIjdF;#`M+jI?uB*~;a>ld>z@6b#yt1R1mm676~m@9 zmA+RXX0>t%T6p4YMW={aD+*$KLiQJhO;9*`@7gR4_E4{!En{;QfHX5EArHbl?*Ray zhcOwZ{LCCu{4j+8GxM~G+hh;pp)fW8qat9fEIpKmr1hRtfXGe2I;Z?VP$hKv$<@;5 zV-u~<|6a$uOhHBILl{V6t;_!mKmblrrx-oP&c{}_Ddv5IqjW*m2J4^S4niUT1PkUs z78$9C0(J;>_5lDi)bg+@E1OSH#Us+$sBpzdK>_g&%KrAuR z{6y?Jw_4&wpMK;cA6d-*tN@T15rMe0eA1M=?;^dUgA&{+Y6XhI7&7hpq-detNXrt9~BNmu-Y5|MHi= zT#k{+Rd+$JiV>mz=sarxno@UCGy}b-AeOU^et5?iDMEcmOZKQpSTAd1ZS~Em)iM_e zhVS{a>K0gEDdnuHRcb`5F?{Pv3C|+a+H$S@t8PuH)-DiHDKH0um&`1Ye^cm29@1R`mK>h-MmP6 z7(0fn!xPI0K}ztTwI?vp_z?ovcTMLM%mZMmF6J7U^GWT3H~IQi>2r?k4fkf1Ab`pF zFTx*SvF0Q^5Gn`{=5wU@9pe~p|ETXul>@_3%(uD#)me$rqrc_fqYY>WGcvjZuQ6-jV>*tfZKCC@wUh#aKZPxKL8;yDO=&3=u)K7_Nmd9nCIJJ@%W~j2*F&S`)bzbr z1JG*w!9tGV7w~RvD#&KN%eb;I~x( z;19NGdeXZ=l1ru>>3aOx0HG{^3dqCx!ll@HE; zTrZF45^XZye1(C~AM`|_pJIsw^I}jG1~h=BkAmVD*1?xwetG=kAOBd~nAIp5>s(^` zRRn$Z*=Lvecx5H5a7~TEiYub9pi=|_&lGJrR{`LvbUX@_wUOOMiB_F)tjaR_oPbt! z$1=Hc2iPzB#F8tPt|C#6Cs?pB5a_l90j`#xZ9#y#0ooiJLwodYavp%6*vzG#${-R;I1FS{2Mo?a0lL0N}iY4pu_PuneR5m{ZaJ&PQL&xqA5MlJE7HxoVt?KycMOtJOe| z68w$vdrrTLrz0R(Z)=)Mz*^uD*2nMG4{fHH+2^ve2zQh>>#Tb2ma#Mg+7fKXRL{h~ zZ;b(A_;T0X9Pj~(+Ct9#jEistj4=x1PXGWQ07*naRQaO(#>B1J56#vh_|B}fM_)2& zTDe|z{%u~7_90$Db=JI6{J$^V2r|a5> zPSgrGcWpu1(WKLM!u9=dud=@8<~{|fp)LH~+!AFAxR-gMClw1rZzvuF1;?2ap@ouh zzpSEjsRMA;us_zAwr(%bZpHBk0E7Z-YW*n3?PIlAO0}F*!O>}az?u@cSPaC~Z5fLN zV2c1iJH$}rtlLzR1PD^UXoaLh4<=Zx3Q~_GLL|OQL(=lCbKMcG6(2qKNac75U*ZQKAZZ$dxA`nGB*hwtxF+Af z<6IlE0wSNSx9hPY_zb}6L{^~=FMSC}?xJ=P5%=DEL#9g_M-!&~4GfiXFjhu`=Dz#g z?|vgXoM2xpR{`2^I?DjY3-=2WjIqSb3ILNpY`-F;;9*YnD9E)?6}tiqYYyaibd4b5 z9i6I*A*P0Yi6=5orH8XX;5ii^n#VcAu4k_{fS3uw0Cx*z4}E4Cv1Yjf=4L?l)Qe@; zbyB!X&m?qJt#`{<3IT0#0k{!!zZd`#hMO}>002yav;uJI7RN$RyGa|UDTH%8Fu=fk zFfhywz$yv3w_#HVON#wS@teEqK^RDpDMynB0N@z@ojO5Tzlwj*z5$25fP{oG_rSQv zYH6rh2UiNfAgBQfCMQCf-&t!2124Y#;-VFBPhj#SZdM*b2ls;gb5EHW1T_15jJI}V zI=yYr^qV@CU3cCg7@Y6O6kNwX0b&>ppFKv7HW1`7T>qDDhBo-@yqJ3xMZrU(!FY`4wOcKwaa-4F$GcMCO~2l zC_>9+re@NhU1I*4N__m|A72Cj+Ni7n(jEX4*g$~T+aTQV`;)*ElxoBS0TkGR_x){Xf=aH;AiE(7uC9>@6Kj;gtV54dALYYatji&(x{CVqMzxO0!HRdQh!=?!jJv+6xD z*2wf@{OEAQ{R9}y9bX2trZ05 zI_MdiQ;ibGRK&~+y(;j~{3t%=mq{C~Gk40#Ro3Bi6ISP-K+o?v2|I8%SGiF-Br`q* ztu?a#1=YhnYve!2;-B!6;AX89gS%-g!Jzr&ZyNH;EA2~z#263*njxk`Kp+s*2GZbn zCJbOK9+WTJO$iSej(gKyNuzrkp4XZYj(i@g=?C+#P=?L@+u#1SMEWbFr0@=6Zha7Q z$V(Wg;ZCjtrZVTo)Z zK+^;}I*%zZ1y%|7UNMU-fMo?8c zJ`W?RN`udQooGe{Y3Dwo~nVNx`Ej2=_s zPez>T9>@G`awaK7FbN3oWoGhuZv#M+w)yHY*|~3a5waHF|M_?L@0o*G4Q#w?i2COr zB18awR+UV5Tmf}nBuOH~3I&lS>+;3T;=U^T*_*0N5gx3)i~)%5T!?62?X!SD=VJax zfuFZ;fD15ERtQGRq6Q|I0qY9Ja#NaT@ik99_0$r`WpBZS7Z@n_ddrxrRW>5_+(iU` zxDKY77-?*^>W23UT)p(tOUoPu_!i;pIS@P6ru+GHkMY(F79lzOta|njL!tS9``h1M zgt`}Acwu22xemZo!sA$(gwGXstKWZVhO|#U`%ixIlgn=uI0H89Ej#Ni zO+s{xJWv)I!UMs=`K1R5=yNUebT2LjfCv!*pO@<&8rxets@?@h2+J5hb31&JqG{0J zyjX|qC4mi$2=Z|Z*!ap7dqEgkhll6P4V8?iC2HN|Vzx-vP6ReWx_Y+S%v3$qC36?bz zE1hqwOuig{bj<&0o>?;~f@K#OgwxrSjj_94SxRUP?H2RG{QWPkjFM7Y;pzsMQ!Q}e z2Rsogwx`-7*8cB*|NDa1o)K=rA$UfK41bFW@ZEmm$7qN1SlRJkbc15}ApKZ2X918x zAaJQ@ZbGUz5r{7D5HMvzwt3tFU;XM=mrbW^@bFJ5pa zYY%+-@|V9no_Xe(rMJ|DySS@rz$v?u~(iJ8%Q{S^p4q+NNP1 z1YiOR;nsOznIP(!eFn?49M41etuF|CIjl|(f1oM$3;p(DImCRJ)(Hfa9=G4@Lx!t#nyIUo1k{u>tVs3~4 z)SLiuK)jf&Nh7W)@Q+4df;0#wD1!utXjSicPa_6TV^cWE`s8CPqSe|}oiAYkBHA>+ z*<9~{#%E@DfX@uf491_&Cx*z!%mEO=!@3t_>6#D>;wk3gT*&2rlHy~JJ+=TE!41Ok z`4a#t)qISHGwdVewHJsOLWk*Nf*4Nx&X!)!b$RGajhlLm`YYk?=FQRR}a9&qW#G6t; zSTUcfyfd8utfc6wfh@R(u>b$Y;nfsOJU+wx@6@%Zp1Uk>LECrP}2RE!*&S61P zK(1=B=Kv2k&Cmay7t_WsKK8MXEjU9Fpd1hms-9S{7(5h>z?bbA`XO`68p2ab_LgyX zYZRqT2M~Y;K_l(^4P)Y)Cf(T_8%nxk!k{@Q@Z&s^j0Zr}Fv`89{n;SI-P$m-A@&8g z_zZyarzJrrosP3*s^|1MG(ja7h6HAvc}G#St6eHhCit`!?ZRU zr@2(bhjvEtcOAe-b9Dbh`?~$Gzlauiz_>9_+7WX(28Tft;%LYAvicYTLhUudjE_Al z(O9iN5!Tv+VwkKyGCX9P*k94V2r4+R@3*b28S$d!fv>8Lc`wVveYuhdo*0670RurJ zgp^8_X4q#60<$Np0D%?3CmhjKt2ml_sL!w@@Ry}9|g022P;v9*O?*3bGnj=)c-w*L06^2yeupz|$bNdw&CCuGXU=mjib zEEXQ|v0p2mgn(%h>Cm^sLOF!8YlZ4wwDFJZvQw8vWDWe+ia zF#*iDN1p$iAH{l**6l0p#$JI1-5C)sNKC57_#rM$-+5d_0;wE>u*%ku8k>c!%54P8 z+-vm-cRVdF4IOOQb2uix1kT=uNV+$xf*?}&quCQW5$F2AgGGX>c@YB81J(-ZuV5Fh z>m)}Q@~i|_|8slL94mQ>;5oMxRe0f?GL;;A>KZx5_K~uOq1Y!h3+$9>Vm~W6n+6a5 z#u@{ba$xT<8~X|-(4CqB6|dx2{2({N+&Qq6H}nfUphf;8tfFJ~*ty;b9b+v(RH@=I zxfJ#?vZjD{LKeJ+2Y&OcJ|}Q-6SBe)obeBIyH>z>1|Gl_aMM`!W9#}MK$y83R#Vyr z(P#(+5S`RgMJStvks%%?YLHrNa+Rv~G9VCXjF42NtJ0@vdiBwUL>1!*sPp*4J%gD$Crb}p`qG!aw76zejKoy!z4TDmBp@Job!;n2 zy5LgqSGCBwAxpm6H#=e)uEAUn_QWHADf1!BI0n&SUMB3bY84!4ZnPM*z+Ak{-&(;H z=l%ZozhBlWD`Ea->&kLA))uswgXe<>v_kNkEAkjOk9nP}-=F^Ur)59TXZuvUUh9v+ zqw~R9Is6z?ZGQcarlC26iMh3Ku>u5xBHIgAc3eJw)**20Sihl9XePn6pl7&LAffx0 z6;SEpy$p05k5mv2@33apxRSpKR&b9%0AH*r9*lpe)8jiDvSlp7*w(dkV?lj3z@pnM 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 DIhT6( literal 0 HcmV?d00001 diff --git a/TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs b/TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs new file mode 100644 index 0000000..f4f41ad --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs @@ -0,0 +1,179 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using WindowsInput; +using NUnit.Framework; +using UnityEditor; +using UnityEngine; +using UnityEngine.TestTools; +using UnityEngine.SceneManagement; + +public class D_TargetTest +{ + private InputSimulator IS = new InputSimulator(); + private GameObject player, camera, secondcamera; + private GameObject target; + private List positions = new List(); + + [UnityTest, Order(0)] + public IEnumerator TargetCheck() + { + SceneManager.LoadScene("Application"); + yield return new WaitForSeconds(0.2f); + player = GameObject.Find("Player"); + camera = GameObject.Find("Main Camera"); + secondcamera = GameObject.Instantiate(new GameObject()); + secondcamera.transform.parent = player.transform; + secondcamera.transform.localPosition = camera.transform.localPosition; + secondcamera.transform.localRotation = camera.transform.localRotation; + secondcamera.transform.localScale = camera.transform.localScale; + camera.transform.parent = secondcamera.transform; + yield return null; + GameObject[] targets = PMHelper.FindObjectsWithLayer("Target"); + if (targets.Length == 0) + { + Assert.Fail("After the scene has been loaded there should be a target spawned on a \"Target\" layer"); + } + if (targets.Length != 1) + { + Assert.Fail("After the scene has been loaded there should be only one target on a scene"); + } + + target = targets[0]; + MeshFilter filter = PMHelper.Exist(target); + if (filter == null) + { + Assert.Fail("There should be component applied to target object"); + } + GameObject tmpPlane = GameObject.CreatePrimitive(PrimitiveType.Plane); + if (!filter.mesh == tmpPlane.GetComponent().mesh) + { + Assert.Fail("Target's mesh should be a plane"); + } + if (PMHelper.Exist(target) == null) + { + Assert.Fail("There should be component applied to target object"); + } + + GameObject.Destroy(tmpPlane); + + Collider col = PMHelper.Exist(target); + if (col == null) + { + Assert.Fail("There should be component applied to target object"); + } + if (!col.isTrigger) + { + Assert.Fail("Target's component should be triggerable"); + } + + secondcamera.transform.LookAt(target.transform.position); + Vector3 dir = (target.transform.position - camera.transform.position).normalized; + RaycastHit hit = PMHelper.findHit(camera.transform.position, dir, "Bounds"); + RaycastHit hit2 = PMHelper.findHit(camera.transform.position, dir, "Target"); + //Debug.DrawLine(player.transform.position,hit.point, Color.red,1000); + yield return null; + if (hit.normal != hit2.normal) + { + Assert.Fail("Spawned target should be parallel with the wall it's hanging on"); + } + + if (Vector3.Distance(hit2.point, player.transform.position) >= + Vector3.Distance(hit.point, player.transform.position)) + { + Assert.Fail("Target should be spawned a little closer to a center of a room, than walls, in order" + + "not to clip with them"); + } + + if (Vector3.Distance(hit.point,hit2.point)>0.5f) + { + Assert.Fail("Target should be spawned closer to a wall, like it is hanging on a wall"); + } + } + + [UnityTest, Order(1)] + public IEnumerator TargetDestroyCheck() + { + yield return null; + Time.timeScale = 20; + EditorWindow game=null; + var windows = (EditorWindow[])Resources.FindObjectsOfTypeAll(typeof(EditorWindow)); + foreach(var window in windows) + { + if(window != null && window.GetType().FullName == "UnityEditor.GameView") + { + game = window; + break; + } + } + + if (!game) + { + Assert.Fail("Please, open, the \"Game\" window!"); + } + + game.maximized = true; + yield return null; + float X = game.position.center.x; + X = X * 65535 / Screen.width/2; + float Y = game.position.center.y; + Y = Y * 65535 / Screen.height/2; + IS.Mouse.MoveMouseTo(Convert.ToDouble(X), Convert.ToDouble(Y)); + yield return null; + IS.Mouse.LeftButtonClick(); + yield return new WaitForSeconds(1); + for (int i = 0; i < 9; i++) + { + GameObject[] targets = PMHelper.FindObjectsWithLayer("Target"); + yield return null; + if (targets.Length == 0) + { + Assert.Fail("When the target is been destroyed there should be spawned another one"); + } + + if (targets.Length != 1) + { + Assert.Fail("There should always be only one target on a scene"); + } + + if (targets[0] == target) + { + Assert.Fail("Target is not being destroyed by clicking on it"); + } + + target = targets[0]; + if (positions.Contains(target.transform.position)) + { + Assert.Fail("Targets should be spawned randomly"); + } + positions.Add(target.transform.position); + yield return null; + secondcamera.transform.LookAt(target.transform.position); + //Repeat target-correct check + Vector3 dir = (target.transform.position - camera.transform.position).normalized; + RaycastHit hit = PMHelper.findHit(camera.transform.position, dir, "Bounds"); + RaycastHit hit2 = PMHelper.findHit(camera.transform.position, dir, "Target"); + yield return null; + if (hit.normal != hit2.normal) + { + Assert.Fail("Spawned target should be parallel with the wall it's hanging on"); + } + + if (Vector3.Distance(hit2.point, player.transform.position) >= + Vector3.Distance(hit.point, player.transform.position)) + { + Assert.Fail("Target should be spawned a little closer to a center of a room, than walls, in order" + + "not to clip with them"); + } + if (Vector3.Distance(hit.point,hit2.point)>0.5f) + { + Assert.Fail("Target should be spawned closer to a wall, like it is hanging on a wall"); + } + // + yield return new WaitForSeconds(1); + IS.Mouse.LeftButtonClick(); + yield return new WaitForSeconds(1); + } + game.maximized = false; + } +} \ No newline at end of file From 2b25dc69679b0180b32807a3fa15611af92ac752 Mon Sep 17 00:00:00 2001 From: SOL <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:43:54 +0300 Subject: [PATCH 04/16] Stage5: Add --- .../Assets/Tests/PlayMode/E_ScoreLoseTest.cs | 309 ++++++++++++++++++ .../Assets/Tests/PlayMode/ShootScript.cs | 56 ++++ 2 files changed, 365 insertions(+) create mode 100644 TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs create mode 100644 TrainingField/Assets/Tests/PlayMode/ShootScript.cs diff --git a/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs b/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs new file mode 100644 index 0000000..9df4d99 --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs @@ -0,0 +1,309 @@ +using System; +using System.Collections; +using WindowsInput; +using WindowsInput.Native; +using NUnit.Framework; +using UnityEditor; +using UnityEngine; +using UnityEngine.SceneManagement; +using UnityEngine.TestTools; +using UnityEngine.UI; + +public class E_ScoreLoseTest +{ + private InputSimulator IS = new InputSimulator(); + private GameObject crosshair, timer, score, maxScore; + private GameObject canvas, panel; + [UnityTest, Order(0)] + public IEnumerator ObjectsCheck() + { + SceneManager.LoadScene("Application"); + yield return null; + canvas = GameObject.Find("Canvas"); + crosshair = PMHelper.Exist("Crosshair"); + if (crosshair == null) + { + Assert.Fail("There is no crosshair object on scene, named \"Crosshair\""); + } + if (!PMHelper.Child(crosshair, canvas)) + { + Assert.Fail("\"Crosshair\" object should be a child of \"Canvas\" object"); + } + + RectTransform trCH = PMHelper.Exist(crosshair); + if (trCH == null) + { + Assert.Fail("There should be a component on \"Crosshair\" object"); + } + + if (trCH.anchorMin.x != 0.5 || trCH.anchorMin.y != 0.5 || trCH.anchorMax.x != 0.5 || trCH.anchorMax.y != 0.5) + { + Assert.Fail("\"Crosshair\" object should be placed at center of screen, so anchors should equal 0.5"); + } + if (PMHelper.Exist(crosshair) == null) + { + Assert.Fail("There should be an component on \"Crosshair\" object"); + } + + timer = PMHelper.Exist("Timer"); + if (timer == null) + { + Assert.Fail("There is no timer object on scene, named \"Timer\""); + } + if (!PMHelper.Child(timer, canvas)) + { + Assert.Fail("\"Timer\" object should be a child of \"Canvas\" object"); + } + RectTransform trTimer = PMHelper.Exist(timer); + if (trTimer == null) + { + Assert.Fail("There should be a component on \"Timer\" object"); + } + if (!PMHelper.CheckRectTransform(trTimer)) + { + Assert.Fail("Anchors of \"Timer\"'s component are incorrect or it's offsets" + + "are not equal to zero, might be troubles with different resolutions"); + } + if (PMHelper.Exist(timer) == null) + { + Assert.Fail("There should be an component on \"Timer\" object"); + } + + score = PMHelper.Exist("Score"); + if (score == null) + { + Assert.Fail("There is no score object on scene, named \"Score\""); + } + if (!PMHelper.Child(score, canvas)) + { + Assert.Fail("\"Score\" object should be a child of \"Canvas\" object"); + } + RectTransform trScore = PMHelper.Exist(score); + if (trScore == null) + { + Assert.Fail("There should be a component on \"Score\" object"); + } + if (!PMHelper.CheckRectTransform(trScore)) + { + Assert.Fail("Anchors of \"Score\"'s component are incorrect or it's offsets" + + "are not equal to zero, might be troubles with different resolutions"); + } + if (PMHelper.Exist(score) == null) + { + Assert.Fail("There should be a component on \"Score\" object"); + } + yield return null; + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + panel = GameObject.Find("Panel"); + + maxScore = PMHelper.Exist("MaxScore"); + if (maxScore == null) + { + Assert.Fail("There is no max score object on scene, named \"MaxScore\""); + } + if (!PMHelper.Child(maxScore, panel)) + { + Assert.Fail("\"MaxScore\" object should be a child of \"Panel\" object"); + } + RectTransform trMax = PMHelper.Exist(maxScore); + if (trMax == null) + { + Assert.Fail("There should be a component on \"MaxScore\" object"); + } + if (!PMHelper.CheckRectTransform(trMax)) + { + Assert.Fail("Anchors of \"MaxScore\"'s component are incorrect or it's offsets" + + "are not equal to zero, might be troubles with different resolutions"); + } + if (PMHelper.Exist(maxScore) == null) + { + Assert.Fail("There should be a component on \"MaxScore\" object"); + } + } + + [UnityTest, Order(1)] + public IEnumerator TimerCheck() + { + Time.timeScale = 1; + SceneManager.LoadScene("Application"); + yield return null; + Scene loaded = SceneManager.GetActiveScene(); + String loadedName = SceneManager.GetActiveScene().name; + yield return new WaitForSeconds(1.5f); + if (SceneManager.GetActiveScene() != loaded) + { + Assert.Fail("The timer must be at least 2 seconds long"); + } + + yield return new WaitForSeconds(3); + if (SceneManager.GetActiveScene() == loaded) + { + Assert.Fail("The timer must be maximum 3 seconds long"); + } + + if (!SceneManager.GetActiveScene().name.Equals(loadedName)) + { + Assert.Fail("Scene should be reloaded when the timer is over"); + } + SceneManager.LoadScene("Application"); + yield return null; + timer = GameObject.Find("Timer"); + Image timerImg = timer.GetComponent(); + if (timerImg.sprite == null) + { + Assert.Fail("\"Timer\"'s sprite is missing"); + } + if (timerImg.type != Image.Type.Filled) + { + Assert.Fail("\"Timer\"'s image type should be \"filled\" in order to set it's fill amount"); + } + + float amWas = timerImg.fillAmount; + + for (int i = 0; i < 10; i++) + { + yield return new WaitForSeconds(0.1f); + if (!(timerImg.fillAmount < amWas)) + { + Assert.Fail("\"Timer\"'s image fill amount should decrease with time"); + } + amWas = timerImg.fillAmount; + } + } + + [UnityTest, Order(2)] + public IEnumerator TimerUpdateCheck() + { + SceneManager.LoadScene("Application"); + yield return null; + GameObject player = GameObject.Find("Player"); + ShootScript ss = player.AddComponent(); + Scene loaded = SceneManager.GetActiveScene(); + Time.timeScale = 2; + for (int i = 0; i < 5; i++) + { + yield return new WaitForSeconds(1f); + float amWas = GameObject.Find("Timer").GetComponent().fillAmount; + GameObject target = PMHelper.FindObjectWithLayer("Target"); + yield return null; + ss.shoot(target.transform.position); + yield return new WaitForSeconds(0.1f); + if (GameObject.Find("Timer").GetComponent().fillAmount < amWas) + { + Assert.Fail("Timer's fill amount should increase to maximum when new target was spawned"); + } + } + + if (SceneManager.GetActiveScene() != loaded) + { + Assert.Fail("Timer should be updated when a new target spawns."); + } + yield return null; + } + + [UnityTest, Order(3)] + public IEnumerator ScoreTest() + { + SceneManager.LoadScene("Application"); + yield return new WaitForSeconds(2); + GameObject player = GameObject.Find("Player"); + ShootScript ss = player.AddComponent(); + Text score = GameObject.Find("Score").GetComponent(); + int was = 0; + if (!score.text.Equals("0")) + { + Assert.Fail("After scene was loaded, the \"Score\" text should be \"0\""); + } + for (int i = 0; i < 5; i++) + { + yield return null; + GameObject target = PMHelper.FindObjectWithLayer("Target"); + yield return null; + ss.shoot(target.transform.position); + yield return new WaitForSeconds(0.1f); + int became; + bool correct = int.TryParse(score.text, out became); + if (!correct) + { + Assert.Fail("\"Score\"'s text should always be an integer value"); + } + + if (was + 10 != became) + { + Assert.Fail("When the target is shot, points should increase by 10"); + } + was = became; + } + yield return null; + } + + [UnityTest, Order(4)] + public IEnumerator MaxScoreTest() + { + PlayerPrefs.DeleteAll(); + SceneManager.LoadScene("Application"); + yield return null; + GameObject player = GameObject.Find("Player"); + ShootScript ss = player.AddComponent(); + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + Text maxScoreText = GameObject.Find("MaxScore").GetComponent(); + if (!maxScoreText.text.Equals("0")) + { + Assert.Fail("\"MaxScore\"'s text by default should be \"0\""); + } + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + for (int i = 0; i < 3; i++) + { + yield return null; + GameObject target = PMHelper.FindObjectWithLayer("Target"); + yield return null; + ss.shoot(target.transform.position); + yield return new WaitForSeconds(0.1f); + } + + Time.timeScale = 3; + yield return new WaitForSeconds(8); + Time.timeScale = 1; + + SceneManager.LoadScene("Application"); + yield return new WaitForSeconds(0.25f); + player = GameObject.Find("Player"); + ss = player.AddComponent(); + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + maxScoreText = GameObject.Find("MaxScore").GetComponent(); + if (!maxScoreText.text.Equals("30")) + { + Assert.Fail("\"MaxScore\"'s text should increase when you've earned more points"); + } + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + for (int i = 0; i < 2; i++) + { + yield return null; + GameObject target = PMHelper.FindObjectWithLayer("Target"); + yield return null; + ss.shoot(target.transform.position); + yield return new WaitForSeconds(0.1f); + } + + Time.timeScale = 3; + yield return new WaitForSeconds(8); + Time.timeScale = 1; + + SceneManager.LoadScene("Application"); + yield return null; + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + maxScoreText = GameObject.Find("MaxScore").GetComponent(); + if (!maxScoreText.text.Equals("30")) + { + Assert.Fail("\"MaxScore\"'s text should not change when you've earned less points"); + } + IS.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); + yield return null; + } +} \ No newline at end of file diff --git a/TrainingField/Assets/Tests/PlayMode/ShootScript.cs b/TrainingField/Assets/Tests/PlayMode/ShootScript.cs new file mode 100644 index 0000000..13d0d85 --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/ShootScript.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections; +using UnityEngine; +using WindowsInput; +using UnityEditor; + +public class ShootScript : MonoBehaviour +{ + private InputSimulator IS = new InputSimulator(); + private GameObject secondCamera; + + private GameObject camera; + + public void shoot(Vector3 where, bool scope = false) + { + if (camera == null) + { + camera = GameObject.Find("Main Camera"); + } + if (secondCamera == null) + { + secondCamera = Instantiate(new GameObject()); + secondCamera.transform.parent = transform; + secondCamera.transform.localPosition = camera.transform.localPosition; + secondCamera.transform.localRotation = camera.transform.localRotation; + secondCamera.transform.localScale = camera.transform.localScale; + camera.transform.parent = secondCamera.transform; + } + StartCoroutine(hitTarget(where, scope)); + } + + public IEnumerator hitTarget(Vector3 where, bool scope) + { + EditorWindow game=null; + var windows = (EditorWindow[])Resources.FindObjectsOfTypeAll(typeof(EditorWindow)); + foreach(var window in windows) + { + if(window != null && window.GetType().FullName == "UnityEditor.GameView") + { + game = window; + break; + } + } + game.maximized = true; + yield return null; + float X = game.position.center.x; + X = X * 65535 / Screen.width/2; + float Y = game.position.center.y; + Y = Y * 65535 / Screen.height/2; + IS.Mouse.MoveMouseTo(Convert.ToDouble(X), Convert.ToDouble(Y)); + secondCamera.transform.LookAt(where); + yield return null; + if(!scope) + IS.Mouse.LeftButtonClick(); + } +} From 50900bc36ec6c171d7411151eb73db34c1fd89f7 Mon Sep 17 00:00:00 2001 From: SOL <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:44:33 +0300 Subject: [PATCH 05/16] Stage6: Add --- .../Tests/PlayMode/F_RaycastScoreTest.cs | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs diff --git a/TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs b/TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs new file mode 100644 index 0000000..d12f74f --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections; +using WindowsInput; +using WindowsInput.Native; +using NUnit.Framework; +using UnityEditor; +using UnityEngine; +using UnityEngine.SceneManagement; +using UnityEngine.TestTools; +using UnityEngine.UI; +using Random = UnityEngine.Random; + +public class F_RaycastScoreTest +{ + private InputSimulator IS = new InputSimulator(); + private GameObject score; + + [UnityTest, Order(0)] + public IEnumerator RaycastCheck() + { + Time.timeScale = 5; + SceneManager.LoadScene("Application"); + yield return new WaitForSeconds(2); + GameObject player = GameObject.Find("Player"); + ShootScript ss = player.AddComponent(); + Text score = GameObject.Find("Score").GetComponent(); + int was = 0; + for (int i = 0; i < 20; i++) + { + yield return null; + GameObject target = PMHelper.FindObjectWithLayer("Target"); + Bounds bounds = target.GetComponent().bounds; + + float x=0, y=0, z=0, radius=0; + if (bounds.size.x > bounds.size.y && bounds.size.z > bounds.size.y) + { + x = Random.Range(bounds.center.x - bounds.size.x / 2, bounds.center.x + bounds.size.x / 2); + y = bounds.center.y; + z = Random.Range(bounds.center.z - bounds.size.z / 2, bounds.center.z + bounds.size.z / 2); + radius = bounds.size.x/2; + }else if (bounds.size.y > bounds.size.x && bounds.size.z > bounds.size.x) + { + x = bounds.center.x; + y = Random.Range(bounds.center.y - bounds.size.y / 2, bounds.center.y + bounds.size.y / 2); + z = Random.Range(bounds.center.z - bounds.size.z / 2, bounds.center.z + bounds.size.z / 2); + radius = bounds.size.z/2; + }else if (bounds.size.y > bounds.size.z && bounds.size.x > bounds.size.z) + { + x = Random.Range(bounds.center.x - bounds.size.x / 2, bounds.center.x + bounds.size.x / 2); + y = Random.Range(bounds.center.y - bounds.size.y / 2, bounds.center.y + bounds.size.y / 2); + z = bounds.center.z; + radius = bounds.size.x/2; + } + Vector3 where = new Vector3(x, y, z); + yield return null; + ss.shoot(where, true); + yield return new WaitForSeconds(0.1f); + RaycastHit[] hit = Physics.RaycastAll(Camera.main.transform.position, Camera.main.transform.forward); + RaycastHit exact = Array.Find(hit, e => e.collider.gameObject.layer == LayerMask.NameToLayer("Target")); + IS.Mouse.LeftButtonClick(); + yield return new WaitForSeconds(0.1f); + float dist = Vector3.Distance(exact.point, bounds.center); + + int points; + if (dist > radius) + { + points = 1; + }else if(dist/radius>2f/3f) + { + points = 3; + }else if(dist/radius>1f/6f) + { + points = 5; + }else + { + points = 10; + } + int became; + bool correct = int.TryParse(score.text, out became); + if (!correct) + { + Assert.Fail("\"Score\"'s text should always be an integer value"); + } + + if (became-was!=points) + { + Assert.Fail("When the target is shot, points should increase by the value mentioned in task"); + } + was = became; + } + yield return null; + } +} From 1a187fc4bdb475ce0179104e5817554d4aefd240 Mon Sep 17 00:00:00 2001 From: Ignashov Vadim <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 15:10:40 +0300 Subject: [PATCH 06/16] Update .gitignore --- .gitignore | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index cef6675..7407f60 100644 --- a/.gitignore +++ b/.gitignore @@ -2,13 +2,13 @@ # # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore # -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Mm]emoryCaptures/ +*/[Ll]ibrary/ +*/[Tt]emp/ +*/[Oo]bj/ +*/[Bb]uild/ +*/[Bb]uilds/ +*/[Ll]ogs/ +*/[Mm]emoryCaptures/ # Asset meta data should only be ignored when the corresponding asset is also ignored !/[Aa]ssets/**/*.meta @@ -56,4 +56,4 @@ sysinfo.txt *.unitypackage # Crashlytics generated file -crashlytics-build.properties \ No newline at end of file +crashlytics-build.properties From acf9eaef42973ebd678d6857ef381fafe67414c6 Mon Sep 17 00:00:00 2001 From: Ignashov Vadim <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 15:11:00 +0300 Subject: [PATCH 07/16] Update .gitignore --- .gitignore | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index cef6675..7407f60 100644 --- a/.gitignore +++ b/.gitignore @@ -2,13 +2,13 @@ # # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore # -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Mm]emoryCaptures/ +*/[Ll]ibrary/ +*/[Tt]emp/ +*/[Oo]bj/ +*/[Bb]uild/ +*/[Bb]uilds/ +*/[Ll]ogs/ +*/[Mm]emoryCaptures/ # Asset meta data should only be ignored when the corresponding asset is also ignored !/[Aa]ssets/**/*.meta @@ -56,4 +56,4 @@ sysinfo.txt *.unitypackage # Crashlytics generated file -crashlytics-build.properties \ No newline at end of file +crashlytics-build.properties From 5678d82a871a002b1fb5762934cff4e4be7e09d2 Mon Sep 17 00:00:00 2001 From: Ignashov Vadim <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 15:11:17 +0300 Subject: [PATCH 08/16] Update .gitignore --- .gitignore | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index cef6675..7407f60 100644 --- a/.gitignore +++ b/.gitignore @@ -2,13 +2,13 @@ # # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore # -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Mm]emoryCaptures/ +*/[Ll]ibrary/ +*/[Tt]emp/ +*/[Oo]bj/ +*/[Bb]uild/ +*/[Bb]uilds/ +*/[Ll]ogs/ +*/[Mm]emoryCaptures/ # Asset meta data should only be ignored when the corresponding asset is also ignored !/[Aa]ssets/**/*.meta @@ -56,4 +56,4 @@ sysinfo.txt *.unitypackage # Crashlytics generated file -crashlytics-build.properties \ No newline at end of file +crashlytics-build.properties From 2dfd6d8a95c2773f4f2600bc13935a027296026f Mon Sep 17 00:00:00 2001 From: Ignashov Vadim <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 15:11:35 +0300 Subject: [PATCH 09/16] Update .gitignore --- .gitignore | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index cef6675..7407f60 100644 --- a/.gitignore +++ b/.gitignore @@ -2,13 +2,13 @@ # # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore # -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Mm]emoryCaptures/ +*/[Ll]ibrary/ +*/[Tt]emp/ +*/[Oo]bj/ +*/[Bb]uild/ +*/[Bb]uilds/ +*/[Ll]ogs/ +*/[Mm]emoryCaptures/ # Asset meta data should only be ignored when the corresponding asset is also ignored !/[Aa]ssets/**/*.meta @@ -56,4 +56,4 @@ sysinfo.txt *.unitypackage # Crashlytics generated file -crashlytics-build.properties \ No newline at end of file +crashlytics-build.properties From 18c11761f63aacaae24b4aa9707302259f3719d2 Mon Sep 17 00:00:00 2001 From: Ignashov Vadim <48078801+ImSOLty@users.noreply.github.com> Date: Thu, 7 Apr 2022 15:11:51 +0300 Subject: [PATCH 10/16] Update .gitignore --- .gitignore | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index cef6675..7407f60 100644 --- a/.gitignore +++ b/.gitignore @@ -2,13 +2,13 @@ # # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore # -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Mm]emoryCaptures/ +*/[Ll]ibrary/ +*/[Tt]emp/ +*/[Oo]bj/ +*/[Bb]uild/ +*/[Bb]uilds/ +*/[Ll]ogs/ +*/[Mm]emoryCaptures/ # Asset meta data should only be ignored when the corresponding asset is also ignored !/[Aa]ssets/**/*.meta @@ -56,4 +56,4 @@ sysinfo.txt *.unitypackage # Crashlytics generated file -crashlytics-build.properties \ No newline at end of file +crashlytics-build.properties From f0c60c77fce8beeb6095c28486427ccfe68939f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fr=C4=B1?= Date: Sun, 29 May 2022 21:39:06 +0300 Subject: [PATCH 11/16] stage 1 is done --- TrainingField/Assets/Scenes/Application.unity | 2629 +++++++++++++++++ .../Assets/Scenes/Application.unity.meta | 7 + TrainingField/Packages/manifest.json | 1 + TrainingField/Packages/packages-lock.json | 370 +++ .../ProjectSettings/EditorBuildSettings.asset | 5 +- .../ProjectSettings/GraphicsSettings.asset | 6 +- .../com.unity.probuilder/Settings.json | 168 ++ .../ProjectSettings/TagManager.asset | 4 +- .../UserSettings/EditorUserSettings.asset | 27 + 9 files changed, 3211 insertions(+), 6 deletions(-) create mode 100644 TrainingField/Assets/Scenes/Application.unity create mode 100644 TrainingField/Assets/Scenes/Application.unity.meta create mode 100644 TrainingField/Packages/packages-lock.json create mode 100644 TrainingField/ProjectSettings/Packages/com.unity.probuilder/Settings.json create mode 100644 TrainingField/UserSettings/EditorUserSettings.asset diff --git a/TrainingField/Assets/Scenes/Application.unity b/TrainingField/Assets/Scenes/Application.unity new file mode 100644 index 0000000..23bda8d --- /dev/null +++ b/TrainingField/Assets/Scenes/Application.unity @@ -0,0 +1,2629 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + 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_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 1605611744} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &302929807 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 302929809} + - component: {fileID: 302929808} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &302929808 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302929807} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &302929809 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302929807} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &333885124 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333885129} + - component: {fileID: 333885128} + - component: {fileID: 333885127} + - component: {fileID: 333885126} + - component: {fileID: 333885125} + m_Layer: 6 + m_Name: Room + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &333885125 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333885124} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 544011233} +--- !u!33 &333885126 +MeshFilter: + m_ObjectHideFlags: 10 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333885124} + m_Mesh: {fileID: 544011233} +--- !u!23 &333885127 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333885124} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &333885128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333885124} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MeshFormatVersion: 1 + m_Faces: + - m_Indexes: 000000000100000002000000030000000000000002000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 1 + - m_Indexes: 070000000500000006000000070000000400000005000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 2 + - m_Indexes: 08000000090000000a0000000b000000080000000a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 1 + - m_Indexes: 0c0000000d0000000e0000000f0000000c0000000e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 1 + - m_Indexes: 120000001000000011000000120000001300000010000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 2 + - m_Indexes: 150000001700000014000000150000001600000017000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 2 + - m_Indexes: 18000000190000001a0000001b000000180000001a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 5 + - m_Indexes: 1f0000001d0000001e0000001f0000001c0000001d000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 6 + - m_Indexes: 230000002000000021000000220000002300000021000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 260000002400000025000000260000002700000024000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 2b00000028000000290000002a0000002b00000029000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 2f0000002c0000002e0000002c0000002d0000002e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 310000003300000030000000310000003200000033000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 340000003500000036000000340000003600000037000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 38000000390000003a0000003b000000380000003a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 5 + - m_Indexes: 3c0000003d0000003e0000003f0000003c0000003e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 5 + - m_Indexes: 420000004000000041000000420000004300000040000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 6 + - m_Indexes: 450000004700000044000000450000004600000047000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 6 + - m_Indexes: 48000000490000004a0000004b000000480000004a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 4c0000004e0000004f0000004c0000004d0000004e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 520000005000000051000000520000005300000050000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 550000005600000057000000540000005500000057000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 58000000590000005a0000005b000000580000005a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 5f0000005c0000005d0000005e0000005f0000005d000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 3 + - m_Indexes: 600000006100000062000000630000006000000062000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 670000006400000065000000660000006700000065000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + - m_Indexes: 6a00000068000000690000006a0000006b00000068000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 6e0000006c0000006d0000006e0000006f0000006c000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 710000007300000070000000710000007200000073000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 740000007600000077000000740000007500000076000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: 4 + - m_Indexes: 78000000790000007a000000790000007b0000007a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 7c0000007d0000007e0000007d0000007f0000007e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 800000008100000082000000810000008300000082000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 840000008500000086000000850000008700000086000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 88000000890000008a000000890000008b0000008a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 8c0000008d0000008e0000008d0000008f0000008e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 900000009100000092000000910000009300000092000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 940000009500000096000000950000009700000096000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 98000000990000009a000000990000009b0000009a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 9c0000009d0000009e0000009d0000009f0000009e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: a0000000a1000000a2000000a1000000a3000000a2000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: a4000000a5000000a6000000a5000000a7000000a6000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: a8000000a9000000aa000000a9000000ab000000aa000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: ac000000ad000000ae000000ad000000af000000ae000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: b0000000b1000000b2000000b1000000b3000000b2000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: b4000000b5000000b6000000b5000000b7000000b6000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + m_SharedVertices: + - m_Vertices: 000000000d0000002600000030000000 + - m_Vertices: 010000001800000025000000 + - m_Vertices: 020000001b00000080000000b5000000 + - m_Vertices: 2200000082000000b7000000 + - m_Vertices: 030000000e00000085000000b4000000 + - m_Vertices: 210000002a00000087000000b6000000 + - m_Vertices: 040000003d00000050000000 + - m_Vertices: 05000000160000005300000068000000 + - m_Vertices: 060000001500000090000000a9000000 + - m_Vertices: 490000005800000092000000ab000000 + - m_Vertices: 070000003e000000a1000000a8000000 + - m_Vertices: 48000000a3000000aa000000 + - m_Vertices: 080000001d00000035000000 + - m_Vertices: 090000000c0000003100000034000000 + - m_Vertices: 0a0000000f000000840000008d000000 + - m_Vertices: 290000002e000000860000008f000000 + - m_Vertices: 0b0000001e0000007d0000008c000000 + - m_Vertices: 2d0000007f0000008e000000 + - m_Vertices: 100000004600000075000000 + - m_Vertices: 1100000045000000890000009c000000 + - m_Vertices: 610000008b0000009e000000 + - m_Vertices: 12000000140000008800000091000000 + - m_Vertices: 59000000600000008a00000093000000 + - m_Vertices: 13000000170000006b00000076000000 + - m_Vertices: 19000000240000003800000055000000 + - m_Vertices: 1a0000003b00000081000000b0000000 + - m_Vertices: 230000004e00000083000000b2000000 + - m_Vertices: 1c000000360000004000000071000000 + - m_Vertices: 1f000000410000007c00000095000000 + - m_Vertices: 2c000000650000007e00000097000000 + - m_Vertices: 200000002b0000004d0000007a000000af000000 + - m_Vertices: 5e00000078000000ad000000 + - m_Vertices: 2700000033000000560000006d000000 + - m_Vertices: 280000002f000000660000007b0000009a000000 + - m_Vertices: 5d0000007900000098000000 + - m_Vertices: 32000000370000006e00000070000000 + - m_Vertices: 390000003c0000005100000054000000 + - m_Vertices: 3a0000003f000000a0000000b1000000 + - m_Vertices: 4b0000004f000000a2000000b3000000 + - m_Vertices: 4200000044000000940000009d000000 + - m_Vertices: 6200000064000000960000009f000000 + - m_Vertices: 43000000470000007200000074000000 + - m_Vertices: 4a0000004c0000005b000000a7000000ae000000 + - m_Vertices: 5f000000a5000000ac000000 + - m_Vertices: 5200000057000000690000006c000000 + - m_Vertices: 5a00000063000000670000009b000000a6000000 + - m_Vertices: 5c00000099000000a4000000 + - m_Vertices: 6a0000006f0000007300000077000000 + m_SharedTextures: [] + m_Positions: + - {x: 39.046192, y: 0, z: 0} + - {x: 40, y: 0, z: 0} + - {x: 40, y: 1, z: 0} + - {x: 39.046192, y: 1, z: 0} + - {x: 40, y: 0, z: -53} + - {x: 39.046192, y: 0, z: -53} + - {x: 39.046192, y: 1, z: -53} + - {x: 40, y: 1, z: -53} + - {x: 0, y: 0, z: 0} + - {x: 1.038826, y: 0, z: 0} + - {x: 1.038826, y: 1, z: 0} + - {x: 0, y: 1, z: 0} + - {x: 1.038826, y: 0, z: 0} + - {x: 39.046192, y: 0, z: 0} + - {x: 39.046192, y: 1, z: 0} + - {x: 1.038826, y: 1, z: 0} + - {x: 0, y: 0, z: -53} + - {x: 0, y: 1, z: -53} + - {x: 1.038826, y: 1, z: -53} + - {x: 1.038826, y: 0, z: -53} + - {x: 1.038826, y: 1, z: -53} + - {x: 39.046192, y: 1, z: -53} + - {x: 39.046192, y: 0, z: -53} + - {x: 1.038826, y: 0, z: -53} + - {x: 40, y: 0, z: 0} + - {x: 39.999996, y: 0, z: -1.0385742} + - {x: 39.999996, y: 1, z: -1.0385742} + - {x: 40, y: 1, z: 0} + - {x: 0, y: 0, z: -1.0385742} + - {x: 0, y: 0, z: 0} + - {x: 0, y: 1, z: 0} + - {x: 0, y: 1, z: -1.0385742} + - {x: 39.046192, y: -12.462496, z: -1.0385742} + - {x: 39.046192, y: -12.462496, z: 0} + - {x: 39.999996, y: -12.462496, z: 0} + - {x: 39.999996, y: -12.462496, z: -1.0385742} + - {x: 39.999996, y: 0, z: -1.0385742} + - {x: 40, y: 0, z: 0} + - {x: 39.046192, y: 0, z: 0} + - {x: 39.046192, y: 0, z: -1.0385742} + - {x: 1.038826, y: -12.462496, z: -1.0385742} + - {x: 1.038826, y: -12.462496, z: 0} + - {x: 39.046192, y: -12.462496, z: 0} + - {x: 39.046192, y: -12.462496, z: -1.0385742} + - {x: 0, y: -12.462496, z: -1.0385742} + - {x: 0, y: -12.462496, z: 0} + - {x: 1.038826, y: -12.462496, z: 0} + - {x: 1.038826, y: -12.462496, z: -1.0385742} + - {x: 39.046192, y: 0, z: 0} + - {x: 1.038826, y: 0, z: 0} + - {x: 1.038826, y: 0, z: -1.0385742} + - {x: 39.046192, y: 0, z: -1.0385742} + - {x: 1.038826, y: 0, z: 0} + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: -1.0385742} + - {x: 1.038826, y: 0, z: -1.0385742} + - {x: 39.999996, y: 0, z: -1.0385742} + - {x: 39.999996, y: 0, z: -51.937317} + - {x: 39.999996, y: 1, z: -51.937317} + - {x: 39.999996, y: 1, z: -1.0385742} + - {x: 39.999996, y: 0, z: -51.937317} + - {x: 40, y: 0, z: -53} + - {x: 40, y: 1, z: -53} + - {x: 39.999996, y: 1, z: -51.937317} + - {x: 0, y: 0, z: -1.0385742} + - {x: 0, y: 1, z: -1.0385742} + - {x: 0, y: 1, z: -51.937317} + - {x: 0, y: 0, z: -51.937317} + - {x: 0, y: 1, z: -51.937317} + - {x: 0, y: 1, z: -53} + - {x: 0, y: 0, z: -53} + - {x: 0, y: 0, z: -51.937317} + - {x: 39.999996, y: -12.462496, z: -53} + - {x: 39.046192, y: -12.462496, z: -53} + - {x: 39.046192, y: -12.462496, z: -51.937317} + - {x: 39.999996, y: -12.462496, z: -51.937317} + - {x: 39.046192, y: -12.462496, z: -51.937317} + - {x: 39.046192, y: -12.462496, z: -1.0385742} + - {x: 39.999996, y: -12.462496, z: -1.0385742} + - {x: 39.999996, y: -12.462496, z: -51.937317} + - {x: 40, y: 0, z: -53} + - {x: 39.999996, y: 0, z: -51.937317} + - {x: 39.046192, y: 0, z: -51.937317} + - {x: 39.046192, y: 0, z: -53} + - {x: 39.999996, y: 0, z: -51.937317} + - {x: 39.999996, y: 0, z: -1.0385742} + - {x: 39.046192, y: 0, z: -1.0385742} + - {x: 39.046192, y: 0, z: -51.937317} + - {x: 39.046192, y: -12.462496, z: -53} + - {x: 1.038826, y: -12.462496, z: -53} + - {x: 1.038826, y: -12.462496, z: -51.937317} + - {x: 39.046192, y: -12.462496, z: -51.937317} + - {x: 1.038826, y: 1, z: -51.937317} + - {x: 1.038826, y: 1, z: -1.0385742} + - {x: 39.046192, y: 1, z: -1.0385742} + - {x: 39.046192, y: 1, z: -51.937317} + - {x: 1.038826, y: -12.462496, z: -53} + - {x: 0, y: -12.462496, z: -53} + - {x: 0, y: -12.462496, z: -51.937317} + - {x: 1.038826, y: -12.462496, z: -51.937317} + - {x: 0, y: -12.462496, z: -51.937317} + - {x: 0, y: -12.462496, z: -1.0385742} + - {x: 1.038826, y: -12.462496, z: -1.0385742} + - {x: 1.038826, y: -12.462496, z: -51.937317} + - {x: 39.046192, y: 0, z: -53} + - {x: 39.046192, y: 0, z: -51.937317} + - {x: 1.038826, y: 0, z: -51.937317} + - {x: 1.038826, y: 0, z: -53} + - {x: 39.046192, y: 0, z: -51.937317} + - {x: 39.046192, y: 0, z: -1.0385742} + - {x: 1.038826, y: 0, z: -1.0385742} + - {x: 1.038826, y: 0, z: -51.937317} + - {x: 1.038826, y: 0, z: -1.0385742} + - {x: 0, y: 0, z: -1.0385742} + - {x: 0, y: 0, z: -51.937317} + - {x: 1.038826, y: 0, z: -51.937317} + - {x: 0, y: 0, z: -51.937317} + - {x: 0, y: 0, z: -53} + - {x: 1.038826, y: 0, z: -53} + - {x: 1.038826, y: 0, z: -51.937317} + - {x: 39.046192, y: 1, z: -1.0385742} + - {x: 1.038826, y: 1, z: -1.0385742} + - {x: 39.046192, y: -12.462496, z: -1.0385742} + - {x: 1.038826, y: -12.462496, z: -1.0385742} + - {x: 0, y: 1, z: -1.0385742} + - {x: 0, y: 1, z: 0} + - {x: 0, y: -12.462496, z: -1.0385742} + - {x: 0, y: -12.462496, z: 0} + - {x: 40, y: 1, z: 0} + - {x: 39.999996, y: 1, z: -1.0385742} + - {x: 39.999996, y: -12.462496, z: 0} + - {x: 39.999996, y: -12.462496, z: -1.0385742} + - {x: 1.038826, y: 1, z: 0} + - {x: 39.046192, y: 1, z: 0} + - {x: 1.038826, y: -12.462496, z: 0} + - {x: 39.046192, y: -12.462496, z: 0} + - {x: 1.038826, y: 1, z: -53} + - {x: 0, y: 1, z: -53} + - {x: 1.038826, y: -12.462496, z: -53} + - {x: 0, y: -12.462496, z: -53} + - {x: 0, y: 1, z: 0} + - {x: 1.038826, y: 1, z: 0} + - {x: 0, y: -12.462496, z: 0} + - {x: 1.038826, y: -12.462496, z: 0} + - {x: 39.046192, y: 1, z: -53} + - {x: 1.038826, y: 1, z: -53} + - {x: 39.046192, y: -12.462496, z: -53} + - {x: 1.038826, y: -12.462496, z: -53} + - {x: 0, y: 1, z: -51.937317} + - {x: 0, y: 1, z: -1.0385742} + - {x: 0, y: -12.462496, z: -51.937317} + - {x: 0, y: -12.462496, z: -1.0385742} + - {x: 1.038826, y: 1, z: -1.0385742} + - {x: 1.038826, y: 1, z: -51.937317} + - {x: 1.038826, y: -12.462496, z: -1.0385742} + - {x: 1.038826, y: -12.462496, z: -51.937317} + - {x: 0, y: 1, z: -53} + - {x: 0, y: 1, z: -51.937317} + - {x: 0, y: -12.462496, z: -53} + - {x: 0, y: -12.462496, z: -51.937317} + - {x: 39.999996, y: 1, z: -51.937317} + - {x: 40, y: 1, z: -53} + - {x: 39.999996, y: -12.462496, z: -51.937317} + - {x: 39.999996, y: -12.462496, z: -53} + - {x: 1.038826, y: 1, z: -51.937317} + - {x: 39.046192, y: 1, z: -51.937317} + - {x: 1.038826, y: -12.462496, z: -51.937317} + - {x: 39.046192, y: -12.462496, z: -51.937317} + - {x: 40, y: 1, z: -53} + - {x: 39.046192, y: 1, z: -53} + - {x: 39.999996, y: -12.462496, z: -53} + - {x: 39.046192, y: -12.462496, z: -53} + - {x: 39.046192, y: 1, z: -51.937317} + - {x: 39.046192, y: 1, z: -1.0385742} + - {x: 39.046192, y: -12.462496, z: -51.937317} + - {x: 39.046192, y: -12.462496, z: -1.0385742} + - {x: 39.999996, y: 1, z: -1.0385742} + - {x: 39.999996, y: 1, z: -51.937317} + - {x: 39.999996, y: -12.462496, z: -1.0385742} + - {x: 39.999996, y: -12.462496, z: -51.937317} + - {x: 39.046192, y: 1, z: 0} + - {x: 40, y: 1, z: 0} + - {x: 39.046192, y: -12.462496, z: 0} + - {x: 39.999996, y: -12.462496, z: 0} + m_Textures0: + - {x: -39.046192, y: 0} + - {x: -40, y: 0} + - {x: -40, y: 1} + - {x: -39.046192, y: 1} + - {x: 40, y: 0} + - {x: 39.046192, y: 0} + - {x: 39.046192, y: 1} + - {x: 40, y: 1} + - {x: 0, y: 0} + - {x: -1.038826, y: 0} + - {x: -1.038826, y: 1} + - {x: 0, y: 1} + - {x: -1.038826, y: 0} + - {x: -39.046192, y: 0} + - {x: -39.046192, y: 1} + - {x: -1.038826, y: 1} + - {x: 0, y: 0} + - {x: 0, y: 1} + - {x: 1.038826, y: 1} + - {x: 1.038826, y: 0} + - {x: 1.038826, y: 1} + - {x: 39.046192, y: 1} + - {x: 39.046192, y: 0} + - {x: 1.038826, y: 0} + - {x: 0.0000011110538, y: 0} + - {x: -1.0385731, y: 0} + - {x: -1.0385731, y: 1} + - {x: 0.0000011110538, y: 1} + - {x: 1.0385742, y: 0} + - {x: 0, y: 0} + - {x: 0, y: 1} + - {x: 1.0385742, y: 1} + - {x: 39.046192, y: -1.0385742} + - {x: 39.046192, y: 0} + - {x: 39.999996, y: 0} + - {x: 39.999996, y: -1.0385742} + - {x: -39.999996, y: -1.0385742} + - {x: -40, y: 0} + - {x: -39.046192, y: 0} + - {x: -39.046192, y: -1.0385742} + - {x: 1.038826, y: -1.0385742} + - {x: 1.038826, y: 0} + - {x: 39.046192, y: 0} + - {x: 39.046192, y: -1.0385742} + - {x: 0, y: -1.0385742} + - {x: 0, y: 0} + - {x: 1.038826, y: 0} + - {x: 1.038826, y: -1.0385742} + - {x: -39.046192, y: 0} + - {x: -1.038826, y: 0} + - {x: -1.038826, y: -1.0385742} + - {x: -39.046192, y: -1.0385742} + - {x: -1.038826, y: 0} + - {x: 0, y: 0} + - {x: 0, y: -1.0385742} + - {x: -1.038826, y: -1.0385742} + - {x: -1.0385731, y: 0} + - {x: -51.937317, y: 0} + - {x: -51.937317, y: 1} + - {x: -1.0385731, y: 1} + - {x: -51.937317, y: 0} + - {x: -53, y: 0} + - {x: -53, y: 1} + - {x: -51.937317, y: 1} + - {x: 1.0385742, y: 0} + - {x: 1.0385742, y: 1} + - {x: 51.937317, y: 1} + - {x: 51.937317, y: 0} + - {x: 51.937317, y: 1} + - {x: 53, y: 1} + - {x: 53, y: 0} + - {x: 51.937317, y: 0} + - {x: 39.999996, y: -53} + - {x: 39.046192, y: -53} + - {x: 39.046192, y: -51.937317} + - {x: 39.999996, y: -51.937317} + - {x: 39.046192, y: -51.937317} + - {x: 39.046192, y: -1.0385742} + - {x: 39.999996, y: -1.0385742} + - {x: 39.999996, y: -51.937317} + - {x: -40, y: -53} + - {x: -39.999996, y: -51.937317} + - {x: -39.046192, y: -51.937317} + - {x: -39.046192, y: -53} + - {x: -39.999996, y: -51.937317} + - {x: -39.999996, y: -1.0385742} + - {x: -39.046192, y: -1.0385742} + - {x: -39.046192, y: -51.937317} + - {x: 39.046192, y: -53} + - {x: 1.038826, y: -53} + - {x: 1.038826, y: -51.937317} + - {x: 39.046192, y: -51.937317} + - {x: 1.038826, y: -51.937317} + - {x: 1.038826, y: -1.0385742} + - {x: 39.046192, y: -1.0385742} + - {x: 39.046192, y: -51.937317} + - {x: 1.038826, y: -53} + - {x: 0, y: -53} + - {x: 0, y: -51.937317} + - {x: 1.038826, y: -51.937317} + - {x: 0, y: -51.937317} + - {x: 0, y: -1.0385742} + - {x: 1.038826, y: -1.0385742} + - {x: 1.038826, y: -51.937317} + - {x: -39.046192, y: -53} + - {x: -39.046192, y: -51.937317} + - {x: -1.038826, y: -51.937317} + - {x: -1.038826, y: -53} + - {x: -39.046192, y: -51.937317} + - {x: -39.046192, y: -1.0385742} + - {x: -1.038826, y: -1.0385742} + - {x: -1.038826, y: -51.937317} + - {x: -1.038826, y: -1.0385742} + - {x: 0, y: -1.0385742} + - {x: 0, y: -51.937317} + - {x: -1.038826, y: -51.937317} + - {x: 0, y: -51.937317} + - {x: 0, y: -53} + - {x: -1.038826, y: -53} + - {x: -1.038826, y: -51.937317} + - {x: -39.046192, y: 1} + - {x: -1.038826, y: 1} + - {x: -39.046192, y: -12.462496} + - {x: -1.038826, y: -12.462496} + - {x: -1.0385742, y: 1} + - {x: 0, y: 1} + - {x: -1.0385742, y: -12.462496} + - {x: 0, y: -12.462496} + - {x: -0.00014692055, y: 1.0000113} + - {x: 1.0384274, y: 1.0000113} + - {x: -0.00014692053, y: -12.462484} + - {x: 1.0384274, y: -12.462484} + - {x: 1.038826, y: 1} + - {x: 39.046192, y: 1} + - {x: 1.038826, y: -12.462496} + - {x: 39.046192, y: -12.462496} + - {x: -1.038826, y: 1} + - {x: 0, y: 1} + - {x: -1.038826, y: -12.462496} + - {x: -0, y: -12.462496} + - {x: 0, y: 1} + - {x: 1.038826, y: 1} + - {x: 0, y: -12.462496} + - {x: 1.038826, y: -12.462496} + - {x: -39.046192, y: 1} + - {x: -1.038826, y: 1} + - {x: -39.046192, y: -12.462496} + - {x: -1.038826, y: -12.462496} + - {x: -51.937317, y: 1} + - {x: -1.0385742, y: 1} + - {x: -51.937317, y: -12.462496} + - {x: -1.0385742, y: -12.462496} + - {x: 1.0385742, y: 1} + - {x: 51.937317, y: 1} + - {x: 1.0385742, y: -12.462496} + - {x: 51.937317, y: -12.462496} + - {x: -53, y: 1} + - {x: -51.937317, y: 1} + - {x: -53, y: -12.462496} + - {x: -51.937317, y: -12.462496} + - {x: 51.93746, y: 1} + - {x: 53.000145, y: 1} + - {x: 51.93746, y: -12.462496} + - {x: 53.000145, y: -12.462496} + - {x: 1.038826, y: 1} + - {x: 39.046192, y: 1} + - {x: 1.038826, y: -12.462496} + - {x: 39.046192, y: -12.462496} + - {x: -40, y: 1} + - {x: -39.046192, y: 1} + - {x: -39.999996, y: -12.462496} + - {x: -39.046192, y: -12.462496} + - {x: -51.937317, y: 1} + - {x: -1.0385742, y: 1} + - {x: -51.937317, y: -12.462496} + - {x: -1.0385742, y: -12.462496} + - {x: 1.0385742, y: 1} + - {x: 51.937317, y: 1} + - {x: 1.0385742, y: -12.462496} + - {x: 51.937317, y: -12.462496} + - {x: 39.046192, y: 1} + - {x: 40, y: 1} + - {x: 39.046192, y: -12.462496} + - {x: 39.999996, y: -12.462496} + m_Textures2: [] + m_Textures3: [] + m_Tangents: + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 0.0000036730137, y: 0, z: 1, w: -1} + - {x: 0.0000036730137, y: 0, z: 1, w: -1} + - {x: 0.0000036730137, y: 0, z: 1, w: -1} + - {x: 0.0000036730137, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: -0.0000035896846, y: 0, z: 1, w: -1} + - {x: -0.0000035896846, y: 0, z: 1, w: -1} + - {x: -0.0000035896846, y: 0, z: 1, w: -1} + - {x: -0.0000035896846, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: -0.0000036730137, y: 0, z: -1, w: -1} + - {x: -0.0000018365068, y: 0, z: -1, w: -1} + - {x: -0.0000018365068, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0.0000035896846, y: 0, z: -1, w: -1} + - {x: 0.0000017948423, y: 0, z: -1, w: -1} + - {x: 0.0000017948423, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + m_Colors: [] + m_UnwrapParameters: + m_HardAngle: 88 + m_PackMargin: 20 + m_AngleError: 8 + m_AreaError: 15 + m_PreserveMeshAssetOnDestroy: 0 + assetGuid: + m_Mesh: {fileID: 544011233} + m_IsSelectable: 1 + m_SelectedFaces: + m_SelectedEdges: [] + m_SelectedVertices: +--- !u!4 &333885129 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333885124} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 40.997776, y: 10.890039, z: -111.66116} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!43 &544011233 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh-78886 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 276 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 120 + localAABB: + m_Center: {x: 20, y: -5.731248, z: -26.5} + m_Extent: {x: 20, y: 6.731248, z: 26.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200030000000200040005000600040007000500080009000a000b0008000a000900000003000a00090003000c000d000e000c000f000d0006000f000c00060005000f00100011001200130010001200140015001600140017001500180019001a001b0018001a001c001d001e001c001f001d001900200021001a001900210020002200210022002300210024001f001c00240025001f0024002600270024002700250011002800290012001100290028002a002b00290028002b002c00170014002c002d0017002e002d002c002e002f002d003000310032003300300032003200180033003200190018003400350036003400370035001d001f00340036001d0034003100380039003200310039003a003b003c003d003a003c0038003e003f00390038003f0039003f002200200039002200400037003400400041003700250034001f00250040003400270040002500270042004000420041004000420043004100440045004600450047004600480049004a0049004b004a004c004d004e004d004f004e005000510052005100530052005400550056005500570056005800500059005000520059005a0054005b00540056005b005c0048005d0048004a005d005e005f0060005f006100600062005c0063005c005d006300640065006600650067006600680069006a0069006b006a006c005a006d005a005b006d006e006f0070006f0071007000720073007400730075007400510076005300760077005300 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 120 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 5760 + _typelessdata: 4d2f1c42000000000000000000000000000000000000803f000080bf0000000000000000000080bf4d2f1cc20000000000002042000000000000000000000000000000000000803f000080bf0000000000000000000080bf000020c200000000000020420000803f0000000000000000000000000000803f000080bf0000000000000000000080bf000020c20000803f4d2f1c420000803f0000000000000000000000000000803f000080bf0000000000000000000080bf4d2f1cc20000803f000020420000803f000054c20000000000000000000080bf0000803f0000000000000000000080bf000020420000803f4d2f1c4200000000000054c20000000000000000000080bf0000803f0000000000000000000080bf4d2f1c42000000004d2f1c420000803f000054c20000000000000000000080bf0000803f0000000000000000000080bf4d2f1c420000803f0000204200000000000054c20000000000000000000080bf0000803f0000000000000000000080bf000020420000000000000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf000000000000000040f8843f000000000000000000000000000000000000803f000080bf0000000000000000000080bf40f884bf0000000040f8843f0000803f0000000000000000000000000000803f000080bf0000000000000000000080bf40f884bf0000803f000000000000803f0000000000000000000000000000803f000080bf0000000000000000000080bf000000000000803f40f8843f0000803f000054c20000000000000000000080bf0000803f0000000000000000000080bf40f8843f0000803f0000000000000000000054c20000000000000000000080bf0000803f0000000000000000000080bf0000000000000000000000000000803f000054c20000000000000000000080bf0000803f0000000000000000000080bf000000000000803f40f8843f00000000000054c20000000000000000000080bf0000803f0000000000000000000080bf40f8843f000000000000204200000000000000000000803f00000000e57d76b6e57d7636000000000000803f000080bf851f953500000000ffff1f420000000000f084bf0000803f00000000e57d76b6e57d7636000000000000803f000080bff7ef84bf00000000ffff1f420000803f00f084bf0000803f00000000e57d76b6e57d7636000000000000803f000080bff7ef84bf0000803f000020420000803f000000000000803f00000000e57d76b6e57d7636000000000000803f000080bf851f95350000803f000000000000803f00f084bf000080bf00000000000000000000000000000000000080bf000080bf00f0843f0000803f000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf0000000000000000000000000000803f00000000000080bf00000000000000000000000000000000000080bf000080bf000000000000803f000000000000000000f084bf000080bf00000000000000000000000000000000000080bf000080bf00f0843f00000000ffff1f42626647c100f084bf000000000000803f000000000000803f0000000000000000000080bfffff1f4200f084bf4d2f1c42626647c100f084bf000000000000803f000000000000803f0000000000000000000080bf4d2f1c4200f084bf4d2f1c42626647c100000000000000000000803f000000000000803f0000000000000000000080bf4d2f1c4200000000ffff1f42626647c100000000000000000000803f000000000000803f0000000000000000000080bfffff1f42000000004d2f1c42000000000000000000000000000080bf00000000000080bf0000000000000000000080bf4d2f1cc200000000ffff1f420000000000f084bf00000000000080bf00000000000080bf0000000000000000000080bfffff1fc200f084bf00002042000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000020c2000000004d2f1c420000000000f084bf00000000000080bf00000000000080bf0000000000000000000080bf4d2f1cc200f084bf40f8843f626647c100f084bf000000000000803f000000000000803f0000000000000000000080bf40f8843f00f084bf40f8843f626647c100000000000000000000803f000000000000803f0000000000000000000080bf40f8843f0000000000000000626647c100f084bf000000000000803f000000000000803f0000000000000000000080bf0000000000f084bf00000000626647c100000000000000000000803f000000000000803f0000000000000000000080bf000000000000000040f8843f000000000000000000000000000080bf00000000000080bf0000000000000000000080bf40f884bf0000000040f8843f0000000000f084bf00000000000080bf00000000000080bf0000000000000000000080bf40f884bf00f084bf00000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf0000000000000000000000000000000000f084bf00000000000080bf00000000000080bf0000000000000000000080bf0000000000f084bfffff1f4200000000d0bf4fc20000803f000000000000000000000000000000000000803f000080bfd0bf4fc200000000ffff1f420000803fd0bf4fc20000803f000000000000000000000000000000000000803f000080bfd0bf4fc20000803f0000204200000000000054c20000803f0000000050e6703650e670b6000000000000803f000080bf000054c200000000000020420000803f000054c20000803f0000000050e6703650e670b6000000000000803f000080bf000054c20000803f000000000000803fd0bf4fc2000080bf00000000000000000000000000000000000080bf000080bfd0bf4f420000803f0000000000000000d0bf4fc2000080bf00000000000000000000000000000000000080bf000080bfd0bf4f4200000000000000000000803f000054c2000080bf00000000000000000000000000000000000080bf000080bf000054420000803f0000000000000000000054c2000080bf00000000000000000000000000000000000080bf000080bf0000544200000000ffff1f42626647c1000054c2000000000000803f000000000000803f0000000000000000000080bfffff1f42000054c24d2f1c42626647c1000054c2000000000000803f000000000000803f0000000000000000000080bf4d2f1c42000054c24d2f1c42626647c1d0bf4fc2000000000000803f000000000000803f0000000000000000000080bf4d2f1c42d0bf4fc2ffff1f42626647c1d0bf4fc2000000000000803f000000000000803f0000000000000000000080bfffff1f42d0bf4fc24d2f1c4200000000d0bf4fc200000000000080bf00000000000080bf0000000000000000000080bf4d2f1cc2d0bf4fc20000204200000000000054c200000000000080bf00000000000080bf0000000000000000000080bf000020c2000054c2ffff1f4200000000d0bf4fc200000000000080bf00000000000080bf0000000000000000000080bfffff1fc2d0bf4fc24d2f1c4200000000000054c200000000000080bf00000000000080bf0000000000000000000080bf4d2f1cc2000054c240f8843f626647c1000054c2000000000000803f000000000000803f0000000000000000000080bf40f8843f000054c240f8843f626647c1d0bf4fc2000000000000803f000000000000803f0000000000000000000080bf40f8843fd0bf4fc24d2f1c420000803fd0bf4fc2000000000000803f000000000000803f0000000000000000000080bf4d2f1c42d0bf4fc240f8843f0000803fd0bf4fc2000000000000803f000000000000803f0000000000000000000080bf40f8843fd0bf4fc240f8843f0000803f00f084bf000000000000803f000000000000803f0000000000000000000080bf40f8843f00f084bf4d2f1c420000803f00f084bf000000000000803f000000000000803f0000000000000000000080bf4d2f1c4200f084bf00000000626647c1000054c2000000000000803f000000000000803f0000000000000000000080bf00000000000054c200000000626647c1d0bf4fc2000000000000803f000000000000803f0000000000000000000080bf00000000d0bf4fc240f8843f00000000d0bf4fc200000000000080bf00000000000080bf0000000000000000000080bf40f884bfd0bf4fc240f8843f00000000000054c200000000000080bf00000000000080bf0000000000000000000080bf40f884bf000054c20000000000000000d0bf4fc200000000000080bf00000000000080bf0000000000000000000080bf00000000d0bf4fc20000000000000000000054c200000000000080bf00000000000080bf0000000000000000000080bf00000000000054c24d2f1c420000803f00f084bf00000000000000000000803f000080bf0000000000000000000080bf4d2f1cc20000803f40f8843f0000803f00f084bf00000000000000000000803f000080bf0000000000000000000080bf40f884bf0000803f4d2f1c42626647c100f084bf00000000000000000000803f000080bf0000000000000000000080bf4d2f1cc2626647c140f8843f626647c100f084bf00000000000000000000803f000080bf0000000000000000000080bf40f884bf626647c1000000000000803f00f084bf0000803f000000000000000000000000000000000000803f000080bf00f084bf0000803f000000000000803f000000000000803f000000000000000000000000000000000000803f000080bf000000000000803f00000000626647c100f084bf0000803f000000000000000000000000000000000000803f000080bf00f084bf626647c100000000626647c1000000000000803f000000000000000000000000000000000000803f000080bf00000000626647c1000020420000803f00000000000080bf57209834e57d7636e57d76b600000000000080bf000080bfaf0e1ab95f00803fffff1f420000803f00f084bf000080bf57201834e57df635e57df6b500000000000080bf000080bf30eb843f5f00803fffff1f42626647c100000000000080bf57201834e57df635e57df6b500000000000080bf000080bfae0e1ab9566647c1ffff1f42626647c100f084bf000080bf00000000000000000000000000000000000080bf000080bf30eb843f566647c140f8843f0000803f000000000000000000000000000080bf0000803f0000000000000000000080bf40f8843f0000803f4d2f1c420000803f000000000000000000000000000080bf0000803f0000000000000000000080bf4d2f1c420000803f40f8843f626647c1000000000000000000000000000080bf0000803f0000000000000000000080bf40f8843f626647c14d2f1c42626647c1000000000000000000000000000080bf0000803f0000000000000000000080bf4d2f1c42626647c140f8843f0000803f000054c200000000000000000000803f000080bf0000000000000000000080bf40f884bf0000803f000000000000803f000054c200000000000000000000803f000080bf0000000000000000000080bf000000000000803f40f8843f626647c1000054c200000000000000000000803f000080bf0000000000000000000080bf40f884bf626647c100000000626647c1000054c200000000000000000000803f000080bf0000000000000000000080bf00000080626647c1000000000000803f000000000000000000000000000080bf0000803f0000000000000000000080bf000000000000803f00000000626647c1000000000000000000000000000080bf0000803f0000000000000000000080bf00000000626647c14d2f1c420000803f000054c200000000000000000000803f000080bf0000000000000000000080bf4d2f1cc20000803f4d2f1c42626647c1000054c200000000000000000000803f000080bf0000000000000000000080bf4d2f1cc2626647c1000000000000803fd0bf4fc20000803f000000000000000000000000000000000000803f000080bfd0bf4fc20000803f00000000626647c1d0bf4fc20000803f000000000000000000000000000000000000803f000080bfd0bf4fc2626647c140f8843f0000803f00f084bf000080bf00000000000000000000000000000000000080bf000080bf00f0843f0000803f40f8843f0000803fd0bf4fc2000080bf00000000000000000000000000000000000080bf000080bfd0bf4f420000803f40f8843f626647c100f084bf000080bf00000000000000000000000000000000000080bf000080bf00f0843f626647c140f8843f626647c1d0bf4fc2000080bf00000000000000000000000000000000000080bf000080bfd0bf4f42626647c1000000000000803f000054c20000803f000000000000000000000000000000000000803f000080bf000054c20000803f00000000626647c1000054c20000803f000000000000000000000000000000000000803f000080bf000054c2626647c1ffff1f420000803fd0bf4fc2000080bf0000000050e670b650e6703600000000000080bf000080bff6bf4f420000803f000020420000803f000054c2000080bf5720183450e6f0b550e6f03500000000000080bf000080bf260054420000803fffff1f42626647c1d0bf4fc2000080bf5720183450e6f0b550e6f03500000000000080bf000080bff6bf4f42626647c1ffff1f42626647c1000054c2000080bf57209834000000000000000000000000000080bf000080bf26005442626647c140f8843f0000803fd0bf4fc20000000000000000000080bf0000803f0000000000000000000080bf40f8843f0000803f4d2f1c420000803fd0bf4fc20000000000000000000080bf0000803f0000000000000000000080bf4d2f1c420000803f40f8843f626647c1d0bf4fc20000000000000000000080bf0000803f0000000000000000000080bf40f8843f626647c14d2f1c42626647c1d0bf4fc20000000000000000000080bf0000803f0000000000000000000080bf4d2f1c42626647c1000020420000803f000054c200000000000000000000803f000080bf0000000000000000000080bf000020c20000803fffff1f42626647c1000054c200000000000000000000803f000080bf0000000000000000000080bfffff1fc2626647c14d2f1c420000803fd0bf4fc20000803f000000000000000000000000000000000000803f000080bfd0bf4fc20000803f4d2f1c420000803f00f084bf0000803f000000000000000000000000000000000000803f000080bf00f084bf0000803f4d2f1c42626647c1d0bf4fc20000803f000000000000000000000000000000000000803f000080bfd0bf4fc2626647c14d2f1c42626647c100f084bf0000803f000000000000000000000000000000000000803f000080bf00f084bf626647c1ffff1f420000803f00f084bf000080bf00000000000000000000000000000000000080bf000080bf00f0843f0000803fffff1f420000803fd0bf4fc2000080bf00000000000000000000000000000000000080bf000080bfd0bf4f420000803fffff1f42626647c100f084bf000080bf00000000000000000000000000000000000080bf000080bf00f0843f626647c1ffff1f42626647c1d0bf4fc2000080bf00000000000000000000000000000000000080bf000080bfd0bf4f42626647c1000020420000803f000000000000000000000000000080bf0000803f0000000000000000000080bf000020420000803fffff1f42626647c1000000000000000000000000000080bf0000803f0000000000000000000080bfffff1f42626647c1 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 20, y: -5.731248, z: -26.5} + m_Extent: {x: 20, y: 6.731248, z: 26.5} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &858622097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 858622100} + - component: {fileID: 858622099} + - component: {fileID: 858622098} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &858622098 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858622097} + m_Enabled: 1 +--- !u!20 &858622099 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858622097} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &858622100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858622097} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1994719859} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &982276985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 982276990} + - component: {fileID: 982276989} + - component: {fileID: 982276988} + - component: {fileID: 982276987} + - component: {fileID: 982276986} + m_Layer: 3 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &982276986 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 982276985} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 1231805674} +--- !u!33 &982276987 +MeshFilter: + m_ObjectHideFlags: 10 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 982276985} + m_Mesh: {fileID: 1231805674} +--- !u!23 &982276988 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 982276985} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &982276989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 982276985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MeshFormatVersion: 1 + m_Faces: + - m_Indexes: 000000000100000002000000010000000300000002000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 040000000500000006000000050000000700000006000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 08000000090000000a000000090000000b0000000a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 100000001100000012000000110000001300000012000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 140000001500000016000000150000001700000016000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + m_SharedVertices: + - m_Vertices: 000000000d00000016000000 + - m_Vertices: 010000000400000017000000 + - m_Vertices: 020000000f00000010000000 + - m_Vertices: 030000000600000011000000 + - m_Vertices: 050000000800000015000000 + - m_Vertices: 070000000a00000013000000 + - m_Vertices: 090000000c00000014000000 + - m_Vertices: 0b0000000e00000012000000 + m_SharedTextures: [] + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 60, y: 0, z: 0} + - {x: 0, y: 1, z: 0} + - {x: 60, y: 1, z: 0} + - {x: 60, y: 0, z: 0} + - {x: 60, y: 0, z: -65} + - {x: 60, y: 1, z: 0} + - {x: 60, y: 1, z: -65} + - {x: 60, y: 0, z: -65} + - {x: 0, y: 0, z: -65} + - {x: 60, y: 1, z: -65} + - {x: 0, y: 1, z: -65} + - {x: 0, y: 0, z: -65} + - {x: 0, y: 0, z: 0} + - {x: 0, y: 1, z: -65} + - {x: 0, y: 1, z: 0} + - {x: 0, y: 1, z: 0} + - {x: 60, y: 1, z: 0} + - {x: 0, y: 1, z: -65} + - {x: 60, y: 1, z: -65} + - {x: 0, y: 0, z: -65} + - {x: 60, y: 0, z: -65} + - {x: 0, y: 0, z: 0} + - {x: 60, y: 0, z: 0} + m_Textures0: + - {x: 0, y: 0} + - {x: -60, y: 0} + - {x: 0, y: 1} + - {x: -60, y: 1} + - {x: 0, y: 0} + - {x: -65, y: 0} + - {x: 0, y: 1} + - {x: -65, y: 1} + - {x: 60, y: 0} + - {x: 0, y: 0} + - {x: 60, y: 1} + - {x: 0, y: 1} + - {x: 65, y: 0} + - {x: 0, y: 0} + - {x: 65, y: 1} + - {x: 0, y: 1} + - {x: 0, y: 0} + - {x: 60, y: 0} + - {x: 0, y: -65} + - {x: 60, y: -65} + - {x: 0, y: -65} + - {x: -60, y: -65} + - {x: 0, y: 0} + - {x: -60, y: 0} + m_Textures2: [] + m_Textures3: [] + m_Tangents: + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + m_Colors: [] + m_UnwrapParameters: + m_HardAngle: 88 + m_PackMargin: 20 + m_AngleError: 8 + m_AreaError: 15 + m_PreserveMeshAssetOnDestroy: 0 + assetGuid: + m_Mesh: {fileID: 1231805674} + m_IsSelectable: 1 + m_SelectedFaces: + m_SelectedEdges: [] + m_SelectedVertices: +--- !u!4 &982276990 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 982276985} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 32.3, y: -1.21, z: -105.7} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!43 &1231805674 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh-90484 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 30, y: 0.5, z: -32.5} + m_Extent: {x: 30, y: 0.5, z: 32.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00100011001200110013001200140015001600150017001600 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 1152 + _typelessdata: 00000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf000000000000000000007042000000000000000000000000000000000000803f000080bf0000000000000000000080bf000070c200000000000000000000803f0000000000000000000000000000803f000080bf0000000000000000000080bf000000000000803f000070420000803f0000000000000000000000000000803f000080bf0000000000000000000080bf000070c20000803f0000704200000000000000000000803f000000000000000000000000000000000000803f000080bf00000000000000000000704200000000000082c20000803f000000000000000000000000000000000000803f000080bf000082c200000000000070420000803f000000000000803f000000000000000000000000000000000000803f000080bf000000000000803f000070420000803f000082c20000803f000000000000000000000000000000000000803f000080bf000082c20000803f0000704200000000000082c20000000000000000000080bf0000803f0000000000000000000080bf00007042000000000000000000000000000082c20000000000000000000080bf0000803f0000000000000000000080bf0000000000000000000070420000803f000082c20000000000000000000080bf0000803f0000000000000000000080bf000070420000803f000000000000803f000082c20000000000000000000080bf0000803f0000000000000000000080bf000000000000803f0000000000000000000082c2000080bf00000000000000000000000000000000000080bf000080bf0000824200000000000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf0000000000000000000000000000803f000082c2000080bf00000000000000000000000000000000000080bf000080bf000082420000803f000000000000803f00000000000080bf00000000000000000000000000000000000080bf000080bf000000000000803f000000000000803f00000000000000000000803f000000000000803f0000000000000000000080bf0000000000000000000070420000803f00000000000000000000803f000000000000803f0000000000000000000080bf0000704200000000000000000000803f000082c2000000000000803f000000000000803f0000000000000000000080bf00000000000082c2000070420000803f000082c2000000000000803f000000000000803f0000000000000000000080bf00007042000082c20000000000000000000082c200000000000080bf00000000000080bf0000000000000000000080bf00000000000082c20000704200000000000082c200000000000080bf00000000000080bf0000000000000000000080bf000070c2000082c200000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000000000000000000007042000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000070c200000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 30, y: 0.5, z: -32.5} + m_Extent: {x: 30, y: 0.5, z: 32.5} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &1317314352 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1317314353} + - component: {fileID: 1317314356} + - component: {fileID: 1317314355} + m_Layer: 6 + m_Name: PlayerModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1317314353 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1317314352} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1994719859} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1317314355 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1317314352} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1317314356 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1317314352} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!850595691 &1605611744 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 1 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 1 + m_PVREnvironmentMIS: 1 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 +--- !u!1 &1994719858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1994719859} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1994719859 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994719858} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 52.4, y: 1.34, z: -125.7} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 858622100} + - {fileID: 1317314353} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/TrainingField/Assets/Scenes/Application.unity.meta b/TrainingField/Assets/Scenes/Application.unity.meta new file mode 100644 index 0000000..19a0540 --- /dev/null +++ b/TrainingField/Assets/Scenes/Application.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3c897e21e2ab30441adc926948d7a035 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Packages/manifest.json b/TrainingField/Packages/manifest.json index 05b7de3..3957ebf 100644 --- a/TrainingField/Packages/manifest.json +++ b/TrainingField/Packages/manifest.json @@ -5,6 +5,7 @@ "com.unity.ide.rider": "2.0.7", "com.unity.ide.visualstudio": "2.0.8", "com.unity.ide.vscode": "1.2.3", + "com.unity.probuilder": "4.5.2", "com.unity.test-framework": "1.1.24", "com.unity.textmeshpro": "3.0.6", "com.unity.timeline": "1.4.8", diff --git a/TrainingField/Packages/packages-lock.json b/TrainingField/Packages/packages-lock.json new file mode 100644 index 0000000..d90703d --- /dev/null +++ b/TrainingField/Packages/packages-lock.json @@ -0,0 +1,370 @@ +{ + "dependencies": { + "com.imsolty.com.sol.packagetest": { + "version": "https://github.com/hyperskill/unity-input.git", + "depth": 0, + "source": "git", + "dependencies": {}, + "hash": "3fa9da6e08e1e6507716a6fc0c4d2796fd0de121" + }, + "com.unity.collab-proxy": { + "version": "1.5.7", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.nuget.newtonsoft-json": "2.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.rider": { + "version": "2.0.7", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.8", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.3", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.probuilder": { + "version": "4.5.2", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.settings-manager": "1.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.settings-manager": { + "version": "1.0.3", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.24", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "3.0.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.4.8", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/TrainingField/ProjectSettings/EditorBuildSettings.asset b/TrainingField/ProjectSettings/EditorBuildSettings.asset index 0147887..8fc69d0 100644 --- a/TrainingField/ProjectSettings/EditorBuildSettings.asset +++ b/TrainingField/ProjectSettings/EditorBuildSettings.asset @@ -4,5 +4,8 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 - m_Scenes: [] + m_Scenes: + - enabled: 1 + path: Assets/Scenes/Application.unity + guid: 3c897e21e2ab30441adc926948d7a035 m_configObjects: {} diff --git a/TrainingField/ProjectSettings/GraphicsSettings.asset b/TrainingField/ProjectSettings/GraphicsSettings.asset index 43369e3..88dfcc8 100644 --- a/TrainingField/ProjectSettings/GraphicsSettings.asset +++ b/TrainingField/ProjectSettings/GraphicsSettings.asset @@ -28,6 +28,7 @@ GraphicsSettings: m_LensFlare: m_Mode: 1 m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 m_AlwaysIncludedShaders: - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} @@ -36,8 +37,7 @@ GraphicsSettings: - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] - m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, - type: 0} + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} m_CustomRenderPipeline: {fileID: 0} m_TransparencySortMode: 0 m_TransparencySortAxis: {x: 0, y: 0, z: 1} @@ -59,5 +59,5 @@ GraphicsSettings: m_AlbedoSwatchInfos: [] m_LightsUseLinearIntensity: 0 m_LightsUseColorTemperature: 0 + m_DefaultRenderingLayerMask: 1 m_LogWhenShaderIsCompiled: 0 - m_AllowEnlightenSupportForUpgradedProject: 0 diff --git a/TrainingField/ProjectSettings/Packages/com.unity.probuilder/Settings.json b/TrainingField/ProjectSettings/Packages/com.unity.probuilder/Settings.json new file mode 100644 index 0000000..34babd6 --- /dev/null +++ b/TrainingField/ProjectSettings/Packages/com.unity.probuilder/Settings.json @@ -0,0 +1,168 @@ +{ + "m_Name": "Settings", + "m_Path": "ProjectSettings/Packages/com.unity.probuilder/Settings.json", + "m_Dictionary": { + "m_DictionaryValues": [ + { + "type": "UnityEngine.ProBuilder.LogLevel, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "log.level", + "value": "{\"m_Value\":3}" + }, + { + "type": "UnityEngine.ProBuilder.LogOutput, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "log.output", + "value": "{\"m_Value\":1}" + }, + { + "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "log.path", + "value": "{\"m_Value\":\"ProBuilderLog.txt\"}" + }, + { + "type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "about.identifier", + "value": "{\"m_Value\":{\"m_Major\":4,\"m_Minor\":5,\"m_Patch\":2,\"m_Build\":-1,\"m_Type\":\"\",\"m_Metadata\":\"\",\"m_Date\":\"\"}}" + }, + { + "type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "preferences.version", + "value": "{\"m_Value\":{\"m_Major\":4,\"m_Minor\":5,\"m_Patch\":2,\"m_Build\":-1,\"m_Type\":\"\",\"m_Metadata\":\"\",\"m_Date\":\"\"}}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "UnityEngine.ProBuilder.ProBuilderEditor-isUtilityWindow", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.backFaceSelectEnabled", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.toolbarIconGUI", + "value": "{\"m_Value\":true}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.showSceneInfo", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "mesh.newShapesSnapToGrid", + "value": "{\"m_Value\":true}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "lightmapping.autoUnwrapLightmapUV", + "value": "{\"m_Value\":true}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.autoRecalculateCollisions", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "mesh.meshColliderIsConvex", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.showEditorNotifications", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.closeWindowAfterShapeCreation", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "smoothing.showSettings", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "smoothing.showPreview", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "smoothing.showNormals", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "smoothing.showHelp", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "SelectEdgeLoop.selectIterative", + "value": "{\"m_Value\":false}" + }, + { + "type": "UnityEngine.ProBuilder.SelectionModifierBehavior, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "editor.rectSelectModifier", + "value": "{\"m_Value\":2}" + }, + { + "type": "UnityEngine.ProBuilder.RectSelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "editor.dragSelectRectMode", + "value": "{\"m_Value\":0}" + }, + { + "type": "UnityEngine.ProBuilder.SelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "editor.selectMode", + "value": "{\"m_Value\":1}" + }, + { + "type": "UnityEngine.ProBuilder.PivotLocation, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.newShapePivotLocation", + "value": "{\"m_Value\":1}" + }, + { + "type": "UnityEngine.Rendering.ShadowCastingMode, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.shadowCastingMode", + "value": "{\"m_Value\":1}" + }, + { + "type": "UnityEngine.Material, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.userMaterial", + "value": "{\"m_Value\":{\"instanceID\":0}}" + }, + { + "type": "UnityEditor.StaticEditorFlags, UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.defaultStaticEditorFlags", + "value": "{\"m_Value\":0}" + }, + { + "type": "UnityEngine.ProBuilder.ColliderType, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.newShapeColliderType", + "value": "{\"m_Value\":2}" + }, + { + "type": "UnityEngine.ProBuilder.UnwrapParameters, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "lightmapping.defaultLightmapUnwrapParameters", + "value": "{\"m_Value\":{\"m_HardAngle\":88.0,\"m_PackMargin\":20.0,\"m_AngleError\":8.0,\"m_AreaError\":15.0}}" + }, + { + "type": "UnityEngine.ProBuilder.ExtrudeMethod, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "editor.extrudeMethod", + "value": "{\"m_Value\":2}" + }, + { + "type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "ExtrudeFaces.distance", + "value": "{\"m_Value\":0.5}" + }, + { + "type": "UnityEditor.ProBuilder.Actions.MirrorObjects+MirrorSettings, Unity.ProBuilder.Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "MirrorObjects.mirrorAxes", + "value": "{\"m_Value\":4}" + } + ] + } +} \ No newline at end of file diff --git a/TrainingField/ProjectSettings/TagManager.asset b/TrainingField/ProjectSettings/TagManager.asset index 1c92a78..270a922 100644 --- a/TrainingField/ProjectSettings/TagManager.asset +++ b/TrainingField/ProjectSettings/TagManager.asset @@ -8,10 +8,10 @@ TagManager: - Default - TransparentFX - Ignore Raycast - - + - Floor - Water - UI - - + - Bounds - - - diff --git a/TrainingField/UserSettings/EditorUserSettings.asset b/TrainingField/UserSettings/EditorUserSettings.asset new file mode 100644 index 0000000..460791c --- /dev/null +++ b/TrainingField/UserSettings/EditorUserSettings.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!162 &1 +EditorUserSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_ConfigSettings: + RecentlyUsedScenePath-0: + value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d + flags: 0 + RecentlyUsedScenePath-1: + value: 22424703114646680e0b0227036c7e00061b11292d3c2f3f2367083debf42d + flags: 0 + vcSharedLogLevel: + value: 0d5e400f0650 + flags: 0 + m_VCAutomaticAdd: 1 + m_VCDebugCom: 0 + m_VCDebugCmd: 0 + m_VCDebugOut: 0 + m_SemanticMergeMode: 2 + m_VCShowFailedCheckout: 1 + m_VCOverwriteFailedCheckoutAssets: 1 + m_VCProjectOverlayIcons: 1 + m_VCHierarchyOverlayIcons: 1 + m_VCOtherOverlayIcons: 1 + m_VCAllowAsyncUpdate: 1 From c2a346f9837e39ea9ba1ceac0e9e7588ed5ecabb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fr=C4=B1?= Date: Mon, 11 Jul 2022 12:03:19 +0300 Subject: [PATCH 12/16] Stage 2 is completed --- .../.idea.TrainingField/.idea/.gitignore | 13 + .../.idea.TrainingField/.idea/encodings.xml | 4 + .../.idea.TrainingField/.idea/indexLayout.xml | 8 + .../.idea/.idea.TrainingField/.idea/vcs.xml | 6 + TrainingField/Assets/Scenes/Application.unity | 237 ++++++++++++------ TrainingField/Assets/Scripts.meta | 8 + TrainingField/Assets/Scripts/clamp.cs | 33 +++ TrainingField/Assets/Scripts/clamp.cs.meta | 11 + TrainingField/Assets/Scripts/movement.cs | 54 ++++ TrainingField/Assets/Scripts/movement.cs.meta | 11 + .../Tests/PlayMode/B_MovementTest.cs.meta | 11 + .../ProjectSettings/InputManager.asset | 4 +- 12 files changed, 323 insertions(+), 77 deletions(-) create mode 100644 TrainingField/.idea/.idea.TrainingField/.idea/.gitignore create mode 100644 TrainingField/.idea/.idea.TrainingField/.idea/encodings.xml create mode 100644 TrainingField/.idea/.idea.TrainingField/.idea/indexLayout.xml create mode 100644 TrainingField/.idea/.idea.TrainingField/.idea/vcs.xml create mode 100644 TrainingField/Assets/Scripts.meta create mode 100644 TrainingField/Assets/Scripts/clamp.cs create mode 100644 TrainingField/Assets/Scripts/clamp.cs.meta create mode 100644 TrainingField/Assets/Scripts/movement.cs create mode 100644 TrainingField/Assets/Scripts/movement.cs.meta create mode 100644 TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs.meta diff --git a/TrainingField/.idea/.idea.TrainingField/.idea/.gitignore b/TrainingField/.idea/.idea.TrainingField/.idea/.gitignore new file mode 100644 index 0000000..928360b --- /dev/null +++ b/TrainingField/.idea/.idea.TrainingField/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/.idea.TrainingField.iml +/contentModel.xml +/modules.xml +/projectSettingsUpdater.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/TrainingField/.idea/.idea.TrainingField/.idea/encodings.xml b/TrainingField/.idea/.idea.TrainingField/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/TrainingField/.idea/.idea.TrainingField/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/TrainingField/.idea/.idea.TrainingField/.idea/indexLayout.xml b/TrainingField/.idea/.idea.TrainingField/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/TrainingField/.idea/.idea.TrainingField/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/TrainingField/.idea/.idea.TrainingField/.idea/vcs.xml b/TrainingField/.idea/.idea.TrainingField/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/TrainingField/.idea/.idea.TrainingField/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TrainingField/Assets/Scenes/Application.unity b/TrainingField/Assets/Scenes/Application.unity index 23bda8d..2612f20 100644 --- a/TrainingField/Assets/Scenes/Application.unity +++ b/TrainingField/Assets/Scenes/Application.unity @@ -1893,6 +1893,36 @@ Mesh: offset: 0 size: 0 path: +--- !u!1 &823167765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 823167766} + m_Layer: 0 + m_Name: GroundCheck + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &823167766 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823167765} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.27, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1994719859} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &858622097 GameObject: m_ObjectHideFlags: 0 @@ -1904,6 +1934,7 @@ GameObject: - component: {fileID: 858622100} - component: {fileID: 858622099} - component: {fileID: 858622098} + - component: {fileID: 858622101} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -1970,12 +2001,26 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 858622097} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalPosition: {x: 0, y: 1, z: -0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1994719859} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &858622101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858622097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 301c22787d1e65f44b09bf8073315244, type: 3} + m_Name: + m_EditorClassIdentifier: + mouseSensitivity: 100 + playerBody: {fileID: 1994719859} --- !u!1 &982276985 GameObject: m_ObjectHideFlags: 0 @@ -2453,7 +2498,68 @@ Mesh: offset: 0 size: 0 path: ---- !u!1 &1317314352 +--- !u!850595691 &1605611744 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 3 + m_GIWorkflowMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 1 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 1 + m_PVREnvironmentMIS: 1 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 +--- !u!1 &1976712284 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2461,23 +2567,23 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1317314353} - - component: {fileID: 1317314356} - - component: {fileID: 1317314355} - m_Layer: 6 + - component: {fileID: 1976712285} + - component: {fileID: 1976712287} + - component: {fileID: 1976712286} + m_Layer: 0 m_Name: PlayerModel m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1317314353 +--- !u!4 &1976712285 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1317314352} + m_GameObject: {fileID: 1976712284} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -2485,13 +2591,13 @@ Transform: m_Father: {fileID: 1994719859} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1317314355 +--- !u!23 &1976712286 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1317314352} + m_GameObject: {fileID: 1976712284} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -2526,75 +2632,14 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1317314356 +--- !u!33 &1976712287 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1317314352} + m_GameObject: {fileID: 1976712284} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!850595691 &1605611744 -LightingSettings: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - serializedVersion: 3 - m_GIWorkflowMode: 1 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_RealtimeEnvironmentLighting: 1 - m_BounceScale: 1 - m_AlbedoBoost: 1 - m_IndirectOutputScale: 1 - m_UsingShadowmask: 1 - m_BakeBackend: 1 - m_LightmapMaxSize: 1024 - m_BakeResolution: 40 - m_Padding: 2 - m_TextureCompression: 1 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAO: 0 - m_MixedBakeMode: 2 - m_LightmapsBakeMode: 1 - m_FilterMode: 1 - m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_RealtimeResolution: 2 - m_ForceWhiteAlbedo: 0 - m_ForceUpdates: 0 - m_FinalGather: 0 - m_FinalGatherRayCount: 256 - m_FinalGatherFiltering: 1 - m_PVRCulling: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_LightProbeSampleCountMultiplier: 4 - m_PVRBounces: 2 - m_PVRMinBounces: 1 - m_PVREnvironmentMIS: 1 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 --- !u!1 &1994719858 GameObject: m_ObjectHideFlags: 0 @@ -2604,6 +2649,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1994719859} + - component: {fileID: 1994719861} + - component: {fileID: 1994719860} m_Layer: 0 m_Name: Player m_TagString: Untagged @@ -2619,11 +2666,51 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1994719858} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 52.4, y: 1.34, z: -125.7} + m_LocalPosition: {x: 52.4, y: 2.18, z: -125.7} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 858622100} - - {fileID: 1317314353} + - {fileID: 1976712285} + - {fileID: 823167766} m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1994719860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994719858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b72108129d580004fb9f25288d386a6f, type: 3} + m_Name: + m_EditorClassIdentifier: + controller: {fileID: 1994719861} + speed: 12 + gravity: -19.62 + groundCheck: {fileID: 823167766} + groundDistance: 0.4 + groundMask: + serializedVersion: 2 + m_Bits: 8 + jumpHeight: 3 +--- !u!143 &1994719861 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994719858} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Height: 2 + m_Radius: 0.5 + m_SlopeLimit: 45 + m_StepOffset: 0.7 + m_SkinWidth: 0.08 + m_MinMoveDistance: 0.001 + m_Center: {x: 0, y: 0, z: 0} diff --git a/TrainingField/Assets/Scripts.meta b/TrainingField/Assets/Scripts.meta new file mode 100644 index 0000000..e5a72ee --- /dev/null +++ b/TrainingField/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 269f73cbc10f6a04da32b8b29de78cdb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Scripts/clamp.cs b/TrainingField/Assets/Scripts/clamp.cs new file mode 100644 index 0000000..7be2410 --- /dev/null +++ b/TrainingField/Assets/Scripts/clamp.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Numerics; +using UnityEngine; +using Quaternion = UnityEngine.Quaternion; +using Vector3 = UnityEngine.Vector3; + +public class clamp : MonoBehaviour +{ + public float mouseSensitivity = 100f; + + public Transform playerBody; + + private float xRotation = 0f; + // Start is called before the first frame update + void Start() + { + Cursor.lockState = CursorLockMode.Locked; + } + + // Update is called once per frame + void Update() + { + float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime; + float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime; + xRotation -= mouseY; + xRotation = Mathf.Clamp(xRotation, -90f, 90f); + + transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f); + playerBody.Rotate(Vector3.up * mouseX); + } +} diff --git a/TrainingField/Assets/Scripts/clamp.cs.meta b/TrainingField/Assets/Scripts/clamp.cs.meta new file mode 100644 index 0000000..3722812 --- /dev/null +++ b/TrainingField/Assets/Scripts/clamp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 301c22787d1e65f44b09bf8073315244 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Scripts/movement.cs b/TrainingField/Assets/Scripts/movement.cs new file mode 100644 index 0000000..cd665c7 --- /dev/null +++ b/TrainingField/Assets/Scripts/movement.cs @@ -0,0 +1,54 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class movement : MonoBehaviour +{ + public CharacterController controller; + + public float speed = 12f; + + private Vector3 velocity; + + public float gravity = -9.81f; + + public Transform groundCheck; + + public float groundDistance = 0.4f; + + public LayerMask groundMask; + + private bool isGrounded; + + public float jumpHeight = 3f; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask); + + if (isGrounded && velocity.y < 0) + { + velocity.y = -2f; + } + float x = Input.GetAxis("Horizontal"); + float z = Input.GetAxis("Vertical"); + + Vector3 move = transform.right * x + transform.forward * z; + + controller.Move(move * speed * Time.deltaTime); + + if (Input.GetButtonDown("Jump") && isGrounded) + { + velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity); + } + + velocity.y += gravity * Time.deltaTime; + controller.Move(velocity * Time.deltaTime); + } +} diff --git a/TrainingField/Assets/Scripts/movement.cs.meta b/TrainingField/Assets/Scripts/movement.cs.meta new file mode 100644 index 0000000..cb212f6 --- /dev/null +++ b/TrainingField/Assets/Scripts/movement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b72108129d580004fb9f25288d386a6f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs.meta b/TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs.meta new file mode 100644 index 0000000..af695a1 --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/B_MovementTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8861a75918342b941bfbccad0dbd79da +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/ProjectSettings/InputManager.asset b/TrainingField/ProjectSettings/InputManager.asset index 17c8f53..3c222b1 100644 --- a/TrainingField/ProjectSettings/InputManager.asset +++ b/TrainingField/ProjectSettings/InputManager.asset @@ -111,7 +111,7 @@ InputManager: altPositiveButton: gravity: 0 dead: 0 - sensitivity: 0.1 + sensitivity: 0.5 snap: 0 invert: 0 type: 1 @@ -127,7 +127,7 @@ InputManager: altPositiveButton: gravity: 0 dead: 0 - sensitivity: 0.1 + sensitivity: 0.5 snap: 0 invert: 0 type: 1 From 48ea69c70abc991e746c77e829bfcc8e8f0261df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fr=C4=B1?= Date: Mon, 11 Jul 2022 17:22:58 +0300 Subject: [PATCH 13/16] Stage 3 is completed --- TrainingField/Assets/Scenes/Application.unity | 1224 ++++++++++++++++- TrainingField/Assets/Scripts/clamp.cs | 43 + TrainingField/Assets/Scripts/movement.cs | 12 +- .../Tests/PlayMode/C_SettingsTest.cs.meta | 11 + 4 files changed, 1279 insertions(+), 11 deletions(-) create mode 100644 TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs.meta diff --git a/TrainingField/Assets/Scenes/Application.unity b/TrainingField/Assets/Scenes/Application.unity index 2612f20..fe3539d 100644 --- a/TrainingField/Assets/Scenes/Application.unity +++ b/TrainingField/Assets/Scenes/Application.unity @@ -123,6 +123,235 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &137058353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 137058354} + - component: {fileID: 137058356} + - component: {fileID: 137058355} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &137058354 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 137058353} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1810285916} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &137058355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 137058353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &137058356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 137058353} + m_CullTransparentMesh: 1 +--- !u!1 &222515640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 222515641} + - component: {fileID: 222515643} + - component: {fileID: 222515642} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &222515641 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 222515640} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1746903133} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &222515642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 222515640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &222515643 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 222515640} + m_CullTransparentMesh: 1 +--- !u!1 &273127213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 273127214} + - component: {fileID: 273127216} + - component: {fileID: 273127215} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &273127214 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 273127213} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1746903133} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 15} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &273127215 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 273127213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Sensitivity +--- !u!222 &273127216 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 273127213} + m_CullTransparentMesh: 1 --- !u!1 &302929807 GameObject: m_ObjectHideFlags: 0 @@ -1729,6 +1958,172 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &417503352 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 417503356} + - component: {fileID: 417503355} + - component: {fileID: 417503354} + - component: {fileID: 417503353} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &417503353 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 417503352} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &417503354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 417503352} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &417503355 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 417503352} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 858622099} + m_PlaneDistance: 1 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &417503356 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 417503352} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1095620425} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &505236523 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 505236526} + - component: {fileID: 505236525} + - component: {fileID: 505236524} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &505236524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505236523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &505236525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505236523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &505236526 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505236523} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!43 &544011233 Mesh: m_ObjectHideFlags: 0 @@ -1893,6 +2288,78 @@ Mesh: offset: 0 size: 0 path: +--- !u!1 &563622211 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 563622212} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &563622212 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 563622211} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1244815558} + m_Father: {fileID: 1759842850} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &724140511 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 724140512} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &724140512 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 724140511} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1526287586} + m_Father: {fileID: 1746903133} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &823167765 GameObject: m_ObjectHideFlags: 0 @@ -1917,7 +2384,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 823167765} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -1.27, z: 0} + m_LocalPosition: {x: 0, y: -1.132, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1994719859} @@ -2021,6 +2488,8 @@ MonoBehaviour: m_EditorClassIdentifier: mouseSensitivity: 100 playerBody: {fileID: 1994719859} + sensitivitySlider: {fileID: 1746903134} + panel: {fileID: 1095620424} --- !u!1 &982276985 GameObject: m_ObjectHideFlags: 0 @@ -2334,19 +2803,171 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!43 &1231805674 -Mesh: +--- !u!1 &1095620424 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh-90484 - serializedVersion: 10 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 + serializedVersion: 6 + m_Component: + - component: {fileID: 1095620425} + - component: {fileID: 1095620427} + - component: {fileID: 1095620426} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1095620425 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1095620424} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: + - {fileID: 1746903133} + - {fileID: 1759842850} + m_Father: {fileID: 417503356} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1095620426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1095620424} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1095620427 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1095620424} + m_CullTransparentMesh: 1 +--- !u!1 &1105188757 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1105188758} + - component: {fileID: 1105188760} + - component: {fileID: 1105188759} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1105188758 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105188757} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1633502898} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1105188759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105188757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1105188760 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105188757} + m_CullTransparentMesh: 1 +--- !u!43 &1231805674 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh-90484 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 baseVertex: 0 firstVertex: 0 vertexCount: 24 @@ -2498,6 +3119,156 @@ Mesh: offset: 0 size: 0 path: +--- !u!1 &1244815557 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1244815558} + - component: {fileID: 1244815560} + - component: {fileID: 1244815559} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1244815558 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1244815557} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 563622212} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1244815559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1244815557} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1244815560 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1244815557} + m_CullTransparentMesh: 1 +--- !u!1 &1526287585 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1526287586} + - component: {fileID: 1526287588} + - component: {fileID: 1526287587} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1526287586 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526287585} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 724140512} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1526287587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526287585} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1526287588 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526287585} + m_CullTransparentMesh: 1 --- !u!850595691 &1605611744 LightingSettings: m_ObjectHideFlags: 0 @@ -2559,6 +3330,363 @@ LightingSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 +--- !u!1 &1633502897 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1633502898} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1633502898 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633502897} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1105188758} + m_Father: {fileID: 1759842850} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1746903132 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1746903133} + - component: {fileID: 1746903134} + m_Layer: 5 + m_Name: SensSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1746903133 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1746903132} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.5, y: 5, z: 1} + m_Children: + - {fileID: 222515641} + - {fileID: 1810285916} + - {fileID: 724140512} + - {fileID: 273127214} + m_Father: {fileID: 1095620425} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 100} + m_SizeDelta: {x: 500, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1746903134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1746903132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1526287587} + m_FillRect: {fileID: 137058354} + m_HandleRect: {fileID: 1526287586} + m_Direction: 0 + m_MinValue: 0.3 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11500000, guid: 301c22787d1e65f44b09bf8073315244, type: 3} + m_TargetAssemblyTypeName: UnityEditor.MonoScript, UnityEditor.CoreModule + m_MethodName: + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &1759842849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1759842850} + - component: {fileID: 1759842851} + m_Layer: 5 + m_Name: SpeedSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1759842850 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759842849} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.5, y: 5, z: 1} + m_Children: + - {fileID: 2114541026} + - {fileID: 563622212} + - {fileID: 1633502898} + - {fileID: 1809345852} + m_Father: {fileID: 1095620425} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -100} + m_SizeDelta: {x: 500, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1759842851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759842849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1105188759} + m_FillRect: {fileID: 1244815558} + m_HandleRect: {fileID: 1105188758} + m_Direction: 0 + m_MinValue: 0.4 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11500000, guid: b72108129d580004fb9f25288d386a6f, type: 3} + m_TargetAssemblyTypeName: UnityEditor.MonoScript, UnityEditor.CoreModule + m_MethodName: + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &1809345851 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1809345852} + - component: {fileID: 1809345854} + - component: {fileID: 1809345853} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1809345852 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1809345851} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1759842850} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 15} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1809345853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1809345851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Speed +--- !u!222 &1809345854 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1809345851} + m_CullTransparentMesh: 1 +--- !u!1 &1810285915 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1810285916} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1810285916 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1810285915} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 137058354} + m_Father: {fileID: 1746903133} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1976712284 GameObject: m_ObjectHideFlags: 0 @@ -2696,6 +3824,7 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 8 jumpHeight: 3 + speedSlider: {fileID: 1759842851} --- !u!143 &1994719861 CharacterController: m_ObjectHideFlags: 0 @@ -2714,3 +3843,78 @@ CharacterController: m_SkinWidth: 0.08 m_MinMoveDistance: 0.001 m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2114541025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2114541026} + - component: {fileID: 2114541028} + - component: {fileID: 2114541027} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2114541026 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114541025} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1759842850} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2114541027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114541025} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2114541028 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114541025} + m_CullTransparentMesh: 1 diff --git a/TrainingField/Assets/Scripts/clamp.cs b/TrainingField/Assets/Scripts/clamp.cs index 7be2410..6e81b9c 100644 --- a/TrainingField/Assets/Scripts/clamp.cs +++ b/TrainingField/Assets/Scripts/clamp.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using System.Numerics; using UnityEngine; +using UnityEngine.UI; +using Cursor = UnityEngine.Cursor; using Quaternion = UnityEngine.Quaternion; using Vector3 = UnityEngine.Vector3; @@ -13,15 +15,50 @@ public class clamp : MonoBehaviour public Transform playerBody; private float xRotation = 0f; + + private bool pause; + + public Slider sensitivitySlider; + + public GameObject panel; // Start is called before the first frame update void Start() { Cursor.lockState = CursorLockMode.Locked; + pause = false; + panel.SetActive(false); } // Update is called once per frame void Update() { + if (Input.GetKeyDown(KeyCode.Escape)) + { + if (pause == false) + { + panel.SetActive(true); + Time.timeScale = 0f; + Cursor.lockState = CursorLockMode.None; + pause = true; + + } + else + { + pause = false; + } + } + + if (pause) + { + return; + } + + sensitivitySlider.onValueChanged.AddListener(delegate {valueChanged();}); + + panel.SetActive(false); + Time.timeScale = 1f; + Cursor.lockState = CursorLockMode.Locked; + float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime; float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime; xRotation -= mouseY; @@ -29,5 +66,11 @@ void Update() transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f); playerBody.Rotate(Vector3.up * mouseX); + + } + + void valueChanged() + { + mouseSensitivity = 100f * sensitivitySlider.value; } } diff --git a/TrainingField/Assets/Scripts/movement.cs b/TrainingField/Assets/Scripts/movement.cs index cd665c7..37d46b9 100644 --- a/TrainingField/Assets/Scripts/movement.cs +++ b/TrainingField/Assets/Scripts/movement.cs @@ -1,6 +1,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.UI; public class movement : MonoBehaviour { @@ -21,15 +22,19 @@ public class movement : MonoBehaviour private bool isGrounded; public float jumpHeight = 3f; + + public Slider speedSlider; // Start is called before the first frame update void Start() { - + } // Update is called once per frame void Update() { + speedSlider.onValueChanged.AddListener(delegate {valueChanged();}); + isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask); if (isGrounded && velocity.y < 0) @@ -51,4 +56,9 @@ void Update() velocity.y += gravity * Time.deltaTime; controller.Move(velocity * Time.deltaTime); } + + void valueChanged() + { + speed = 12f * speedSlider.value; + } } diff --git a/TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs.meta b/TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs.meta new file mode 100644 index 0000000..f8fbb87 --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/C_SettingsTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db08723e2a66b2e4d9a49e185c899106 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From f34bfb2abb8de2eb24075efcfab3bf62978c50fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fr=C4=B1?= Date: Mon, 11 Jul 2022 21:38:34 +0300 Subject: [PATCH 14/16] Stage 4 is completed --- TrainingField/Assets/Scenes/Application.unity | 949 +++++++++++++++++- TrainingField/Assets/Scripts/movement.cs | 51 +- TrainingField/Assets/Sprites.meta | 8 + TrainingField/Assets/Sprites/New Material.mat | 78 ++ .../Assets/Sprites/New Material.mat.meta | 8 + TrainingField/Assets/Sprites/target.png.meta | 96 ++ .../Tests/PlayMode/D_TargetTest.cs.meta | 11 + 7 files changed, 1158 insertions(+), 43 deletions(-) create mode 100644 TrainingField/Assets/Sprites.meta create mode 100644 TrainingField/Assets/Sprites/New Material.mat create mode 100644 TrainingField/Assets/Sprites/New Material.mat.meta create mode 100644 TrainingField/Assets/Sprites/target.png.meta create mode 100644 TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs.meta diff --git a/TrainingField/Assets/Scenes/Application.unity b/TrainingField/Assets/Scenes/Application.unity index fe3539d..5ebdecd 100644 --- a/TrainingField/Assets/Scenes/Application.unity +++ b/TrainingField/Assets/Scenes/Application.unity @@ -1958,6 +1958,102 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &401596020 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 401596024} + - component: {fileID: 401596023} + - component: {fileID: 401596022} + - component: {fileID: 401596021} + m_Layer: 7 + m_Name: target2 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &401596021 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401596020} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &401596022 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401596020} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &401596023 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401596020} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &401596024 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401596020} + m_LocalRotation: {x: -0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 67.2, y: 6.61, z: -111.67} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 90} --- !u!1 &417503352 GameObject: m_ObjectHideFlags: 0 @@ -2124,6 +2220,102 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &507365251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 507365255} + - component: {fileID: 507365254} + - component: {fileID: 507365253} + - component: {fileID: 507365252} + m_Layer: 7 + m_Name: target3 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &507365252 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507365251} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &507365253 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507365251} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &507365254 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507365251} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &507365255 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507365251} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 80.97, y: 6.61, z: -125.83} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} --- !u!43 &544011233 Mesh: m_ObjectHideFlags: 0 @@ -2324,6 +2516,102 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &688146986 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 688146990} + - component: {fileID: 688146989} + - component: {fileID: 688146988} + - component: {fileID: 688146987} + m_Layer: 7 + m_Name: target1 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &688146987 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688146986} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &688146988 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688146986} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &688146989 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688146986} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &688146990 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688146986} + m_LocalRotation: {x: -0.7071068, y: -0.7071068, z: 0, w: 0} + m_LocalPosition: {x: 41.02, y: 6.61, z: -122.249146} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 90} --- !u!1 &724140511 GameObject: m_ObjectHideFlags: 0 @@ -2360,7 +2648,7 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &823167765 +--- !u!1 &763682849 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2368,56 +2656,152 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 823167766} - m_Layer: 0 - m_Name: GroundCheck - m_TagString: Untagged + - component: {fileID: 763682853} + - component: {fileID: 763682852} + - component: {fileID: 763682851} + - component: {fileID: 763682850} + m_Layer: 7 + m_Name: target4 + m_TagString: Target m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &823167766 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 823167765} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -1.132, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1994719859} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &858622097 -GameObject: +--- !u!64 &763682850 +MeshCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 858622100} - - component: {fileID: 858622099} - - component: {fileID: 858622098} - - component: {fileID: 858622101} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &858622098 -AudioListener: + m_GameObject: {fileID: 763682849} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &763682851 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 858622097} + m_GameObject: {fileID: 763682849} m_Enabled: 1 ---- !u!20 &858622099 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &763682852 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 763682849} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &763682853 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 763682849} + m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 60.27, y: 6.61, z: -164.66} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} +--- !u!1 &823167765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 823167766} + m_Layer: 0 + m_Name: GroundCheck + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &823167766 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823167765} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.156, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1994719859} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &858622097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 858622100} + - component: {fileID: 858622099} + - component: {fileID: 858622098} + - component: {fileID: 858622101} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &858622098 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858622097} + m_Enabled: 1 +--- !u!20 &858622099 Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2467,13 +2851,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 858622097} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -0} + m_LocalRotation: {x: 0.018074062, y: -0, z: -0, w: 0.9998367} + m_LocalPosition: {x: 0, y: 1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1994719859} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 2.071, y: 0, z: 0} --- !u!114 &858622101 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2961,7 +3345,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh-90484 + m_Name: pb_Mesh17044 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -3194,6 +3578,102 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1244815557} m_CullTransparentMesh: 1 +--- !u!1 &1377407812 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1377407816} + - component: {fileID: 1377407815} + - component: {fileID: 1377407814} + - component: {fileID: 1377407813} + m_Layer: 7 + m_Name: target6 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1377407813 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1377407812} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1377407814 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1377407812} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1377407815 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1377407812} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1377407816 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1377407812} + m_LocalRotation: {x: 0.5, y: 0.5, z: -0.5, w: -0.5} + m_LocalPosition: {x: 50.36, y: 6.61, z: -111.69} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 90} --- !u!1 &1526287585 GameObject: m_ObjectHideFlags: 0 @@ -3572,6 +4052,102 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 +--- !u!1 &1787567095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1787567099} + - component: {fileID: 1787567098} + - component: {fileID: 1787567097} + - component: {fileID: 1787567096} + m_Layer: 7 + m_Name: target7 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1787567096 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787567095} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1787567097 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787567095} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1787567098 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787567095} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1787567099 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787567095} + m_LocalRotation: {x: -0.7071068, y: -0.7071068, z: 0, w: 0} + m_LocalPosition: {x: 41.02, y: 6.61, z: -132.39} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 90} --- !u!1 &1809345851 GameObject: m_ObjectHideFlags: 0 @@ -3687,6 +4263,102 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1970833221 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1970833225} + - component: {fileID: 1970833224} + - component: {fileID: 1970833223} + - component: {fileID: 1970833222} + m_Layer: 7 + m_Name: target5 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1970833222 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970833221} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1970833223 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970833221} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1970833224 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970833221} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1970833225 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970833221} + m_LocalRotation: {x: -0.7071068, y: -0.7071068, z: 0, w: 0} + m_LocalPosition: {x: 41.01, y: 6.61, z: -141.38} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 90} --- !u!1 &1976712284 GameObject: m_ObjectHideFlags: 0 @@ -3825,6 +4497,7 @@ MonoBehaviour: m_Bits: 8 jumpHeight: 3 speedSlider: {fileID: 1759842851} + fpsCam: {fileID: 858622099} --- !u!143 &1994719861 CharacterController: m_ObjectHideFlags: 0 @@ -3918,3 +4591,195 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2114541025} m_CullTransparentMesh: 1 +--- !u!1 &2135106800 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2135106804} + - component: {fileID: 2135106803} + - component: {fileID: 2135106802} + - component: {fileID: 2135106801} + m_Layer: 7 + m_Name: target8 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &2135106801 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2135106800} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2135106802 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2135106800} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2135106803 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2135106800} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2135106804 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2135106800} + m_LocalRotation: {x: -0.7071068, y: -0.7071068, z: 0, w: 0} + m_LocalPosition: {x: 41.02, y: 6.61, z: -146} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 90} +--- !u!1 &2140297025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2140297029} + - component: {fileID: 2140297028} + - component: {fileID: 2140297027} + - component: {fileID: 2140297026} + m_Layer: 7 + m_Name: target9 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &2140297026 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140297025} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2140297027 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140297025} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2140297028 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140297025} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2140297029 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140297025} + m_LocalRotation: {x: -0.7071068, y: -0.7071068, z: 0, w: 0} + m_LocalPosition: {x: 41.02, y: 6.61, z: -117.44} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: -180, z: 90} diff --git a/TrainingField/Assets/Scripts/movement.cs b/TrainingField/Assets/Scripts/movement.cs index 37d46b9..bc1896a 100644 --- a/TrainingField/Assets/Scripts/movement.cs +++ b/TrainingField/Assets/Scripts/movement.cs @@ -1,5 +1,7 @@ +using System; using System.Collections; using System.Collections.Generic; +using System.Security.Cryptography; using UnityEngine; using UnityEngine.UI; @@ -24,10 +26,28 @@ public class movement : MonoBehaviour public float jumpHeight = 3f; public Slider speedSlider; + + private List targets; + private int targetIdx; + + public Camera fpsCam; + float range = 100f; + // Start is called before the first frame update void Start() { - + targets = new List(); + targetIdx = 0; + + foreach (var obj in GameObject.FindGameObjectsWithTag("Target")) + { + targets.Add(obj); + } + + for (int i = 1; i < targets.Count; i++) + { + targets[i].SetActive(false); + } } // Update is called once per frame @@ -53,6 +73,11 @@ void Update() velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity); } + if (Input.GetButtonDown("Fire1")) + { + OnClicked(); + } + velocity.y += gravity * Time.deltaTime; controller.Move(velocity * Time.deltaTime); } @@ -61,4 +86,28 @@ void valueChanged() { speed = 12f * speedSlider.value; } + + void OnClicked() + { + RaycastHit hit; + + if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range)) + { + GameObject gameObjectHit = hit.transform.gameObject; + + if (gameObjectHit.CompareTag("Target")) + { + gameObjectHit.SetActive(false); + if (targetIdx + 1 < targets.Count) + { + targetIdx += 1; + } + else + { + targetIdx = 0; + } + targets[targetIdx].SetActive(true); + } + } + } } diff --git a/TrainingField/Assets/Sprites.meta b/TrainingField/Assets/Sprites.meta new file mode 100644 index 0000000..0c67d62 --- /dev/null +++ b/TrainingField/Assets/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bfd192762f415eb459f76d8848714f87 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Sprites/New Material.mat b/TrainingField/Assets/Sprites/New Material.mat new file mode 100644 index 0000000..7d28a78 --- /dev/null +++ b/TrainingField/Assets/Sprites/New Material.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Material + m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9ed89c5d9d476c34ea5349509d17ef5d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/TrainingField/Assets/Sprites/New Material.mat.meta b/TrainingField/Assets/Sprites/New Material.mat.meta new file mode 100644 index 0000000..16c2126 --- /dev/null +++ b/TrainingField/Assets/Sprites/New Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18b4db07069afcc4e9d8efad9a6903be +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Sprites/target.png.meta b/TrainingField/Assets/Sprites/target.png.meta new file mode 100644 index 0000000..6afdd0e --- /dev/null +++ b/TrainingField/Assets/Sprites/target.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 9ed89c5d9d476c34ea5349509d17ef5d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs.meta b/TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs.meta new file mode 100644 index 0000000..67f5eac --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/D_TargetTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5828b55d56ccbe46b95effcfe5511fd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From cba5838524063b73766da8f21e152fbddd5aceb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fr=C4=B1?= Date: Wed, 13 Jul 2022 14:35:11 +0300 Subject: [PATCH 15/16] Stage 5 is completed --- TrainingField/Assets/Scenes/Application.unity | 1187 ++++++++++++++++- TrainingField/Assets/Scripts/movement.cs | 36 +- .../Assets/Tests/PlayMode/E_ScoreLoseTest.cs | 2 +- .../Tests/PlayMode/E_ScoreLoseTest.cs.meta | 11 + .../Assets/Tests/PlayMode/ShootScript.cs.meta | 11 + 5 files changed, 1193 insertions(+), 54 deletions(-) create mode 100644 TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs.meta create mode 100644 TrainingField/Assets/Tests/PlayMode/ShootScript.cs.meta diff --git a/TrainingField/Assets/Scenes/Application.unity b/TrainingField/Assets/Scenes/Application.unity index 5ebdecd..a078eb3 100644 --- a/TrainingField/Assets/Scenes/Application.unity +++ b/TrainingField/Assets/Scenes/Application.unity @@ -123,6 +123,102 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &72378850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 72378854} + - component: {fileID: 72378853} + - component: {fileID: 72378852} + - component: {fileID: 72378851} + m_Layer: 7 + m_Name: target12 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &72378851 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72378850} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &72378852 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72378850} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &72378853 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72378850} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &72378854 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72378850} + m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 44.37, y: 6.61, z: -164.66} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} --- !u!1 &137058353 GameObject: m_ObjectHideFlags: 0 @@ -273,6 +369,102 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 222515640} m_CullTransparentMesh: 1 +--- !u!1 &259374602 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 259374606} + - component: {fileID: 259374605} + - component: {fileID: 259374604} + - component: {fileID: 259374603} + m_Layer: 7 + m_Name: target17 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &259374603 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259374602} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &259374604 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259374602} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &259374605 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259374602} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &259374606 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259374602} + m_LocalRotation: {x: 0.5, y: 0.5, z: -0.5, w: -0.5} + m_LocalPosition: {x: 74.53, y: 8.34, z: -111.69} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 22 + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 90} --- !u!1 &273127213 GameObject: m_ObjectHideFlags: 0 @@ -1958,6 +2150,81 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349125135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349125136} + - component: {fileID: 349125138} + - component: {fileID: 349125137} + m_Layer: 5 + m_Name: Crosshair + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &349125136 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349125135} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_Children: [] + m_Father: {fileID: 417503356} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &349125137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349125135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &349125138 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349125135} + m_CullTransparentMesh: 1 --- !u!1 &401596020 GameObject: m_ObjectHideFlags: 0 @@ -2146,6 +2413,9 @@ RectTransform: m_LocalScale: {x: 0, y: 0, z: 0} m_Children: - {fileID: 1095620425} + - {fileID: 349125136} + - {fileID: 857437458} + - {fileID: 1308675457} m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2154,7 +2424,7 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} ---- !u!1 &505236523 +--- !u!1 &501215679 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2162,42 +2432,138 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 505236526} - - component: {fileID: 505236525} - - component: {fileID: 505236524} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged + - component: {fileID: 501215683} + - component: {fileID: 501215682} + - component: {fileID: 501215681} + - component: {fileID: 501215680} + m_Layer: 7 + m_Name: target16 + m_TagString: Target m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &505236524 -MonoBehaviour: +--- !u!64 &501215680 +MeshCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 505236523} + m_GameObject: {fileID: 501215679} + m_Material: {fileID: 0} + m_IsTrigger: 1 m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &505236525 -MonoBehaviour: + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &501215681 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 505236523} + m_GameObject: {fileID: 501215679} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &501215682 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501215679} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &501215683 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501215679} + m_LocalRotation: {x: 0.5, y: 0.5, z: -0.5, w: -0.5} + m_LocalPosition: {x: 59.19, y: 3.49, z: -111.69} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 21 + m_LocalEulerAnglesHint: {x: 0, y: 270, z: 90} +--- !u!1 &505236523 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 505236526} + - component: {fileID: 505236525} + - component: {fileID: 505236524} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &505236524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505236523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &505236525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505236523} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} @@ -2322,7 +2688,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh-78886 + m_Name: pb_Mesh58370 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -2612,6 +2978,102 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: -180, z: 90} +--- !u!1 &700428434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 700428438} + - component: {fileID: 700428437} + - component: {fileID: 700428436} + - component: {fileID: 700428435} + m_Layer: 7 + m_Name: target14 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &700428435 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700428434} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &700428436 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700428434} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &700428437 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700428434} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &700428438 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700428434} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 80.97, y: 8.78, z: -138.14} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} --- !u!1 &724140511 GameObject: m_ObjectHideFlags: 0 @@ -2774,6 +3236,81 @@ Transform: m_Father: {fileID: 1994719859} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &857437457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 857437458} + - component: {fileID: 857437460} + - component: {fileID: 857437459} + m_Layer: 5 + m_Name: Timer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &857437458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 857437457} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 5, y: 0.4, z: 1} + m_Children: [] + m_Father: {fileID: 417503356} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.1, y: 0.1} + m_AnchorMax: {x: 0.25, y: 0.25} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &857437459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 857437457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &857437460 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 857437457} + m_CullTransparentMesh: 1 --- !u!1 &858622097 GameObject: m_ObjectHideFlags: 0 @@ -3214,10 +3751,11 @@ RectTransform: m_GameObject: {fileID: 1095620424} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_LocalScale: {x: 0.3, y: 0.5, z: 0.3} m_Children: - {fileID: 1746903133} - {fileID: 1759842850} + - {fileID: 1464994227} m_Father: {fileID: 417503356} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -3339,32 +3877,128 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1105188757} m_CullTransparentMesh: 1 ---- !u!43 &1231805674 -Mesh: +--- !u!1 &1185098743 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh17044 - serializedVersion: 10 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 30, y: 0.5, z: -32.5} - m_Extent: {x: 30, y: 0.5, z: 32.5} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: + serializedVersion: 6 + m_Component: + - component: {fileID: 1185098747} + - component: {fileID: 1185098746} + - component: {fileID: 1185098745} + - component: {fileID: 1185098744} + m_Layer: 7 + m_Name: target11 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1185098744 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1185098743} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1185098745 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1185098743} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1185098746 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1185098743} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1185098747 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1185098743} + m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 53.68, y: 3.85, z: -164.66} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} +--- !u!43 &1231805674 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh58500 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 30, y: 0.5, z: -32.5} + m_Extent: {x: 30, y: 0.5, z: 32.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: m_RootBoneNameHash: 0 m_BonesAABB: [] m_VariableBoneCountWeights: @@ -3578,6 +4212,85 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1244815557} m_CullTransparentMesh: 1 +--- !u!1 &1308675456 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1308675457} + - component: {fileID: 1308675459} + - component: {fileID: 1308675458} + m_Layer: 5 + m_Name: Score + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1308675457 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308675456} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.36991087} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 417503356} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.1, y: 0.1} + m_AnchorMax: {x: 0.25, y: 0.25} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1308675458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308675456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!222 &1308675459 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308675456} + m_CullTransparentMesh: 1 --- !u!1 &1377407812 GameObject: m_ObjectHideFlags: 0 @@ -3674,6 +4387,181 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 270, z: 90} +--- !u!1 &1464994226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1464994227} + - component: {fileID: 1464994229} + - component: {fileID: 1464994228} + m_Layer: 5 + m_Name: MaxScore + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1464994227 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464994226} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1.2285317} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1095620425} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.1, y: 0.1} + m_AnchorMax: {x: 0.25, y: 0.25} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1464994228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464994226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 60 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 60 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!222 &1464994229 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464994226} + m_CullTransparentMesh: 1 +--- !u!1 &1479101785 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1479101789} + - component: {fileID: 1479101788} + - component: {fileID: 1479101787} + - component: {fileID: 1479101786} + m_Layer: 7 + m_Name: target13 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1479101786 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479101785} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1479101787 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479101785} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1479101788 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479101785} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1479101789 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479101785} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 80.97, y: 3.77, z: -118.26} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} --- !u!1 &1526287585 GameObject: m_ObjectHideFlags: 0 @@ -3846,6 +4734,102 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1733808699 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1733808703} + - component: {fileID: 1733808702} + - component: {fileID: 1733808701} + - component: {fileID: 1733808700} + m_Layer: 7 + m_Name: target15 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1733808700 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733808699} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1733808701 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733808699} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1733808702 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733808699} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1733808703 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733808699} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 80.97, y: 5.29, z: -147.97} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} --- !u!1 &1746903132 GameObject: m_ObjectHideFlags: 0 @@ -3872,7 +4856,7 @@ RectTransform: m_GameObject: {fileID: 1746903132} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 2.5, y: 5, z: 1} + m_LocalScale: {x: 2.5, y: 3, z: 1} m_Children: - {fileID: 222515641} - {fileID: 1810285916} @@ -3883,7 +4867,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 100} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 500, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1746903134 @@ -3975,7 +4959,7 @@ RectTransform: m_GameObject: {fileID: 1759842849} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 2.5, y: 5, z: 1} + m_LocalScale: {x: 2.5, y: 3, z: 1} m_Children: - {fileID: 2114541026} - {fileID: 563622212} @@ -3986,7 +4970,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -100} + m_AnchoredPosition: {x: 0, y: -150} m_SizeDelta: {x: 500, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1759842851 @@ -4148,6 +5132,102 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 12 m_LocalEulerAnglesHint: {x: 0, y: -180, z: 90} +--- !u!1 &1792217324 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1792217328} + - component: {fileID: 1792217327} + - component: {fileID: 1792217326} + - component: {fileID: 1792217325} + m_Layer: 7 + m_Name: target10 + m_TagString: Target + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1792217325 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792217324} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1792217326 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792217324} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 18b4db07069afcc4e9d8efad9a6903be, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1792217327 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792217324} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1792217328 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792217324} + m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 73.79, y: 8.84, z: -164.66} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} --- !u!1 &1809345851 GameObject: m_ObjectHideFlags: 0 @@ -4498,6 +5578,9 @@ MonoBehaviour: jumpHeight: 3 speedSlider: {fileID: 1759842851} fpsCam: {fileID: 858622099} + scoreText: {fileID: 1308675458} + maxScoreText: {fileID: 1464994228} + timer: {fileID: 857437457} --- !u!143 &1994719861 CharacterController: m_ObjectHideFlags: 0 diff --git a/TrainingField/Assets/Scripts/movement.cs b/TrainingField/Assets/Scripts/movement.cs index bc1896a..30c6a9c 100644 --- a/TrainingField/Assets/Scripts/movement.cs +++ b/TrainingField/Assets/Scripts/movement.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Security.Cryptography; using UnityEngine; +using UnityEngine.SceneManagement; using UnityEngine.UI; public class movement : MonoBehaviour @@ -32,12 +33,24 @@ public class movement : MonoBehaviour public Camera fpsCam; float range = 100f; + + public Text scoreText; + public Text maxScoreText; + private int score; + + private int maxScore; + + private float timeRemaining = 10f; + + public GameObject timer; // Start is called before the first frame update void Start() { targets = new List(); targetIdx = 0; + score = 0; + maxScore = 0; foreach (var obj in GameObject.FindGameObjectsWithTag("Target")) { @@ -53,6 +66,16 @@ void Start() // Update is called once per frame void Update() { + if (timeRemaining > 0) + { + timeRemaining -= Time.deltaTime; + timer.GetComponent().fillAmount = timeRemaining / 3f; + } + else if (timeRemaining <= 0) + { + SceneManager.LoadScene("Application"); + } + speedSlider.onValueChanged.AddListener(delegate {valueChanged();}); isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask); @@ -95,9 +118,20 @@ void OnClicked() { GameObject gameObjectHit = hit.transform.gameObject; - if (gameObjectHit.CompareTag("Target")) + if (gameObjectHit.CompareTag("Target") && gameObjectHit != null) { gameObjectHit.SetActive(false); + score += 10; + timeRemaining = 10f; + + if (score > maxScore) + { + maxScore = score; + maxScoreText.text = $"{maxScore}"; + } + + scoreText.text = $"{score}"; + if (targetIdx + 1 < targets.Count) { targetIdx += 1; diff --git a/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs b/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs index 9df4d99..8e514bc 100644 --- a/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs +++ b/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs @@ -163,7 +163,7 @@ public IEnumerator TimerCheck() for (int i = 0; i < 10; i++) { - yield return new WaitForSeconds(0.1f); + yield return new WaitForSeconds(0.2f); if (!(timerImg.fillAmount < amWas)) { Assert.Fail("\"Timer\"'s image fill amount should decrease with time"); diff --git a/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs.meta b/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs.meta new file mode 100644 index 0000000..710d51b --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/E_ScoreLoseTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 067e47632ed10ec44a94038cf87f0b0d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Tests/PlayMode/ShootScript.cs.meta b/TrainingField/Assets/Tests/PlayMode/ShootScript.cs.meta new file mode 100644 index 0000000..b194c55 --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/ShootScript.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 872c3e9a9ca4a7547912083e09be2eae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 12f176727deaea63b17c47a92f531ed42d0b4ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9Fr=C4=B1?= Date: Thu, 14 Jul 2022 00:33:31 +0300 Subject: [PATCH 16/16] Stage 6 is completed --- TrainingField/Assets/Scenes/Application.unity | 89 +++++++++- .../Assets/Scenes/Application_Profiles.meta | 8 + .../Application_Profiles/Player Profile.asset | 155 ++++++++++++++++++ .../Player Profile.asset.meta | 8 + TrainingField/Assets/Scripts/movement.cs | 46 +++++- .../Tests/PlayMode/F_RaycastScoreTest.cs.meta | 11 ++ 6 files changed, 308 insertions(+), 9 deletions(-) create mode 100644 TrainingField/Assets/Scenes/Application_Profiles.meta create mode 100644 TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset create mode 100644 TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset.meta create mode 100644 TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs.meta diff --git a/TrainingField/Assets/Scenes/Application.unity b/TrainingField/Assets/Scenes/Application.unity index a078eb3..9e29278 100644 --- a/TrainingField/Assets/Scenes/Application.unity +++ b/TrainingField/Assets/Scenes/Application.unity @@ -2972,7 +2972,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 688146986} m_LocalRotation: {x: -0.7071068, y: -0.7071068, z: 0, w: 0} - m_LocalPosition: {x: 41.02, y: 6.61, z: -122.249146} + m_LocalPosition: {x: 41.02, y: 6.61, z: -122.2491} m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} m_Children: [] m_Father: {fileID: 0} @@ -3215,7 +3215,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 823167766} - m_Layer: 0 + m_Layer: 8 m_Name: GroundCheck m_TagString: Untagged m_Icon: {fileID: 0} @@ -3323,7 +3323,8 @@ GameObject: - component: {fileID: 858622099} - component: {fileID: 858622098} - component: {fileID: 858622101} - m_Layer: 0 + - component: {fileID: 858622102} + m_Layer: 8 m_Name: Main Camera m_TagString: MainCamera m_Icon: {fileID: 0} @@ -3411,6 +3412,66 @@ MonoBehaviour: playerBody: {fileID: 1994719859} sensitivitySlider: {fileID: 1746903134} panel: {fileID: 1095620424} +--- !u!114 &858622102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858622097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} + m_Name: + m_EditorClassIdentifier: + volumeTrigger: {fileID: 858622100} + volumeLayer: + serializedVersion: 2 + m_Bits: 256 + stopNaNPropagation: 1 + finalBlitToCameraTarget: 0 + antialiasingMode: 0 + temporalAntialiasing: + jitterSpread: 0.75 + sharpness: 0.25 + stationaryBlending: 0.95 + motionBlending: 0.85 + subpixelMorphologicalAntialiasing: + quality: 2 + fastApproximateAntialiasing: + fastMode: 0 + keepAlpha: 0 + fog: + enabled: 1 + excludeSkybox: 1 + debugLayer: + lightMeter: + width: 512 + height: 256 + showCurves: 1 + histogram: + width: 512 + height: 256 + channel: 3 + waveform: + exposure: 0.12 + height: 256 + vectorscope: + size: 256 + exposure: 0.12 + overlaySettings: + linearDepth: 0 + motionColorIntensity: 4 + motionGridSize: 64 + colorBlindnessType: 0 + colorBlindnessStrength: 1 + m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} + m_ShowToolkit: 0 + m_ShowCustomSorter: 0 + breakBeforeColorGrading: 0 + m_BeforeTransparentBundles: [] + m_BeforeStackBundles: [] + m_AfterStackBundles: [] --- !u!1 &982276985 GameObject: m_ObjectHideFlags: 0 @@ -5450,7 +5511,7 @@ GameObject: - component: {fileID: 1976712285} - component: {fileID: 1976712287} - component: {fileID: 1976712286} - m_Layer: 0 + m_Layer: 8 m_Name: PlayerModel m_TagString: Untagged m_Icon: {fileID: 0} @@ -5531,7 +5592,8 @@ GameObject: - component: {fileID: 1994719859} - component: {fileID: 1994719861} - component: {fileID: 1994719860} - m_Layer: 0 + - component: {fileID: 1994719862} + m_Layer: 8 m_Name: Player m_TagString: Untagged m_Icon: {fileID: 0} @@ -5599,6 +5661,23 @@ CharacterController: m_SkinWidth: 0.08 m_MinMoveDistance: 0.001 m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1994719862 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994719858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3} + m_Name: + m_EditorClassIdentifier: + sharedProfile: {fileID: 11400000, guid: d798952d13bd8ae498022f15b5f4af30, type: 2} + isGlobal: 1 + blendDistance: 0 + weight: 1 + priority: 0 --- !u!1 &2114541025 GameObject: m_ObjectHideFlags: 0 diff --git a/TrainingField/Assets/Scenes/Application_Profiles.meta b/TrainingField/Assets/Scenes/Application_Profiles.meta new file mode 100644 index 0000000..2328769 --- /dev/null +++ b/TrainingField/Assets/Scenes/Application_Profiles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 633c7d9bcbc6d024a98b232aca6d81bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset b/TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset new file mode 100644 index 0000000..a79c230 --- /dev/null +++ b/TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7442501514860813122 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a34fa72bd4185749832024e9c8010bf, type: 3} + m_Name: ScreenSpaceReflections + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + preset: + overrideState: 0 + value: 2 + maximumIterationCount: + overrideState: 0 + value: 16 + resolution: + overrideState: 0 + value: 0 + thickness: + overrideState: 0 + value: 8 + maximumMarchDistance: + overrideState: 0 + value: 100 + distanceFade: + overrideState: 0 + value: 0.5 + vignette: + overrideState: 0 + value: 0.5 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3} + m_Name: Player Profile + m_EditorClassIdentifier: + settings: + - {fileID: 6046199011747754553} + - {fileID: 8164930184176216681} + - {fileID: 1481604481763912907} + - {fileID: -7442501514860813122} +--- !u!114 &1481604481763912907 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 556797029e73b2347956b6579e77e05b, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + focusDistance: + overrideState: 0 + value: 10 + aperture: + overrideState: 0 + value: 5.6 + focalLength: + overrideState: 0 + value: 50 + kernelSize: + overrideState: 0 + value: 1 +--- !u!114 &6046199011747754553 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94fcd11afffcb142908bfcb1e261fba, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + shutterAngle: + overrideState: 0 + value: 270 + sampleCount: + overrideState: 0 + value: 10 +--- !u!114 &8164930184176216681 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c1cb7e9e120078f43bce4f0b1be547a7, type: 3} + m_Name: AmbientOcclusion + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + mode: + overrideState: 0 + value: 1 + intensity: + overrideState: 0 + value: 0 + color: + overrideState: 0 + value: {r: 0, g: 0, b: 0, a: 1} + ambientOnly: + overrideState: 0 + value: 1 + noiseFilterTolerance: + overrideState: 0 + value: 0 + blurTolerance: + overrideState: 0 + value: -4.6 + upsampleTolerance: + overrideState: 0 + value: -12 + thicknessModifier: + overrideState: 0 + value: 1 + directLightingStrength: + overrideState: 0 + value: 0 + radius: + overrideState: 0 + value: 0.25 + quality: + overrideState: 0 + value: 2 diff --git a/TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset.meta b/TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset.meta new file mode 100644 index 0000000..52652da --- /dev/null +++ b/TrainingField/Assets/Scenes/Application_Profiles/Player Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d798952d13bd8ae498022f15b5f4af30 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TrainingField/Assets/Scripts/movement.cs b/TrainingField/Assets/Scripts/movement.cs index 30c6a9c..0f0cb1d 100644 --- a/TrainingField/Assets/Scripts/movement.cs +++ b/TrainingField/Assets/Scripts/movement.cs @@ -5,6 +5,7 @@ using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; +using Random = UnityEngine.Random; public class movement : MonoBehaviour { @@ -41,7 +42,7 @@ public class movement : MonoBehaviour private int maxScore; - private float timeRemaining = 10f; + private float timeRemaining = 3f; public GameObject timer; // Start is called before the first frame update @@ -120,9 +121,44 @@ void OnClicked() if (gameObjectHit.CompareTag("Target") && gameObjectHit != null) { - gameObjectHit.SetActive(false); - score += 10; - timeRemaining = 10f; + Bounds bounds = gameObjectHit.GetComponent().bounds; + + float radius = 0; + + if (bounds.size.x > bounds.size.y && bounds.size.z > bounds.size.y) + { + radius = bounds.size.x/2; + }else if (bounds.size.y > bounds.size.x && bounds.size.z > bounds.size.x) + { + radius = bounds.size.z/2; + }else if (bounds.size.y > bounds.size.z && bounds.size.x > bounds.size.z) + { + radius = bounds.size.x/2; + } + + RaycastHit[] hitArray = Physics.RaycastAll(Camera.main.transform.position, Camera.main.transform.forward); + RaycastHit exact = Array.Find(hitArray, e => e.collider.gameObject.layer == LayerMask.NameToLayer("Target")); + + float dist = Vector3.Distance(exact.point, bounds.center); + + int points; + + if (dist > radius) + { + points = 1; + }else if(dist/radius>2f/3f) + { + points = 3; + }else if(dist/radius>1f/6f) + { + points = 5; + }else + { + points = 10; + } + + score += points; + timeRemaining = 3f; if (score > maxScore) { @@ -140,6 +176,8 @@ void OnClicked() { targetIdx = 0; } + + gameObjectHit.SetActive(false); targets[targetIdx].SetActive(true); } } diff --git a/TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs.meta b/TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs.meta new file mode 100644 index 0000000..43d6be5 --- /dev/null +++ b/TrainingField/Assets/Tests/PlayMode/F_RaycastScoreTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42c17e4152a19cd47a301f75da9c7edd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: