From 4d9eb251a6e8c3e1d13ad7288167ae7b3d616929 Mon Sep 17 00:00:00 2001 From: cyrilmanayath Date: Wed, 28 Sep 2016 04:16:23 -0400 Subject: [PATCH 1/9] first push for Unity --- .../Materials/body_color_map.mat | Bin 0 -> 5016 bytes .../Materials/body_color_map.mat.meta | 8 + .../Materials/eyes_color_map.mat | Bin 0 -> 5016 bytes .../Materials/eyes_color_map.mat.meta | 8 + .../Materials/face_color_map.mat | Bin 0 -> 5016 bytes .../Materials/face_color_map.mat.meta | 8 + .../Locomotion Pack/JumpUpHigh.fbm.meta | 4 +- Assets/_B1.meta | 9 + Assets/_B1/b1_main.meta | 9 + Assets/_B1/b1_main.unity | Bin 0 -> 96056 bytes Assets/_B1/b1_main.unity.meta | 8 + Assets/_B1/b1_main/NavMesh.asset | Bin 0 -> 37472 bytes Assets/_B1/b1_main/NavMesh.asset.meta | 8 + Assets/_B1/prefabs.meta | 9 + Assets/_B1/prefabs/almostTallBrick.prefab | Bin 0 -> 6832 bytes .../_B1/prefabs/almostTallBrick.prefab.meta | 8 + Assets/_B1/prefabs/mediumBrick.prefab | Bin 0 -> 6824 bytes Assets/_B1/prefabs/mediumBrick.prefab.meta | 8 + Assets/_B1/prefabs/smallBrick.prefab | Bin 0 -> 6824 bytes Assets/_B1/prefabs/smallBrick.prefab.meta | 8 + Assets/_B1/prefabs/tallBrick.prefab | Bin 0 -> 6824 bytes Assets/_B1/prefabs/tallBrick.prefab.meta | 8 + Assets/_B1/scripts.meta | 9 + Assets/_B1/scripts/AgentScript.cs | 35 +++ Assets/_B1/scripts/AgentScript.cs.meta | 12 + Assets/_B1/scripts/Director.cs | 228 ++++++++++++++++++ Assets/_B1/scripts/Director.cs.meta | 12 + Assets/_B1/scripts/MainCamera.cs | 66 +++++ Assets/_B1/scripts/MainCamera.cs.meta | 12 + Assets/_B1/scripts/movingBarrier.cs | 36 +++ Assets/_B1/scripts/movingBarrier.cs.meta | 12 + Assets/_B1/textures.meta | 9 + Assets/_B1/textures/blocks.mat | Bin 0 -> 5020 bytes Assets/_B1/textures/blocks.mat.meta | 8 + Assets/_B1/textures/fastTrack.mat | Bin 0 -> 5024 bytes Assets/_B1/textures/fastTrack.mat.meta | 8 + Assets/_B1/textures/ground.mat | Bin 0 -> 5020 bytes Assets/_B1/textures/ground.mat.meta | 8 + Assets/_B1/textures/ramp+shortWalls.mat | Bin 0 -> 5028 bytes Assets/_B1/textures/ramp+shortWalls.mat.meta | 8 + Assets/_B1/textures/tallWalls.mat | Bin 0 -> 5024 bytes Assets/_B1/textures/tallWalls.mat.meta | 8 + ProjectSettings/NavMeshAreas.asset | Bin 4384 -> 4404 bytes ProjectSettings/TagManager.asset | Bin 4332 -> 4376 bytes 44 files changed, 572 insertions(+), 2 deletions(-) create mode 100644 Assets/Animations/Interactions Pack/Materials/body_color_map.mat create mode 100644 Assets/Animations/Interactions Pack/Materials/body_color_map.mat.meta create mode 100644 Assets/Animations/Interactions Pack/Materials/eyes_color_map.mat create mode 100644 Assets/Animations/Interactions Pack/Materials/eyes_color_map.mat.meta create mode 100644 Assets/Animations/Interactions Pack/Materials/face_color_map.mat create mode 100644 Assets/Animations/Interactions Pack/Materials/face_color_map.mat.meta create mode 100644 Assets/_B1.meta create mode 100644 Assets/_B1/b1_main.meta create mode 100644 Assets/_B1/b1_main.unity create mode 100644 Assets/_B1/b1_main.unity.meta create mode 100644 Assets/_B1/b1_main/NavMesh.asset create mode 100644 Assets/_B1/b1_main/NavMesh.asset.meta create mode 100644 Assets/_B1/prefabs.meta create mode 100644 Assets/_B1/prefabs/almostTallBrick.prefab create mode 100644 Assets/_B1/prefabs/almostTallBrick.prefab.meta create mode 100644 Assets/_B1/prefabs/mediumBrick.prefab create mode 100644 Assets/_B1/prefabs/mediumBrick.prefab.meta create mode 100644 Assets/_B1/prefabs/smallBrick.prefab create mode 100644 Assets/_B1/prefabs/smallBrick.prefab.meta create mode 100644 Assets/_B1/prefabs/tallBrick.prefab create mode 100644 Assets/_B1/prefabs/tallBrick.prefab.meta create mode 100644 Assets/_B1/scripts.meta create mode 100644 Assets/_B1/scripts/AgentScript.cs create mode 100644 Assets/_B1/scripts/AgentScript.cs.meta create mode 100644 Assets/_B1/scripts/Director.cs create mode 100644 Assets/_B1/scripts/Director.cs.meta create mode 100644 Assets/_B1/scripts/MainCamera.cs create mode 100644 Assets/_B1/scripts/MainCamera.cs.meta create mode 100644 Assets/_B1/scripts/movingBarrier.cs create mode 100644 Assets/_B1/scripts/movingBarrier.cs.meta create mode 100644 Assets/_B1/textures.meta create mode 100644 Assets/_B1/textures/blocks.mat create mode 100644 Assets/_B1/textures/blocks.mat.meta create mode 100644 Assets/_B1/textures/fastTrack.mat create mode 100644 Assets/_B1/textures/fastTrack.mat.meta create mode 100644 Assets/_B1/textures/ground.mat create mode 100644 Assets/_B1/textures/ground.mat.meta create mode 100644 Assets/_B1/textures/ramp+shortWalls.mat create mode 100644 Assets/_B1/textures/ramp+shortWalls.mat.meta create mode 100644 Assets/_B1/textures/tallWalls.mat create mode 100644 Assets/_B1/textures/tallWalls.mat.meta diff --git a/Assets/Animations/Interactions Pack/Materials/body_color_map.mat b/Assets/Animations/Interactions Pack/Materials/body_color_map.mat new file mode 100644 index 0000000000000000000000000000000000000000..d141c1a9c18f852fe2bca6507249c9c422d1fa2d GIT binary patch literal 5016 zcmeI0OKjX!6o${toL3 zDX)s8uwU1cRHTHzYZXbqD@oc1NI#jDWCzB-g5QN>S#w&K&$@}GV zjEcHFW%z)u=l7U1o~I2Tw64qNEX#Muy6&^&T8FH9K4*Bp{D3j*$r?WorLb<_qQ5_5 z%zOU@LP$vlwg2LIe^IlHci;bGh7ZW^@cj$sd`1sJMMkxstH}2{W_{4Z#9jOk%*go+ zW<2xr7iRSHGI5uE;pfN(Uidj`cv<)HCg!Z?G4ho0+kJe+aJ!FqUuxOd$JdO#-N)Ar zxBK{p;dUS21mCKUR zEey0>z2!Dl#M9Zx3{I=HkHe@L1Dx@eTS?npnf2Xe&ZjzY61LB&04vXSR7XjiL|(9b z-d(P_D{>+5lC^~>Tv1W7R&Obl(5ZV#HFM}GdO5FFXM#(y1a4bpYci6ZN;;9^vWDv` zS(P=6=a-gZ?Q7N#-9!fx`e77HB+IfWE(;3 zPSjBGp$?;W7CWAwc!8rE6gx(0CfsT{(<*U2|AfD&n&CF~{5hT5*WCD{ z+)HuzPv7r^QQP&m@y(wl&P>~jx%Jw{R_9l9y#TwP;_BJaj$s#l){vj?dySKR7{{9& z!@^#}PXNw*qv3b93}lnNj(fq4a1D2LlY84Y>pe{W>`k^!)BgAw1UtkeTw20Ns{9$B z*V)w0m?K{H*qM%#Ngw-3u7L19af%#`aaz?q)7%SG9MiPQ&kdRF+Bvo4t44yF>r=V! zqGq&)@cwdYVN>auh+c1MR8JxmEGI3V%-0w702%)6t8sodaO&+aOj?WqUE@}Ds^tcO z^0^E$0(I&us?qV?Xb!t)pF3ya` zBBPf@jI5~(T zi(od!(*@5w|;CJCz)|}R5`4c`4Vov+M4n7V)&tN{B zpQAPZJ}pc7Q|@P=!@koG{(#*7G3x z$hy(bUc!{TU-#w9obNMyz{>X_@GRd!t1tV>wGLW+dD!sG{|NfX>mC5lu50^$g!Ys4 zW&7uS+Rgu1&dWIa8OB$j^#3T1d3|))eysZ0p6LZ${7v=?&Ir* z+kJe)aJ!Fhf_LlV1i4nbk8c@1Agm|*$hz^pMdAC3&pTA-TOmxh<~wP)o$m>9$mV>f z2vc%9-)Y0`d}j=|^PL6nmhT+7Ry$w5M>9Sk7ZCyT<-2npDl&$1gSrlXW5zn1f|fe? z?VP{8iQmcj=}nv$qn|T5ueynfJlB`S#Uz@TUG|bNnq5y+5PM;8T$;|D=c`jQ7%aL; z0|RYWYq-lQ;^}N;2B%f~<1ku|0nT`9&<#J!P)!2<2OapC^pXBz$NTlMh z71dRIsKw}=rIzO>Uf`(pByx>aZ_ukiuL8Xa^eWJ+K(7M-zXJT}soE-b>ioy;U`vs0 znYbk{gg?8v{pEZIlv`?Ns?}WM*20n$J4R|I+-f;9DseskgukSg!)@&Ob2_)Ly75Q3 zm*ViBzTXL>rt5Fxn?FmO*`^nB>$Q!o&adiv0d_yd)w81=!!G))B0t~v>L>j$j<-05 zg}sKK0Gx$--EVabWQ)Cyd(n+>4R?Kud)qhbJwpHNO}0(b{`eULJH#YhS;0su{28Cu z+0@RMBVP8{nTeArANxtJfbc$XiX4q`TG2hz+zV73)3n0R4Vi8GoLcc!JweU&soZx_ zGg?Dv4~S?QUGUT7 zxePK2b!uy>-tygO9=m6sJ7@-#`>aLvfAdW%{G{YuxL8wl3?RCO@4p*)38PFa{G_FA Xrup2^qUc3-)b%RvH)BJ)Lek1V3O_tL literal 0 HcmV?d00001 diff --git a/Assets/Animations/Interactions Pack/Materials/eyes_color_map.mat.meta b/Assets/Animations/Interactions Pack/Materials/eyes_color_map.mat.meta new file mode 100644 index 00000000..23169cd6 --- /dev/null +++ b/Assets/Animations/Interactions Pack/Materials/eyes_color_map.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 818dded930968454990e7cf25028f1c1 +timeCreated: 1474904138 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/Interactions Pack/Materials/face_color_map.mat b/Assets/Animations/Interactions Pack/Materials/face_color_map.mat new file mode 100644 index 0000000000000000000000000000000000000000..2cee5cf0541223feed98135b4418fed460db9ac8 GIT binary patch literal 5016 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 literal 0 HcmV?d00001 diff --git a/Assets/_B1/b1_main.unity.meta b/Assets/_B1/b1_main.unity.meta new file mode 100644 index 00000000..fd1ba124 --- /dev/null +++ b/Assets/_B1/b1_main.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: acdec30f1c9c1184d96045336f95d3d1 +timeCreated: 1474904745 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/b1_main/NavMesh.asset b/Assets/_B1/b1_main/NavMesh.asset new file mode 100644 index 0000000000000000000000000000000000000000..e61bf6792e59a9be7b4f222c93b04606b25a20db GIT binary patch literal 37472 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 literal 0 HcmV?d00001 diff --git a/Assets/_B1/b1_main/NavMesh.asset.meta b/Assets/_B1/b1_main/NavMesh.asset.meta new file mode 100644 index 00000000..4ba0592b --- /dev/null +++ b/Assets/_B1/b1_main/NavMesh.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c0431d5ee0fda1c458c7b80f7971956b +timeCreated: 1475049316 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/prefabs.meta b/Assets/_B1/prefabs.meta new file mode 100644 index 00000000..b944b00c --- /dev/null +++ b/Assets/_B1/prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 03a2961681070ff48b3abbb45feafcc6 +folderAsset: yes +timeCreated: 1474904780 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/prefabs/almostTallBrick.prefab b/Assets/_B1/prefabs/almostTallBrick.prefab new file mode 100644 index 0000000000000000000000000000000000000000..a6669f0a43f93ca2a4a9bceb67269dda17b2c06a GIT binary patch literal 6832 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 gpC6RhP48~a z-kuv*LcK~9QHcuF7DW03CI6H}6sZbo0U=r;^$!XZqLL!iKLUyXsZs$EBq~JP@O|@k z?q)Bx<^0K56(Iy>0*= z>I>I*|LE?un@?T1&>tPydG*;FfCZ?XsLv_Y_zWt>Uqlmcoa3oyGpcdgQw@$GhgAMo z>J8vm;@N@9u^!&eVdgbxb9~0Zw}OZ3tw{Q0yr;g}p&G9wJYCLsmq+9mewXKp=6FxN z0shTsQ+}?|C-Qiof;_CmS2ppCk@Gstp`5E6{07K#1mmv)wz`RTn(N{{X=T@s8BKKFF~-;^}>T zh`6a4br3VTFSf64;=;cRZSsE@&xQDTo(u7>CvIw*e?t@Z)JxFM5ZctwM^IVX?c`d6 z3GV9Wx+X6AIe<3xv#|~TS7M(Z1+G*M{GJ-YPQI9oyFPj5^KrCmuo%Q)Gyaz9NKb|o!17T%0tml$ZsaJw#@&E>c2(%D@8JeuUEv$^B#zKpXiz)xp$$6J0no6CO> zn&cN}JAR4Y=xm;9;Z}Zewia&r#o35UFpV*vL181F6714Jht4K=I_S{ZEdCpuFM|%{ zWbhYUf~mbEvJURrNlz2^6nP#*n>-&w^~_)TvboX0U7k%%+%xw1HMD6bHyOO4mLC*G z!h&BO3u8Y<+)zi=ym~<0&j3L@AJzhcC+%@y+I9}s%R1_-mdd&|6qukgFcXxEk!BFt zi=bly%vc!42cjb0dDg!_`=xi+Jm34;nt#0g^7o$HzZsX9`W>Pz11?J{el$cUi(S_A zmBlV=>W%uypjy3Bf1gB~zRfj zZ%q6!W72+O;)lW0eq-WCf)6@=W8#Ow#c!;B7(ZmcohH6o{g}(z^obuI!#m}nP09GQ zJgv(*Esw+x&dHc0kbX>CkoY0{rC*)`Mjf{iy^1#F=|N>_=aKj!xNGNJ$I5d8d;K%o-0voXH_#_Z#lMqrHhx&V z6O%cg_dHCpIsT>uzoiY|p5VOyyqt_bhjmARbKQ?S<4*uToZws9@HoLg;ouJg`z|W= zK)X=9d^?$Mkd=-58aENBvkw zfnVmN@%mIv$HUcPP|&8$5MJo_*)w?+>F2mfjmi12cXU@6oYH$N@+!qu8&;`-VxUDZ4J- z6-0VE@+*2MC>G7FFd9^YO1)y{j|UHM?Y?>(PE3yaNB0CZFcealxm`r>R=B)RMyR32 zB==I3>q8b~v?hTyiEjePHPnNnJ^RcbfA!FJKK;l~o__n~_m2JHb%w`59yuxtuc00C zYW~wa7Q2QRq8Gb{xE9SmgGvs%E!~smemU2Wp;K#SV-@FLq#zqYE7v0Sj*P66Osa4u<3T-ElZsxBa`L1f2S8|LzD9 zy#2f5z65Xo?x+B#?2O_`I$E;2eo;)=tA&9tSM6?#346A2q z#)PKbc&DXzHSrGfGt^$R$!{#WVR%wM*BFa7xMXzpXDD(Bf2W$n`;lZ{v}lpDOU+}y zJQ>PKia`r$vkWX?|MtLi{`*;Yst;qAfr5@G#okQ!5ir>wy+6M@Q=|ZPfrt<4AAn>-YvgtCpR{6iDa)P?M-~L{LfQ5E}9Nyln7>ErKnYR)g$wF;+> zAag?UhkR2~p)p+v=XA08(;d?>SzQE1liA)rx zw=xo6jz4m8{-H-RYA0~ojp$GMe*Jpyf8Om~tIhzQMU|K#eM7rHzq0t^L6yUVZ=#Pj zxE@xAhdO<#{}&Ux>*@^pxL%K`(pSEF*AKS*?XPMDf>j=PpQ+L(SNiP9-&U^r@_Tna zcFmvqFT8Une!q4Leb|$5 z_(@``C+?HQ?w@;Ov3r)AM=7g2_A$0qbTOz``lFz5pNYQ{)!4@sQe=O7p==AuXXWB} zyN~qT#vMw1<>zoaJim>n%1LeTxnx=HdY&oPhLp;#&MwJ&X=mdOu0`FVK+ehv}>BSAA(vwO3?VRx^& zd+pklP`5vdplStb3nILf{3(s7P*vVSv_h(c3M!2ttx%Cd6#-JELPe114@k}TopWb* z?#8y9pNuuWcfOhV=FFLM&YZi(Y}jSY^-mjP))=#)fT!8Db?4UY$9I@_=jP_TWdJ(1Q-EJW=@ea4u^$5AnU4o$pqj%S|AnZ|RTX>bfVwDP|( zuL8dY&kj_M_3(BcGp|FN<8uza6+B#TdD^GrJ@ds5(|9rE>2k)qJSxBPyF6Dl$9v{g z@NY(&@^g(|mB;%iTr=b@kdXj4D$M`dZZlj{Xj z+||zwOsr7(%&fte(z)x)TE zm#N;jH>?DMd+<{5lL>k0kE)YVEvO{`hy2+f#`CaW9!=t~R>u2aF{JxUv zV7<4PgwuftdGeRDpZUrY>n}X{)T0kRpZiVzRtWKADoBDu%{ZIj|3A*Q6NfsTI<4bu z8KZAGTZeHEwdHJ{`73znwAR_o^1K+wX&l~e;5=*^j*EXH#p!G=P9x@cI-85%mEv?Z z#j!5*--9N(#o6XrSDekk?YeX}m*1{SXLI=rXp*1K=8m`f5@(x-pU&ovxBPTAm;VTw zK-0a{k&!#5siG6+vZQ98#f;Y_4gThc$ z^eZD#;wOk3X2#5#2h9Bp5X1{nJrq1`j{*y9=fG4YhJY)N>J&a2rH#HU=Z1h zpd$fhB#M%QaS87{>(|bG{=ci9-SzUSx8HiYG%|68!zpO1!`(0-v+}eq z>#RH)KR72RNg(~0wxIDt_e;M#1B^OuUDoQCR!+u`blr@cj30`tfBz!oVfkzqel*3mwBbpLf7rnv2KHT4>VbA) zgg<*Ow>QUU{cCFz*LeBElz*Gx+?!|euyZ8slK5{Y-eU|Cp^>15@Pz=j^q|`B*OSo+ zzZBhHM=Tr(iUAU+7BCz!sE!9kZi4G<<+-_f93z*!ZwNvnQ;Bp_swsc2T`s;R-$(p@uq> z+{;m}4_T1WN&+j1Zwlx&)QzJ(_nklg_MvZl?8`s@_FFGpI{C-nGdvFP$Wd8%4eiud z`A_p$=o(^(Ug#R)S~U9{Dmm!3bWfW5m0UxXr~MkTJWIWXEKmD2WO-IVuHIDA9e8J& zNq6HODX_io5&b)l8i3gYOWW){>n^oQ(5$ynI3+W1c;``NH=996EaI6OUiG zF#eAh8Q*zVb)d5Fzz*mu-c;EO9TT(jlfeb4;!<&iZzZf|^Y zj5qJ=s2!;1apTjXnc<*`H`Vk)7R@2l7{_zI*WmaL`NH7IQ*#=Eh-*efYvIYTdQx)| zn(o9qExoIWcgW9Bd(kGpSad^pGC$XdMGLMOo&6b#T*}{R#_@h4-4`udDEF&jFz1KthD&e!v=DcXpitBlO z4Q%tV)t~mgHahysrCqDdS>ThX8Z)%7F!zIP#h)B9J(%!S^w9>_ z!|L!b>)yWh$oQR8<}CWSUbj^3d*s(MZ*2Md-^_9Zs{-&|soJMk`sCBERM&pt(mjt~ z_eS5vckaRO*KVN?+foUS#eO`yZK@U~v-uJZajKH!m|5+7GciT&+`vdt%-m5bx; zKC*KgcN_DmUjf7O>wNaW1@Yd%bMdm&^*kxohK$Lt%r8!SS#RTRu0`FVK(^=l^fmi` bsq)ZrUcaq1cd7GQGw>#pL{HQeYODMY84d&( literal 0 HcmV?d00001 diff --git a/Assets/_B1/prefabs/smallBrick.prefab.meta b/Assets/_B1/prefabs/smallBrick.prefab.meta new file mode 100644 index 00000000..d179f995 --- /dev/null +++ b/Assets/_B1/prefabs/smallBrick.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da8e82c7a980aa04e84c20dea79a1baf +timeCreated: 1474909217 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/prefabs/tallBrick.prefab b/Assets/_B1/prefabs/tallBrick.prefab new file mode 100644 index 0000000000000000000000000000000000000000..f620ba5f218d46d537163052735fe2626842caac GIT binary patch literal 6824 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 T?YXO+*PeklGl{yhwcYzaBYppX literal 0 HcmV?d00001 diff --git a/Assets/_B1/prefabs/tallBrick.prefab.meta b/Assets/_B1/prefabs/tallBrick.prefab.meta new file mode 100644 index 00000000..845f1b3a --- /dev/null +++ b/Assets/_B1/prefabs/tallBrick.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aeedab678de18994a9ad4056c1d72daa +timeCreated: 1474909228 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/scripts.meta b/Assets/_B1/scripts.meta new file mode 100644 index 00000000..6ed61f59 --- /dev/null +++ b/Assets/_B1/scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7ccaac3c8d8e92b498159674af2428d6 +folderAsset: yes +timeCreated: 1474914021 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/scripts/AgentScript.cs b/Assets/_B1/scripts/AgentScript.cs new file mode 100644 index 00000000..5df53585 --- /dev/null +++ b/Assets/_B1/scripts/AgentScript.cs @@ -0,0 +1,35 @@ +using UnityEngine; +using System.Collections; + +public class AgentScript : MonoBehaviour { + + //public Transform target; + NavMeshAgent agent; + protected bool stopped = false; + + // Use this for initialization + void Start () { + agent = GetComponent(); + } + + // Update is called once per frame + void Update () { + + } + + public void makeStop() + { + stopped = true; + } + + public bool isStop() + { + return stopped; + } + + public void unStop() + { + stopped = false; + } + +} diff --git a/Assets/_B1/scripts/AgentScript.cs.meta b/Assets/_B1/scripts/AgentScript.cs.meta new file mode 100644 index 00000000..1396072a --- /dev/null +++ b/Assets/_B1/scripts/AgentScript.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2ff2c5f667d685b488ca594c8f486535 +timeCreated: 1474913656 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/scripts/Director.cs b/Assets/_B1/scripts/Director.cs new file mode 100644 index 00000000..fc83067b --- /dev/null +++ b/Assets/_B1/scripts/Director.cs @@ -0,0 +1,228 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +public class Director : MonoBehaviour { + + private bool somethingSelected; + public GameObject[] AgentList; + public List selectedList; + public List tempList; + + private Vector2 mouse1stPoint; + private Vector2 mouse2ndPoint; + private bool hold; + private bool barrierSelected; + private Renderer rend; + + // Use this for initialization + void Start () { + somethingSelected = false; + if (AgentList.Length == 0) + { + AgentList = GameObject.FindGameObjectsWithTag("Agent"); + } + + mouse1stPoint = new Vector2(0, 0); + mouse2ndPoint = new Vector2(0, 0); + hold = false; + + foreach (GameObject agent in AgentList) + { + rend = agent.GetComponent(); + rend.material.color = Color.black; + } + + barrierSelected = false; + + selectedList = new List(); + tempList = new List(); + } + + // Update is called once per frame + void Update () { + + Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); + RaycastHit hit; + + foreach (GameObject agentOuter in selectedList) + { + foreach (GameObject agentInner in selectedList) + { + if (agentInner != agentOuter && (!agentInner.GetComponent().isStop() || !agentOuter.GetComponent().isStop())) + { + if (agentInner.GetComponent().destination == agentOuter.GetComponent().destination) + { + + if ((Mathf.Abs((agentInner.transform.position.x - agentInner.GetComponent().destination.x)) <= (agentInner.GetComponent().radius) + && Mathf.Abs(agentInner.transform.position.z - agentInner.GetComponent().destination.z) <= (agentInner.GetComponent().radius))) + { + agentInner.GetComponent().makeStop(); + agentInner.GetComponent().Stop(); + } + + if ((agentInner.GetComponent().destination == agentInner.transform.position) || agentInner.GetComponent().isStop() || agentOuter.GetComponent().isStop()) + { + agentInner.GetComponent().makeStop(); + agentInner.GetComponent().Stop(); + } + } + } + } + } + + + if (somethingSelected == true) + { + if (Input.GetMouseButtonUp(0) && barrierSelected == false) + { + foreach (GameObject agent in selectedList) + { + if (Physics.Raycast(ray, out hit) && hit.transform.gameObject.tag != "Agent") + { + agent.GetComponent().SetDestination(hit.point); + + + } + } + somethingSelected = false; + } + if (barrierSelected == true) + { + MainCamera.BarrierSelected = true; + if (Input.GetKeyDown(KeyCode.LeftArrow)) + { + foreach (GameObject barrier in selectedList) + { + Vector3 position = barrier.transform.position; + position.x--; + barrier.transform.position = position; + } + } + else if (Input.GetKeyDown(KeyCode.RightArrow)) + { + foreach (GameObject barrier in selectedList) + { + Vector3 position = barrier.transform.position; + position.x++; + barrier.transform.position = position; + } + } + else if (Input.GetKeyDown(KeyCode.DownArrow)) + { + foreach (GameObject barrier in selectedList) + { + Vector3 position = barrier.transform.position; + position.z++; + barrier.transform.position = position; + } + } + else if (Input.GetKeyDown(KeyCode.UpArrow)) + { + foreach (GameObject barrier in selectedList) + { + Vector3 position = barrier.transform.position; + position.z--; + barrier.transform.position = position; + } + } + + if (Input.GetMouseButtonUp(0) && Physics.Raycast(ray, out hit) && hit.transform.gameObject.tag != "Barrier") + { + foreach (GameObject barrier in selectedList) + { + rend = barrier.GetComponent(); + rend.material.color = Color.white; + } + + MainCamera.BarrierSelected = false; + barrierSelected = false; + selectedList.Clear(); + + } + + } + } + + if (Input.GetMouseButtonDown(0) && hold == false && somethingSelected == false) + { + mouse1stPoint = Input.mousePosition; + hold = true; + } + else if (Input.GetMouseButtonUp(0) && hold == true && somethingSelected == false) + { + + if (AgentList != null) + { + foreach (GameObject agent in AgentList) + { + rend = agent.GetComponent(); + rend.material.color = Color.black; + } + } + + selectedList.Clear(); + mouse2ndPoint = Input.mousePosition; + + if (AgentList != null) + { + foreach (GameObject agent in AgentList) + { + Vector2 screenCoords = Camera.main.WorldToScreenPoint(agent.transform.position); + + Rect mouseRect = new Rect(Mathf.Min(mouse1stPoint.x, mouse2ndPoint.x), Mathf.Min(mouse1stPoint.y, mouse2ndPoint.y), + Mathf.Abs(mouse1stPoint.x - mouse2ndPoint.x), (Mathf.Abs(mouse1stPoint.y - mouse2ndPoint.y))); + + if (mouseRect.Contains(screenCoords)) + { + agent.GetComponent().Resume(); + agent.GetComponent().unStop(); + agent.GetComponent().SetDestination(agent.transform.position); + selectedList.Add(agent); + somethingSelected = true; + } + } + + } + + + + if (Input.GetMouseButtonUp(0)) + { + + if (Physics.Raycast(ray, out hit) && hit.transform.gameObject.tag == "Agent" && hold == true) + { + hit.transform.gameObject.GetComponent().Resume(); + hit.transform.gameObject.GetComponent().unStop(); + hit.transform.gameObject.GetComponent().SetDestination(hit.transform.position); + selectedList.Add(hit.transform.gameObject); + somethingSelected = true; + + + } + else if (Physics.Raycast(ray, out hit) && hit.transform.gameObject.tag == "Barrier") + { + somethingSelected = true; + selectedList.Clear(); + selectedList.Add(hit.transform.gameObject); + rend = hit.transform.gameObject.GetComponent(); + rend.material.color = Color.gray; + barrierSelected = true; + } + } + + + if (selectedList != null && barrierSelected == false) + { + foreach (GameObject agent in selectedList) + { + rend = agent.GetComponent(); + rend.material.color = Color.red; + } + } + + hold = false; + } + + } +} diff --git a/Assets/_B1/scripts/Director.cs.meta b/Assets/_B1/scripts/Director.cs.meta new file mode 100644 index 00000000..33d0d732 --- /dev/null +++ b/Assets/_B1/scripts/Director.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c413702818be923439d1744bb6dde3af +timeCreated: 1475028877 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/scripts/MainCamera.cs b/Assets/_B1/scripts/MainCamera.cs new file mode 100644 index 00000000..f32ca5e8 --- /dev/null +++ b/Assets/_B1/scripts/MainCamera.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +public class MainCamera : MonoBehaviour { + + public float speed=5.0f; + public Transform target; + + public static bool BarrierSelected; + + + + + // Use this for initialization + void Start () { + + BarrierSelected = false; + + + } + + // Update is called once per frame + void Update () { + + if (BarrierSelected) return; + + if (Input.GetKey(KeyCode.RightArrow)) + { + transform.Translate(new Vector3(speed * Time.deltaTime, 0, 0)); + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + transform.Translate(new Vector3(-speed * Time.deltaTime, 0, 0)); + } + if (Input.GetKey(KeyCode.DownArrow)) + { + transform.Translate(new Vector3(0, -speed * Time.deltaTime, 0)); + } + if (Input.GetKey(KeyCode.UpArrow)) + { + transform.Translate(new Vector3(0, speed * Time.deltaTime, 0)); + } + + float x = 0 , y = 0; + + + if (Input.GetMouseButton(1)) + { + x += Input.GetAxis("Mouse X") * speed; + y += Input.GetAxis("Mouse Y") * speed * .2f; + + transform.RotateAround(target.position, transform.up, x); + transform.RotateAround(target.position, transform.right, -y); + + } + + float zoomDist = Vector3.Distance(transform.position, target.position); + + zoomDist = zoomDist - Input.GetAxis("Mouse ScrollWheel") * speed; + transform.position = -transform.forward*zoomDist + target.position; + + + + } +} diff --git a/Assets/_B1/scripts/MainCamera.cs.meta b/Assets/_B1/scripts/MainCamera.cs.meta new file mode 100644 index 00000000..b7169fcf --- /dev/null +++ b/Assets/_B1/scripts/MainCamera.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eafe1345aeacb474981c62dcc42620d3 +timeCreated: 1474916614 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/scripts/movingBarrier.cs b/Assets/_B1/scripts/movingBarrier.cs new file mode 100644 index 00000000..d6f368d3 --- /dev/null +++ b/Assets/_B1/scripts/movingBarrier.cs @@ -0,0 +1,36 @@ +using UnityEngine; +using System.Collections; + +public class movingBarrier : MonoBehaviour { + + GameObject movingB; + Vector3 startPos; + Vector3 endPos; + float startTime; + float pathLength; + + // Use this for initialization + void Start () { + pathLength = 20.0f; + startTime = Time.time; + startPos = transform.position; + endPos.x = startPos.x-24; + endPos.y = startPos.y; + endPos.z = startPos.z; + + } + + // Update is called once per frame + void Update () { + float distCovered = (Time.time - startTime) *2.5f; + float fracJourney = distCovered / pathLength; + transform.position = Vector3.Lerp(startPos, endPos, fracJourney); + if (transform.position == endPos) + { + endPos = startPos; + startPos = transform.position; + startTime = Time.time; + } + + } +} diff --git a/Assets/_B1/scripts/movingBarrier.cs.meta b/Assets/_B1/scripts/movingBarrier.cs.meta new file mode 100644 index 00000000..ece62c41 --- /dev/null +++ b/Assets/_B1/scripts/movingBarrier.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ea04c924bb008d449724a5ea705b161 +timeCreated: 1475045376 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/textures.meta b/Assets/_B1/textures.meta new file mode 100644 index 00000000..8915bf7c --- /dev/null +++ b/Assets/_B1/textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 85571ea98b4d89646b9b3b96b8a95211 +folderAsset: yes +timeCreated: 1474904854 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/textures/blocks.mat b/Assets/_B1/textures/blocks.mat new file mode 100644 index 0000000000000000000000000000000000000000..2ea1e35047c69f7b55d6a2820f6da3f68733b098 GIT binary patch literal 5020 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 literal 0 HcmV?d00001 diff --git a/Assets/_B1/textures/ground.mat.meta b/Assets/_B1/textures/ground.mat.meta new file mode 100644 index 00000000..f1505a95 --- /dev/null +++ b/Assets/_B1/textures/ground.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 281ad737cc58cbf45887809dc280b269 +timeCreated: 1474904872 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/textures/ramp+shortWalls.mat b/Assets/_B1/textures/ramp+shortWalls.mat new file mode 100644 index 0000000000000000000000000000000000000000..18f5a99469b92b3af14048b719f05374cef2a4ce GIT binary patch literal 5028 zcmeI0OKjX!6o$`Cl1Z9Ep@hyP}(lsv9JPSg~P&#D+COELvdMF3A>E4gY`bxy((1BKC8l6W{yY} z??;h=8zS&2++SN;D--~BL9gDrv;W?mJ$T;XPKqkAr9VmaM+)BiCB8`tpR~ng4$Dk=NZ1o?X}W|0L~4 z=*#xc`*bt^gE=o^^>d7`LFxY~9P|3&Y4)gi=_yZ_(eM zG3LGh3L&H*z1n~4d4E;2jJMzaLxz{+HhlkrIiJx(P?16H=Q{Geg;_WBFmW6I9W!!1 zgBj2K{D~R;yiVL^-|};09dG$LYIsri@h;}9=P~k>@!NfT!*IKg_`KAzzK?Gid%KTs z8*caU9mDNDz6-utABV}c+I@V_@E&13*+U_(D>Bf9V47c+=K@M4; z?T#sO+4KWJ^giQar8Z z`bw5%1>>28g;@KV^g}n%frNe-#S+P)%!$i_hzxEY)gKL#vkWiT8IDieI|?=uD^wE{zP#m8eYt8*cP@rzl!Sx*a@|+o*nHN zcG71B`T4$AJL!jUyumRn>~r`!z?rGl{N|>CY_QjH&$S32LsFa^J0*(Hg>6JWeH?S9&I*&o?!yCXosjlR6jk^IP=*>HqDkVZK6e zs*NyA>Wl$hQt9ht?9eb6n4@+chd|i_gRf<|K^*P`FhE@aIvat y7(jFlKfDxq38PHQe7&V@#<=;Vg~;k(v*pXTui_V1TGsVy-EVC+nI-?H<$nNaPeGgj literal 0 HcmV?d00001 diff --git a/Assets/_B1/textures/ramp+shortWalls.mat.meta b/Assets/_B1/textures/ramp+shortWalls.mat.meta new file mode 100644 index 00000000..bc8baeb1 --- /dev/null +++ b/Assets/_B1/textures/ramp+shortWalls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3acf2fa0fa885b4787a152fb9ce8746 +timeCreated: 1474994465 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_B1/textures/tallWalls.mat b/Assets/_B1/textures/tallWalls.mat new file mode 100644 index 0000000000000000000000000000000000000000..8e5da765e187f56a795c6f860fd3e1b90436712f GIT binary patch literal 5024 zcmeI0OKcle6o!wT#7R>qlu+7IN<(?S(n4FFp-z)HO=#Vubsvb$FmZ0;f$>Zlc1X)hrCWLl7I82<)-AFf5sX9>zIHuC+(b!uCTb=i3c02z+u)yI%y{^WY!=TWhTC=9O%7o_ z51@~%8~yAdOv!t7U%txuUc>vWd>;kR@-10?*+;ImWcB4S!!!Sb=p*mDA3VFS?f-Gw zkI|RypU>%L{)cm3#Omi5UxCv96S(H}(RKSa=LZe%vGRJ-@Lnsgr^q3!PiNhpCQQlu zX=zBe%Ig&rpE;D2I9 z&d*@RGe3W0MnA6-ci6Z699hTPevTSm)P1~#IqP|hJZ1cLA73-v?jyc0wXE;s8^+%5 z!Z`Q|Aa;sIIh2K~FyhC-qWx{l0zGH^l`JNz$ ztj~9xFeSJ1oiN-wOC<`A(5*we#ioXvX{GA|hbE{O+8FiVS0|r0ehxW~{>u zw9vute5I{hZEu)lF37xxUQJCDCYQ!AruZvXZDE_QK$}G@U8WS2L3s z%(+Pe18rApxC<)cayBx9Q)>0&Fj|NKPJ2s@r0FhC`R)?u6RkK2o99%3oo8FBr6f)w zFIYP7E>+!Sxe$2C>Rc2qt0-BmHIz!|)V-`0a_A{~Ij>eK!R1&2x2du{8OfHCR;0MC z?)pkrWEJDt#l=|rn({+8(Sd}17{wCFlFWCAu?r8F2HGND+mggs4;HZ@(a*b7Y(5*nX0^JI9E6}Y#w*vpa0^6`9aee<1G{%_! zj(HrXaLuVyXKJ;X*)te(jmKbI^cs)W&UmZ2%p-;+DNc^mOnBsSCRO5k{t16xEreUx z^JjH#Uv=Y;axd-6fBHTXMorh>!Z&}OIF+Us^9Z(ut{GUI_^0)!adxT4eo82TrXShDn1l zpldv`PBh#gP(HUohM-PuS=C#<8%^UB?eiqfpmLwJsD3Zsw9Hpa&V`FLRmT9LYxw@9 m$V(VyTIQ=QZ8O1xugIs(gZZzitS7o&?dL7Gp`Uw_mj4CS9X!1N literal 0 HcmV?d00001 diff --git a/Assets/_B1/textures/tallWalls.mat.meta b/Assets/_B1/textures/tallWalls.mat.meta new file mode 100644 index 00000000..2373c032 --- /dev/null +++ b/Assets/_B1/textures/tallWalls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c0310f8242b7f84fa4252cf3b95890c +timeCreated: 1474994590 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset index ed1316ceb00ccd0ec63546797c656af3268b6d7a..3a64502648e162683b8feb0facb962d54cb9254c 100644 GIT binary patch delta 91 zcmZ3Wv_(mpfq}7$fkDuOfq{Xafk6OBF)*0wndlj$8E=%%Wn?tj+{xI-$LKIwLO@>C lkrgN#l$cvk3|6B^H+`gcKzvXM+V9COZh+007eE5la97 delta 59 zcmdm@v_MIkfq}7$fk9A#fq{Xafk6OBF)*0w8S9y(8E%x$Wn@&?+{xI-$7nxULO`C; NVRDSXjmbFz0stgE3!?x4 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index a54c5f81b25f7f84103de6cb982d0426a86ef7a4..bc2ffadbc6ebdf4593a221d213b19824f24e2ebf 100644 GIT binary patch delta 76 zcmaE(I75kpfr0541B0N%Mvf0mOcIQne=)J~>M=7gFt7r#V|r>{36N$7VyDESqRiAH V20kF$H@_@1FI@pDG?_`@6#$3v5@Y}X delta 33 pcmbQC^hS|`fr0541B1YujT|4CnBFjK{>8+`J6VC5WwL?53jnhx3YY)@ From 8d97a0c89117977d9d919aa9e947d8a8e7b84639 Mon Sep 17 00:00:00 2001 From: CG-F16-16-Rutgers Date: Wed, 28 Sep 2016 17:31:01 -0400 Subject: [PATCH 2/9] Update README.md --- README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/README.md b/README.md index cc658796..b3f9590c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,28 @@ # Unity General Unity Playground with all needed assets + +Group 16 + +Members: +Hareesh Ravi +Cyril Manayath +Lei Wang +Zacharias Psarakis + +Webpage: +https://graphics.cs.rutgers.edu/teaching/2016-fall/computer-graphics/groups/16 + +Assignment B1 + +Navigation Basics + +This game has 6 agents moving around in an environment full of obstacles such as moving walls, stairs, maze etc. +Select the agent you want to move, by clicking on it with the mouse, and click on the position of the destination +you want the agent to move to. You can see that, when multiple agents move, they do not bunch up! They don't +collide, avoid obstacles and follow the shortest path to the specified destination. + +Web playabale version of the game is available at: + + +A video demo of the game is available at: + From 3b0ca61ae6b86b391ab34c7370cedf1980b5c277 Mon Sep 17 00:00:00 2001 From: cyrilmanayath Date: Wed, 28 Sep 2016 18:42:07 -0400 Subject: [PATCH 3/9] second push for Unity --- Assets/_B1/b1_main.unity | Bin 96056 -> 99864 bytes Assets/_B1/scripts/Director.cs | 7 ++++--- Assets/_B1/scripts/movingBarrier.cs | 2 +- ProjectSettings/EditorBuildSettings.asset | Bin 4104 -> 4136 bytes 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Assets/_B1/b1_main.unity b/Assets/_B1/b1_main.unity index be07390e23e22055c1aa2058486485223ce6f292..50129c22e86bf89ee90102226b0128118fcb0228 100644 GIT binary patch delta 6446 zcma)=4Rln+702f-QI^F}E-XY$_8 z@6Lbb-nldH&8upB$e;hPnULkL5@oT45b_JWcWpISj8iUEd_K3Skc;z<1C2G zOUM|~8DVFl!B;qRxCu$Z`aD)NHlDK*WY1uIG%Ffg6Zi5E{7FJ?s83Z5iJ5RKRkc~O z2%$dX$XXQqPhE>EToFet?a0R9^)ps9mD07_8S`er=rq;PoCQ>$@(Fs(g z37KAH)4(B&+2_J;RH>Z{b*Pd!kGb2*+b!I(78&)HHcQ}8hbA7mCtVn{xpn>##OlW!}G1 zU!a!8g|bREXYPg2h$_ZKV9HQ!jzw}>%;%O~Wcq13ImVbsdk8IplnhLn#gK(6<|XoE zN5TSTX+@@2NnJbrMXKUn0*5kGB?JZ2BjI+2(Uyd%s}Id{k1uD&Rmfb}D114^{BHJ0 zDr8*>ann_UcPUJmuG%ci&SKt$GE}L47xtryIbROVJZ_nYOz)I` z@SxFjEdG4xF+(+!=YwsAY9q_#(DZKqPiARBrdK(CrX#H)Q=bsb*5^FSp~~bC9sN+tymkLc!Sa!nWY2dHDcqe0iYgLV&8*XGu0f|dvbq6xMc`g zGWJlziso$`XR+_&E`;?1Skc&4U-?-4N!-ZvYk3=Iu^+VRFNf{a6&#iz)bGaIIcq}Z zK=JV1_*2djeX_edIIBfQV}ebo* zsaL2;Y@s}L{W%L1!tPnB!CVA&sA69&r^6qka>i2?2Qr-JR#P{Xv!>P1cQ$UBYhc7| zOqDhA<~ogA+Kc6dk*w6Q9^A!Hj4I}}unSc@YvuTi=a%Mx+=GKNX8=05Rf9hOecWnJ zIa<;j4S(odzP*c13R~wQ`NhNPDrc5;KhZA9@+xgM1(`lo8acDBZ#55Es$AjFk5Hc~ zO`L_0=~Lw@XR#aPP+a3Ih)ka<*EzFn>?TM1VE1_DMbbtna^p_*p**I;+{A%QKc*Va z%0Glg472?sFlDOUy&uUP9p#omQ07FMx|&j1x3M2XN~Wp=Abn0GVpCS<9$ z*v)b%ablSq6~lRf>Z<88dH%6;x#_l%k4bo9z2KZdrm%|5~@6v(PrU zgDOcCpw3loB^C0B<+M-sN(*stn#)!;SH+dMRq_pmWiA>cf;s;IMcgf>O9pJg&TrCg4163 zAk%w0d3)PG&>qY| z=#ZlttU>6LgV7Djd)t={Wy~^mpS(Kua^~3w*{D*x4~kG_%6@rM+RrVkkm|AbS(93M<+i88|Z@f)tOcxFJ0kw-^s@F^A;|4K7)! z2_Z{Dk?_r7A7@R6;gAPIQv(-qIQ|;B%UJdCDcG2hBXWQT)C`|Wk?RP=%~uV1M_|Hy zJlmk9e&FpB&;N;9+P}tyfYY6>kXi5=e!#xSS;J|l$56zE;MM|lknzktOYv&ouIziJ5`|2kgeK1N;K<@g za4s|&n$N)0h4_YWR^H@VURvs=!*L?hZ%<^b#+uK9;4~ z%z6{z@-VtLVFF&f%@woq2AI{N!Y=WIRNJweg#NTM(liwR*%bnJ_V$N>za1!r>)LwI z2rJJv z+$)}V)A2U;jjnm|<ssZ> z!WeKCL_k!5@l%g-A zp7=?VCdJN|W{1s<4;jcK? z34g^IQ1~m(i^5-ewq*Ve(EPp3&whG;O~*IH-Srn{oa-4uEt$Kb$pg5{+E91djow{W zN!{h^r826Q@`!Su45I7T7u8#7=bPVKX|;lBt+CQ+{XZF)`t-dFqzk{&6Qh(w{7eG6 zo>e*-(MkGFp}^M7k(GgGmF=DGGd^GHNWK0j<@2`i&K09?RI-w26|;$oL}W6(7w;AH zo^BeI`N_&R?V##ZHxZj;VImSiJpDx?h&Kh12;!|mB!YMa5s5%wS6Cv%YKb6TdvFAv zd&PrE|Mz=|4`)~QjG&e*5k!**NCeh~CIY+BB|>{4^e}cDg8y#pTIotr3fl91)#sh2 Mm@0?9quez84~wgf<^TWy delta 4607 zcma)<3s6+o8Gz5-5VGtDT}wKlcSgHr5+zP*iE)&yNG?ex*_aNJMsRCevU#*JCc=UW z%lj?Mn(**X+!X;KYO-Rq+icrNJY?$gQIUoLKne`yWgCsW%A z`7_pnTxMqIy=KNt+0d0Cs-zs~&k*&-975J1Jt>!9WZS-v^p22#0W@aXf-oSqc z84DCZ5n7}|Xvh>7_zHu$STVxNa&fXq9ZZ@dHHX-hu?WWTId2hYvP6AMF(GDrCPXg5 zJO?*zdKNE93$jjHyc?HA_@kN+1s{x>DX!^lkcc)KZ764(kWx5^SNEF!W9OAc%s^|*XxK-3k6}%;V-`3};r4E_0M;VMw zRlrfSq*X!>T6~p!k76Frd4XD_9lYf+#+*A~;WkkfQw92MqTXM{Tk;0|vc-T?r5u-h z#{5>OK}&Qsw4udR&G*O=_e3Ji#f2;iYg`~R0{*3Q)ySB)8m7?_Wdm_L&a{oUjE?-A zZYENKOlkR+F^3J(w~MNP4QyzMdi!={$ZUHZOJqw7GUeztG3Iz12GOFffm>)X*YM+# z@!l1>naB__rNzvcp%xOeMOAw(Y|cgt4xe%a^%>)`h1BzVb2Vd0_0WYDYd!R5iz!nW zxgOi~$tAcx<7Xpx;cVmmm2wHPp>H4=FG(FTWuC)~P3?jR3$7)Ar50RE!1s3YMn?*@ zNbe95qax(SJ+uT{_?|KIZYV;FbvHDiMQ7(NZ|I6Q$hja>j>Mac=^QYQ7PA91xwyw1 zgbvLedpcR@mo3sBzJ(OVTzeoj7f+i8$U{qA1An@?Z%xV;FEZs?@-Q~k0DWkQ*$ZR2 zVv1oezaqa_@Z|4lj~vL9r(z#t#zy{BJkMB5BP`4pRa1?i&lmO9CjL~sz#{#~lqd98 zjA@&p1}!Dc(1w;kGe0gDZq)P@8`#5&tF3RK*y})06#7bjCl{hAX;<>;Z}jTz;%!xmnIfTATvKw z)6A}7--pCPQRRFeHW!L|?FW1xu3k9&N4a%m%Kb3NSl|QbLW|J}{nT=Z?`?~>L$FuF2ViK%GksqSXP9mVjHY267`NYe%~ILjYKA)VeY>D+ToR3h&c?+XmK2YPPDj= z5c0ZW|NS%B`X_vtM7eISq%J9?+DC`gRY$ zuFWiR0-5sb>4is*y+&J*+99A zS;k7b;V4?X-Oz&;-KYGj`(qPmWis^Q=l)y^Yaux(~TY1gGTId2JP%!;fXhRYvN zNj-3@9KUyZ_;e0O4Q!zz!#TcRA2Q}Y2Zkz zF4&^3{37=A(>wEG zwS_ibhfMivhx{(cqAx=qS{#>Q3@y?9{0QE|A}z?2d)f7)CYQG0>W6qMo|IQ$qg8yu ze}%WWS!DD8Z~2%p6HHb{Lbp||@(nBgMqnB( z-VqRO*rV&W7sBl8=I`tOT|je5LZxJLoO*Kq3CJBFaCp5W#eRsvc z9gn(oz4g)d`UizoAl=lszyD!Z1eo6m@t8w}|AgLMwA^kA7sBkHh6{IQLvO1+EfK;{ zb~UD#xmuYX z-d1~(;)Irv|B;@MAg34UF(nAce{q+j=w#Tn8)yp~xE40h7L3C2`-D(?xJg(CD@L@Q bMw4(n%p+|PTEpc5x0?$DjpxC9;il%lTnx{% diff --git a/Assets/_B1/scripts/Director.cs b/Assets/_B1/scripts/Director.cs index fc83067b..ba16ffc7 100644 --- a/Assets/_B1/scripts/Director.cs +++ b/Assets/_B1/scripts/Director.cs @@ -61,7 +61,8 @@ void Update () { agentInner.GetComponent().Stop(); } - if ((agentInner.GetComponent().destination == agentInner.transform.position) || agentInner.GetComponent().isStop() || agentOuter.GetComponent().isStop()) + if (((agentInner.GetComponent().destination == agentInner.transform.position) || agentInner.GetComponent().isStop() || agentOuter.GetComponent().isStop()) + && ((agentInner.GetComponent().destination.x - agentInner.transform.position.x) > 10*Mathf.Sin(3.14f/selectedList.Count) && (agentInner.GetComponent().destination.y - agentInner.transform.position.y) > 10 * Mathf.Sin(3.14f / selectedList.Count))) { agentInner.GetComponent().makeStop(); agentInner.GetComponent().Stop(); @@ -95,7 +96,7 @@ void Update () { foreach (GameObject barrier in selectedList) { Vector3 position = barrier.transform.position; - position.x--; + position.x++; barrier.transform.position = position; } } @@ -104,7 +105,7 @@ void Update () { foreach (GameObject barrier in selectedList) { Vector3 position = barrier.transform.position; - position.x++; + position.x--; barrier.transform.position = position; } } diff --git a/Assets/_B1/scripts/movingBarrier.cs b/Assets/_B1/scripts/movingBarrier.cs index d6f368d3..31f216cf 100644 --- a/Assets/_B1/scripts/movingBarrier.cs +++ b/Assets/_B1/scripts/movingBarrier.cs @@ -22,7 +22,7 @@ void Start () { // Update is called once per frame void Update () { - float distCovered = (Time.time - startTime) *2.5f; + float distCovered = (Time.time - startTime) *1.5f; float fracJourney = distCovered / pathLength; transform.position = Vector3.Lerp(startPos, endPos, fracJourney); if (transform.position == endPos) diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index 4ddc1e60906509555c51b0d2716bc205f70b2dd1..e2fcdc933a76cb6ef15419a1e58cf6d4895d71cc 100644 GIT binary patch delta 80 zcmeBBSfL=zz`)qYz#yQ(z`(!{q=6IzgQ=d0o Date: Wed, 28 Sep 2016 20:07:57 -0400 Subject: [PATCH 4/9] Update README.md --- README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b3f9590c..3b388fc7 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,22 @@ # Unity General Unity Playground with all needed assets -Group 16 +Group 16 -Members: -Hareesh Ravi -Cyril Manayath -Lei Wang -Zacharias Psarakis +Members: + +1. Hareesh Ravi +2. Cyril Manayath +3. Lei Wang +4. Zacharias Psarakis + +Webpage: -Webpage: https://graphics.cs.rutgers.edu/teaching/2016-fall/computer-graphics/groups/16 -Assignment B1 +Assignment B1 -Navigation Basics +Navigation Basics This game has 6 agents moving around in an environment full of obstacles such as moving walls, stairs, maze etc. Select the agent you want to move, by clicking on it with the mouse, and click on the position of the destination From c3ee6f241e4347995c41ed3e69e4296ac842db2d Mon Sep 17 00:00:00 2001 From: CG-F16-16-Rutgers Date: Wed, 28 Sep 2016 20:08:14 -0400 Subject: [PATCH 5/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b388fc7..6cc240c6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Unity General Unity Playground with all needed assets -Group 16 +Group 16 Members: From 6cdc19e38b4b2c979cc604bb9a05471b28e699c1 Mon Sep 17 00:00:00 2001 From: CG-F16-16-Rutgers Date: Wed, 28 Sep 2016 21:15:14 -0400 Subject: [PATCH 6/9] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 6cc240c6..92faba0c 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,6 @@ Select the agent you want to move, by clicking on it with the mouse, and click o you want the agent to move to. You can see that, when multiple agents move, they do not bunch up! They don't collide, avoid obstacles and follow the shortest path to the specified destination. -Web playabale version of the game is available at: - - A video demo of the game is available at: +https://www.youtube.com/watch?v=Eo4u8OBC82k&index=11&list=PLMrnU9hvxHHWoAq9KBF3Ydhhn82q8_Xgo From 50d8c9776f1ac61bac3cf854f6fbf5b70e57ad8c Mon Sep 17 00:00:00 2001 From: CG-F16-16-Rutgers Date: Wed, 28 Sep 2016 21:19:49 -0400 Subject: [PATCH 7/9] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 92faba0c..437c2a3f 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,9 @@ https://graphics.cs.rutgers.edu/teaching/2016-fall/computer-graphics/groups/16 This game has 6 agents moving around in an environment full of obstacles such as moving walls, stairs, maze etc. Select the agent you want to move, by clicking on it with the mouse, and click on the position of the destination -you want the agent to move to. You can see that, when multiple agents move, they do not bunch up! They don't -collide, avoid obstacles and follow the shortest path to the specified destination. +you want the agent to move to. You can see that, when multiple agents move, they do not bunch up! They do not collide +with each other, avoid obstacles and follow the shortest path to the specified destination. They adapt to dynamic +obstacles as well. A video demo of the game is available at: https://www.youtube.com/watch?v=Eo4u8OBC82k&index=11&list=PLMrnU9hvxHHWoAq9KBF3Ydhhn82q8_Xgo From 8ab2cfb9fe9e8a84542e6dc3a0ff3a7d29398606 Mon Sep 17 00:00:00 2001 From: Zacharias Psarakis Date: Wed, 12 Oct 2016 20:15:05 -0500 Subject: [PATCH 8/9] Pushing partial 1st Part. Still working on animation --- .../Locomotion Pack/JumpUpHigh.fbm.meta | 4 +- Assets/Editor/CrossPlatformInput.meta | 9 + .../CrossPlatformInputInitialize.cs | 139 +++ .../CrossPlatformInputInitialize.cs.meta | 9 + .../Materials/grass_texture_four.mat | Bin 0 -> 5020 bytes .../Materials/grass_texture_four.mat.meta | 8 + Assets/Scenes/B2_Graphics.unity | Bin 0 -> 23876 bytes Assets/Scenes/B2_Graphics.unity.meta | 8 + Assets/Scripts/Scripts_B2.meta | 9 + Assets/Scripts/Scripts_B2/CharacterInput.cs | 100 ++ .../Scripts/Scripts_B2/CharacterInput.cs.meta | 12 + .../EricaAnimationController.controller | Bin 0 -> 10832 bytes .../EricaAnimationController.controller.meta | 8 + Assets/Standard Assets/Cameras.meta | 6 + .../Cameras/CameraGuidelines.txt | 33 + .../Cameras/CameraGuidelines.txt.meta | 5 + Assets/Standard Assets/Cameras/Prefabs.meta | 6 + .../Cameras/Prefabs/CctvCamera.prefab | 132 +++ .../Cameras/Prefabs/CctvCamera.prefab.meta | 5 + .../Cameras/Prefabs/FreeLookCameraRig.prefab | 211 ++++ .../Prefabs/FreeLookCameraRig.prefab.meta | 5 + .../Cameras/Prefabs/HandheldCamera.prefab | 136 +++ .../Prefabs/HandheldCamera.prefab.meta | 5 + .../Prefabs/MultipurposeCameraRig.prefab | 210 ++++ .../Prefabs/MultipurposeCameraRig.prefab.meta | 5 + Assets/Standard Assets/Cameras/Scripts.meta | 6 + .../Cameras/Scripts/AbstractTargetFollower.cs | 104 ++ .../Scripts/AbstractTargetFollower.cs.meta | 9 + .../Cameras/Scripts/AutoCam.cs | 107 ++ .../Cameras/Scripts/AutoCam.cs.meta | 9 + .../Cameras/Scripts/FreeLookCam.cs | 155 +++ .../Cameras/Scripts/FreeLookCam.cs.meta | 9 + .../Cameras/Scripts/HandHeldCam.cs | 33 + .../Cameras/Scripts/HandHeldCam.cs.meta | 9 + .../Cameras/Scripts/LookatTarget.cs | 66 ++ .../Cameras/Scripts/LookatTarget.cs.meta | 9 + .../Cameras/Scripts/PivotBasedCameraRig.cs | 28 + .../Scripts/PivotBasedCameraRig.cs.meta | 11 + .../Scripts/ProtectCameraFromWallClip.cs | 124 +++ .../Scripts/ProtectCameraFromWallClip.cs.meta | 9 + .../Cameras/Scripts/TargetFieldOfView.cs | 79 ++ .../Cameras/Scripts/TargetFieldOfView.cs.meta | 9 + .../Standard Assets/CrossPlatformInput.meta | 9 + .../CrossPlatformInputGuidelines.txt | 32 + .../CrossPlatformInputGuidelines.txt.meta | 5 + .../CrossPlatformInput/Prefabs.meta | 9 + .../Prefabs/CarTiltControls.prefab | 461 +++++++++ .../Prefabs/CarTiltControls.prefab.meta | 5 + .../Prefabs/DualTouchControls.prefab | 578 +++++++++++ .../Prefabs/DualTouchControls.prefab.meta | 5 + .../Prefabs/MobileAircraftControls.prefab | 972 ++++++++++++++++++ .../MobileAircraftControls.prefab.meta | 5 + .../Prefabs/MobileSingleStickControl.prefab | 376 +++++++ .../MobileSingleStickControl.prefab.meta | 5 + .../Prefabs/MobileTiltControlRig.prefab | 144 +++ .../Prefabs/MobileTiltControlRig.prefab.meta | 5 + .../CrossPlatformInput/Scripts.meta | 9 + .../Scripts/AxisTouchButton.cs | 75 ++ .../Scripts/AxisTouchButton.cs.meta | 9 + .../Scripts/ButtonHandler.cs | 50 + .../Scripts/ButtonHandler.cs.meta | 9 + .../Scripts/CrossPlatformInputManager.cs | 318 ++++++ .../Scripts/CrossPlatformInputManager.cs.meta | 11 + .../Scripts/InputAxisScrollbar.cs | 17 + .../Scripts/InputAxisScrollbar.cs.meta | 9 + .../CrossPlatformInput/Scripts/Joystick.cs | 118 +++ .../Scripts/Joystick.cs.meta | 9 + .../Scripts/MobileControlRig.cs | 85 ++ .../Scripts/MobileControlRig.cs.meta | 9 + .../Scripts/PlatformSpecific.meta | 9 + .../Scripts/PlatformSpecific/MobileInput.cs | 133 +++ .../PlatformSpecific/MobileInput.cs.meta | 9 + .../PlatformSpecific/StandaloneInput.cs | 79 ++ .../PlatformSpecific/StandaloneInput.cs.meta | 9 + .../CrossPlatformInput/Scripts/TiltInput.cs | 145 +++ .../Scripts/TiltInput.cs.meta | 13 + .../CrossPlatformInput/Scripts/TouchPad.cs | 156 +++ .../Scripts/TouchPad.cs.meta | 9 + .../Scripts/VirtualInput.cs | 134 +++ .../Scripts/VirtualInput.cs.meta | 9 + .../CrossPlatformInput/Sprites.meta | 9 + .../Sprites/ButtonAcceleratorOverSprite.png | Bin 0 -> 10618 bytes .../ButtonAcceleratorOverSprite.png.meta | 52 + .../Sprites/ButtonAcceleratorUpSprite.png | Bin 0 -> 10747 bytes .../ButtonAcceleratorUpSprite.png.meta | 52 + .../Sprites/ButtonArrowOverSprite.png | Bin 0 -> 8229 bytes .../Sprites/ButtonArrowOverSprite.png.meta | 52 + .../Sprites/ButtonArrowUpSprite.png | Bin 0 -> 8376 bytes .../Sprites/ButtonArrowUpSprite.png.meta | 52 + .../Sprites/ButtonBrakeOverSprite.png | Bin 0 -> 5818 bytes .../Sprites/ButtonBrakeOverSprite.png.meta | 52 + .../Sprites/ButtonBrakeUpSprite.png | Bin 0 -> 5873 bytes .../Sprites/ButtonBrakeUpSprite.png.meta | 52 + .../Sprites/ButtonCameraCycleUpSprite.png | Bin 0 -> 5764 bytes .../ButtonCameraCycleUpSprite.png.meta | 52 + .../Sprites/ButtonResetSprite.png | Bin 0 -> 8412 bytes .../Sprites/ButtonResetSprite.png.meta | 53 + .../Sprites/ButtonSpacebarSprite.png | Bin 0 -> 3471 bytes .../Sprites/ButtonSpacebarSprite.png.meta | 53 + .../Sprites/ButtonThumbstickOverSprite.png | Bin 0 -> 8099 bytes .../ButtonThumbstickOverSprite.png.meta | 52 + .../Sprites/ButtonThumbstickUpSprite.png | Bin 0 -> 8278 bytes .../Sprites/ButtonThumbstickUpSprite.png.meta | 52 + .../Sprites/ButtonTimescaleFullUpSprite.png | Bin 0 -> 8409 bytes .../ButtonTimescaleFullUpSprite.png.meta | 52 + .../Sprites/ButtonTimescaleSlowUpSprite.png | Bin 0 -> 9144 bytes .../ButtonTimescaleSlowUpSprite.png.meta | 52 + .../Sprites/SliderBackgroundSprite.png | Bin 0 -> 2309 bytes .../Sprites/SliderBackgroundSprite.png.meta | 53 + .../Sprites/SliderHandleSprite.png | Bin 0 -> 1671 bytes .../Sprites/SliderHandleSprite.png.meta | 52 + .../Sprites/TouchpadSprite.png | Bin 0 -> 3828 bytes .../Sprites/TouchpadSprite.png.meta | 53 + 113 files changed, 6728 insertions(+), 2 deletions(-) create mode 100644 Assets/Editor/CrossPlatformInput.meta create mode 100644 Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs create mode 100644 Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs.meta create mode 100644 Assets/Resources/Materials/grass_texture_four.mat create mode 100644 Assets/Resources/Materials/grass_texture_four.mat.meta create mode 100644 Assets/Scenes/B2_Graphics.unity create mode 100644 Assets/Scenes/B2_Graphics.unity.meta create mode 100644 Assets/Scripts/Scripts_B2.meta create mode 100644 Assets/Scripts/Scripts_B2/CharacterInput.cs create mode 100644 Assets/Scripts/Scripts_B2/CharacterInput.cs.meta create mode 100644 Assets/Scripts/Scripts_B2/EricaAnimationController.controller create mode 100644 Assets/Scripts/Scripts_B2/EricaAnimationController.controller.meta create mode 100644 Assets/Standard Assets/Cameras.meta create mode 100644 Assets/Standard Assets/Cameras/CameraGuidelines.txt create mode 100644 Assets/Standard Assets/Cameras/CameraGuidelines.txt.meta create mode 100644 Assets/Standard Assets/Cameras/Prefabs.meta create mode 100644 Assets/Standard Assets/Cameras/Prefabs/CctvCamera.prefab create mode 100644 Assets/Standard Assets/Cameras/Prefabs/CctvCamera.prefab.meta create mode 100644 Assets/Standard Assets/Cameras/Prefabs/FreeLookCameraRig.prefab create mode 100644 Assets/Standard Assets/Cameras/Prefabs/FreeLookCameraRig.prefab.meta create mode 100644 Assets/Standard Assets/Cameras/Prefabs/HandheldCamera.prefab create mode 100644 Assets/Standard Assets/Cameras/Prefabs/HandheldCamera.prefab.meta create mode 100644 Assets/Standard Assets/Cameras/Prefabs/MultipurposeCameraRig.prefab create mode 100644 Assets/Standard Assets/Cameras/Prefabs/MultipurposeCameraRig.prefab.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/AbstractTargetFollower.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/AbstractTargetFollower.cs.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/AutoCam.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/AutoCam.cs.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs.meta create mode 100644 Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs create mode 100644 Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt create mode 100644 Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab create mode 100644 Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs create mode 100644 Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorOverSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorOverSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorUpSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorUpSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowOverSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowOverSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowUpSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowUpSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeOverSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeOverSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeUpSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeUpSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonCameraCycleUpSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonCameraCycleUpSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonResetSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonResetSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonSpacebarSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonSpacebarSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickOverSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickOverSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickUpSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickUpSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleFullUpSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleFullUpSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleSlowUpSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleSlowUpSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/SliderBackgroundSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/SliderBackgroundSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/SliderHandleSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/SliderHandleSprite.png.meta create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/TouchpadSprite.png create mode 100644 Assets/Standard Assets/CrossPlatformInput/Sprites/TouchpadSprite.png.meta diff --git a/Assets/Animations/Locomotion Pack/JumpUpHigh.fbm.meta b/Assets/Animations/Locomotion Pack/JumpUpHigh.fbm.meta index dfa358bd..3ccb6b31 100644 --- a/Assets/Animations/Locomotion Pack/JumpUpHigh.fbm.meta +++ b/Assets/Animations/Locomotion Pack/JumpUpHigh.fbm.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 -guid: 3f520c3a12d2b2e4a88262208e23abae +guid: 07fa86f4f56ad2449b59f0b9c2db08f4 folderAsset: yes -timeCreated: 1474904167 +timeCreated: 1476320910 licenseType: Free DefaultImporter: userData: diff --git a/Assets/Editor/CrossPlatformInput.meta b/Assets/Editor/CrossPlatformInput.meta new file mode 100644 index 00000000..c3e37649 --- /dev/null +++ b/Assets/Editor/CrossPlatformInput.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 696c0e7b8c74e1442acbf15c2df9e72d +folderAsset: yes +timeCreated: 1436977288 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs b/Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs new file mode 100644 index 00000000..37d1dacf --- /dev/null +++ b/Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs @@ -0,0 +1,139 @@ +using System; +using System.Collections.Generic; +using UnityEditor; + +namespace UnityStandardAssets.CrossPlatformInput.Inspector +{ + [InitializeOnLoad] + public class CrossPlatformInitialize + { + // Custom compiler defines: + // + // CROSS_PLATFORM_INPUT : denotes that cross platform input package exists, so that other packages can use their CrossPlatformInput functions. + // EDITOR_MOBILE_INPUT : denotes that mobile input should be used in editor, if a mobile build target is selected. (i.e. using Unity Remote app). + // MOBILE_INPUT : denotes that mobile input should be used right now! + + static CrossPlatformInitialize() + { + var defines = GetDefinesList(buildTargetGroups[0]); + if (!defines.Contains("CROSS_PLATFORM_INPUT")) + { + SetEnabled("CROSS_PLATFORM_INPUT", true, false); + SetEnabled("MOBILE_INPUT", true, true); + } + } + + + [MenuItem("Mobile Input/Enable")] + private static void Enable() + { + SetEnabled("MOBILE_INPUT", true, true); + switch (EditorUserBuildSettings.activeBuildTarget) + { + case BuildTarget.Android: + case BuildTarget.iOS: + case BuildTarget.PSM: + case BuildTarget.Tizen: + case BuildTarget.WSAPlayer: + EditorUtility.DisplayDialog("Mobile Input", + "You have enabled Mobile Input. You'll need to use the Unity Remote app on a connected device to control your game in the Editor.", + "OK"); + break; + + default: + EditorUtility.DisplayDialog("Mobile Input", + "You have enabled Mobile Input, but you have a non-mobile build target selected in your build settings. The mobile control rigs won't be active or visible on-screen until you switch the build target to a mobile platform.", + "OK"); + break; + } + } + + + [MenuItem("Mobile Input/Enable", true)] + private static bool EnableValidate() + { + var defines = GetDefinesList(mobileBuildTargetGroups[0]); + return !defines.Contains("MOBILE_INPUT"); + } + + + [MenuItem("Mobile Input/Disable")] + private static void Disable() + { + SetEnabled("MOBILE_INPUT", false, true); + switch (EditorUserBuildSettings.activeBuildTarget) + { + case BuildTarget.Android: + case BuildTarget.iOS: + EditorUtility.DisplayDialog("Mobile Input", + "You have disabled Mobile Input. Mobile control rigs won't be visible, and the Cross Platform Input functions will always return standalone controls.", + "OK"); + break; + } + } + + + [MenuItem("Mobile Input/Disable", true)] + private static bool DisableValidate() + { + var defines = GetDefinesList(mobileBuildTargetGroups[0]); + return defines.Contains("MOBILE_INPUT"); + } + + + private static BuildTargetGroup[] buildTargetGroups = new BuildTargetGroup[] + { + BuildTargetGroup.Standalone, + BuildTargetGroup.Android, + BuildTargetGroup.iOS, + BuildTargetGroup.WSA + }; + + private static BuildTargetGroup[] mobileBuildTargetGroups = new BuildTargetGroup[] + { + BuildTargetGroup.Android, + BuildTargetGroup.iOS, + BuildTargetGroup.PSM, + BuildTargetGroup.SamsungTV, + BuildTargetGroup.Tizen, + BuildTargetGroup.WSA + }; + + + private static void SetEnabled(string defineName, bool enable, bool mobile) + { + //Debug.Log("setting "+defineName+" to "+enable); + foreach (var group in mobile ? mobileBuildTargetGroups : buildTargetGroups) + { + var defines = GetDefinesList(group); + if (enable) + { + if (defines.Contains(defineName)) + { + return; + } + defines.Add(defineName); + } + else + { + if (!defines.Contains(defineName)) + { + return; + } + while (defines.Contains(defineName)) + { + defines.Remove(defineName); + } + } + string definesString = string.Join(";", defines.ToArray()); + PlayerSettings.SetScriptingDefineSymbolsForGroup(group, definesString); + } + } + + + private static List GetDefinesList(BuildTargetGroup group) + { + return new List(PlayerSettings.GetScriptingDefineSymbolsForGroup(group).Split(';')); + } + } +} diff --git a/Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs.meta b/Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs.meta new file mode 100644 index 00000000..56f7e861 --- /dev/null +++ b/Assets/Editor/CrossPlatformInput/CrossPlatformInputInitialize.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: db7667203062c644ea1877077e30ebd6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Resources/Materials/grass_texture_four.mat b/Assets/Resources/Materials/grass_texture_four.mat new file mode 100644 index 0000000000000000000000000000000000000000..338e994ecea85b49ae3be8fb184a15bac315ad5e GIT binary patch literal 5020 zcmeI0%WvFN6vod?o=tg`P})*T!~2~U+VTvYG_SU_L()uJ5DSbmxie$%*pcmN6N!aa zNU&!`Hx&{aB!pPOqB}N7ERYK7qAe_2vFjF94c~X|xy((1!XGeabmV(~K0ZDV+jDJ^ z!7C!e7ewSMID6~jt_wTLU`6cg z$CmP{NDBK^JxN6h_GuUmdjaVu(}HZl_;>KTuq|p%>!SPtAA2#UeNP7;g`a0I zAI$gBn!itrlKzzY>FcoX^uzcv>!Nh}88Eyc$Kd}P_+k7!MA+}UALzU@7MMG0dvOlwBZBRd3m2@`3_p=eU@D7pjFT34DXXm7_*+N@$*m$>-HV` z`!mM8_Fo``6l6gAZ{P1PYL@ZN>wnbnez^wUmoeu(x(_NcqWxS%zE?5ph3+Tr;MXxD z=RKJ5%+H^g(a+1o9rkTM2iEYmpM!=MbsukH&UzjqPZ_`6$5#xu`-tbImbHC+&Dh(0 zeBE%nk8c=m_wh~ejrur7uGQ}2TZZ=u>&ZT{ZhUT0_`Kr%4%PXV2-EfXjvH?0dxRXa zHs1-tl-$mD(r`Q9DZ}l2r@=SMcZOW6oiCrG8Sj&`h=BR>*?9~qGJ<{mx(-^uxjHJm4-pOZN+yNQZC*O$4uBpRDu^pY@|UQSdHdtq=`n$C>ptK(A` z%(+Pe18rAnxQi;{?rdZRC)CRMFj|ZOPI~o5(sY+*e7DZ|WGha>=DZ4UiSBSWd-BeS}oSTX8h1ibReN0MzKUvmj!WI5Rs9sBiv}Y(334Sw&McRfNKLI`VTLk zMJf(kQB}qJT8!RVXnB6(1&&%yB3ER7A-;U=18?@y`M-Yo_4?7@;I}K?3Un*btw6T| z-3oLo@c$~nSHpVb#<7#&j}`y$P7VLM*|Let^0x5Rn@eEMw?Mh9b|zZQB`z;4NwI3A zX2Ru`Go=#O^N;uoYBAizp0Cuoec6pa&b_oZ|LOakFlxH~CcgP<;!HQan9HwCY;}HR z*9))$;u0nOkuO0MJBDo_P8s?6zE?f!hjF~l@w#L98NivXR{hq7fvmIFanHFC&fzYv zb8pAPdJoY*dy_5Iv_F0d!74EcYc-6d#8>&e&Zc(8967Sb&QzRC_*hf&2nat@IPDyb zaaz(n)7%SG9MiPK>ngKdnO8MmRTI=)@5+6*Yes7buP>(@E-F0}(Z`z_Rgy>r^`ya_ z`SI;~fDB#vYK)%_oJunclLliz*LX2cHryakJ`aNoL!HW!sc9D>C4N?N&YZ2NDh3c;!}s5fyo6DvC0-ZWW|E6uTC{tSZFRlc*PF4SU0c%9Khl^< AJpcdz literal 0 HcmV?d00001 diff --git a/Assets/Resources/Materials/grass_texture_four.mat.meta b/Assets/Resources/Materials/grass_texture_four.mat.meta new file mode 100644 index 00000000..e7e7a0fc --- /dev/null +++ b/Assets/Resources/Materials/grass_texture_four.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bf28761d05c27a944abb60ed8b51cac4 +timeCreated: 1476321138 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/B2_Graphics.unity b/Assets/Scenes/B2_Graphics.unity new file mode 100644 index 0000000000000000000000000000000000000000..c1888011e9f03eed3dfc75f64d8bac93e2d8817e GIT binary patch literal 23876 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 literal 0 HcmV?d00001 diff --git a/Assets/Scenes/B2_Graphics.unity.meta b/Assets/Scenes/B2_Graphics.unity.meta new file mode 100644 index 00000000..aa12393f --- /dev/null +++ b/Assets/Scenes/B2_Graphics.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fbd79cd8c580b041aa688ae792a4367 +timeCreated: 1476320656 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Scripts_B2.meta b/Assets/Scripts/Scripts_B2.meta new file mode 100644 index 00000000..880e6c5f --- /dev/null +++ b/Assets/Scripts/Scripts_B2.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 496b51f2863b8b4439d8f7acf5b2f70e +folderAsset: yes +timeCreated: 1476320656 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Scripts_B2/CharacterInput.cs b/Assets/Scripts/Scripts_B2/CharacterInput.cs new file mode 100644 index 00000000..e3ff530b --- /dev/null +++ b/Assets/Scripts/Scripts_B2/CharacterInput.cs @@ -0,0 +1,100 @@ +using UnityEngine; +using System.Collections; + +namespace Character { + public class CharacterInput : MonoBehaviour { + + Animator ErikaAnimator; + private static float MAX_SPEED = 3.5f; + private static float MIN_SPEED = -3.5f; + string speedParam = "Speed"; + string directionParam = "Direction"; + + float speed = 0.0f; + float direction = 0.0f; + + public enum INPUT_KEY { + FORWARD = KeyCode.W, + BACKWARD = KeyCode.S, + LEFT = KeyCode.A, + RIGHT = KeyCode.D, + DUCK = KeyCode.LeftControl, + JUMP = KeyCode.Space, + RUN = KeyCode.LeftShift, + INVENTORY = KeyCode.I, + MAP = KeyCode.M, + FOCUS_LOOK = KeyCode.Mouse1, // secondary mouse button + CONTEXT_ACTION = KeyCode.Mouse1, + SELECT_AGENT = KeyCode.Mouse0, + FREE_CAM = KeyCode.F1, + THIRD_CAM = KeyCode.F2, + FIRST_CAM = KeyCode.F3 + } + + // Use this for initialization + void Start () { + ErikaAnimator = gameObject.GetComponent (); + } + + // Update is called once per frame + void Update () { + if (Input.GetKey ((KeyCode)INPUT_KEY.RUN)) + { + speed = speed*3; + } + else if (Input.GetKey ((KeyCode)INPUT_KEY.DUCK)) + { + + } + else + { + + } + // forward motion + if (Input.GetKey ((KeyCode)INPUT_KEY.FORWARD) && Input.GetKey ((KeyCode)INPUT_KEY.RUN)) { + speed = 3; + } + else if (Input.GetKey ((KeyCode)INPUT_KEY.FORWARD)) { + //ErikaAnimator.SetFloat (directionParam, 1); + speed = 1; + } else if (Input.GetKey ((KeyCode)INPUT_KEY.BACKWARD)) { + speed = -1; + } + else + { + speed = 0; + + } + + // turning + if (Input.GetKey ((KeyCode)INPUT_KEY.LEFT)) + { + + } + else if (Input.GetKey ((KeyCode)INPUT_KEY.RIGHT)) + { + + } + else + { + + } + + // jumping + if (Input.GetKeyDown((KeyCode)INPUT_KEY.JUMP)) + { // Note we only read jump once + + } + if (speed > MAX_SPEED) { + speed = MAX_SPEED; + } + if (speed < MIN_SPEED) { + speed = MIN_SPEED; + } + Debug.Log(ErikaAnimator.GetFloat(speedParam)); + ErikaAnimator.SetFloat (speedParam, speed); + ErikaAnimator.SetFloat (directionParam, direction); + + } + } +} diff --git a/Assets/Scripts/Scripts_B2/CharacterInput.cs.meta b/Assets/Scripts/Scripts_B2/CharacterInput.cs.meta new file mode 100644 index 00000000..cc95a343 --- /dev/null +++ b/Assets/Scripts/Scripts_B2/CharacterInput.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 59fdd7d40f6ccfb429044b1e5e9f330f +timeCreated: 1476308823 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Scripts_B2/EricaAnimationController.controller b/Assets/Scripts/Scripts_B2/EricaAnimationController.controller new file mode 100644 index 0000000000000000000000000000000000000000..554e916b01095e4ea24ff1667d7143cf14c816cb GIT binary patch literal 10832 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 + } + + + private void FixedUpdate() + { + // we update from here if updatetype is set to Fixed, or in auto mode, + // if the target has a rigidbody, and isn't kinematic. + if (m_AutoTargetPlayer && (m_Target == null || !m_Target.gameObject.activeSelf)) + { + FindAndTargetPlayer(); + } + if (m_UpdateType == UpdateType.FixedUpdate) + { + FollowTarget(Time.deltaTime); + } + } + + + private void LateUpdate() + { + // we update from here if updatetype is set to Late, or in auto mode, + // if the target does not have a rigidbody, or - does have a rigidbody but is set to kinematic. + if (m_AutoTargetPlayer && (m_Target == null || !m_Target.gameObject.activeSelf)) + { + FindAndTargetPlayer(); + } + if (m_UpdateType == UpdateType.LateUpdate) + { + FollowTarget(Time.deltaTime); + } + } + + + public void ManualUpdate() + { + // we update from here if updatetype is set to Late, or in auto mode, + // if the target does not have a rigidbody, or - does have a rigidbody but is set to kinematic. + if (m_AutoTargetPlayer && (m_Target == null || !m_Target.gameObject.activeSelf)) + { + FindAndTargetPlayer(); + } + if (m_UpdateType == UpdateType.ManualUpdate) + { + FollowTarget(Time.deltaTime); + } + } + + protected abstract void FollowTarget(float deltaTime); + + + public void FindAndTargetPlayer() + { + // auto target an object tagged player, if no target has been assigned + var targetObj = GameObject.FindGameObjectWithTag("Player"); + if (targetObj) + { + SetTarget(targetObj.transform); + } + } + + + public virtual void SetTarget(Transform newTransform) + { + m_Target = newTransform; + } + + + public Transform Target + { + get { return m_Target; } + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/AbstractTargetFollower.cs.meta b/Assets/Standard Assets/Cameras/Scripts/AbstractTargetFollower.cs.meta new file mode 100644 index 00000000..da819d75 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/AbstractTargetFollower.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 89a534d869bfccd49bebf7cb6fb244b6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/Cameras/Scripts/AutoCam.cs b/Assets/Standard Assets/Cameras/Scripts/AutoCam.cs new file mode 100644 index 00000000..906ae0f5 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/AutoCam.cs @@ -0,0 +1,107 @@ +using System; +using UnityEngine; +#if UNITY_EDITOR + +#endif + +namespace UnityStandardAssets.Cameras +{ + [ExecuteInEditMode] + public class AutoCam : PivotBasedCameraRig + { + [SerializeField] private float m_MoveSpeed = 3; // How fast the rig will move to keep up with target's position + [SerializeField] private float m_TurnSpeed = 1; // How fast the rig will turn to keep up with target's rotation + [SerializeField] private float m_RollSpeed = 0.2f;// How fast the rig will roll (around Z axis) to match target's roll. + [SerializeField] private bool m_FollowVelocity = false;// Whether the rig will rotate in the direction of the target's velocity. + [SerializeField] private bool m_FollowTilt = true; // Whether the rig will tilt (around X axis) with the target. + [SerializeField] private float m_SpinTurnLimit = 90;// The threshold beyond which the camera stops following the target's rotation. (used in situations where a car spins out, for example) + [SerializeField] private float m_TargetVelocityLowerLimit = 4f;// the minimum velocity above which the camera turns towards the object's velocity. Below this we use the object's forward direction. + [SerializeField] private float m_SmoothTurnTime = 0.2f; // the smoothing for the camera's rotation + + private float m_LastFlatAngle; // The relative angle of the target and the rig from the previous frame. + private float m_CurrentTurnAmount; // How much to turn the camera + private float m_TurnSpeedVelocityChange; // The change in the turn speed velocity + private Vector3 m_RollUp = Vector3.up;// The roll of the camera around the z axis ( generally this will always just be up ) + + + protected override void FollowTarget(float deltaTime) + { + // if no target, or no time passed then we quit early, as there is nothing to do + if (!(deltaTime > 0) || m_Target == null) + { + return; + } + + // initialise some vars, we'll be modifying these in a moment + var targetForward = m_Target.forward; + var targetUp = m_Target.up; + + if (m_FollowVelocity && Application.isPlaying) + { + // in follow velocity mode, the camera's rotation is aligned towards the object's velocity direction + // but only if the object is traveling faster than a given threshold. + + if (targetRigidbody.velocity.magnitude > m_TargetVelocityLowerLimit) + { + // velocity is high enough, so we'll use the target's velocty + targetForward = targetRigidbody.velocity.normalized; + targetUp = Vector3.up; + } + else + { + targetUp = Vector3.up; + } + m_CurrentTurnAmount = Mathf.SmoothDamp(m_CurrentTurnAmount, 1, ref m_TurnSpeedVelocityChange, m_SmoothTurnTime); + } + else + { + // we're in 'follow rotation' mode, where the camera rig's rotation follows the object's rotation. + + // This section allows the camera to stop following the target's rotation when the target is spinning too fast. + // eg when a car has been knocked into a spin. The camera will resume following the rotation + // of the target when the target's angular velocity slows below the threshold. + var currentFlatAngle = Mathf.Atan2(targetForward.x, targetForward.z)*Mathf.Rad2Deg; + if (m_SpinTurnLimit > 0) + { + var targetSpinSpeed = Mathf.Abs(Mathf.DeltaAngle(m_LastFlatAngle, currentFlatAngle))/deltaTime; + var desiredTurnAmount = Mathf.InverseLerp(m_SpinTurnLimit, m_SpinTurnLimit*0.75f, targetSpinSpeed); + var turnReactSpeed = (m_CurrentTurnAmount > desiredTurnAmount ? .1f : 1f); + if (Application.isPlaying) + { + m_CurrentTurnAmount = Mathf.SmoothDamp(m_CurrentTurnAmount, desiredTurnAmount, + ref m_TurnSpeedVelocityChange, turnReactSpeed); + } + else + { + // for editor mode, smoothdamp won't work because it uses deltaTime internally + m_CurrentTurnAmount = desiredTurnAmount; + } + } + else + { + m_CurrentTurnAmount = 1; + } + m_LastFlatAngle = currentFlatAngle; + } + + // camera position moves towards target position: + transform.position = Vector3.Lerp(transform.position, m_Target.position, deltaTime*m_MoveSpeed); + + // camera's rotation is split into two parts, which can have independend speed settings: + // rotating towards the target's forward direction (which encompasses its 'yaw' and 'pitch') + if (!m_FollowTilt) + { + targetForward.y = 0; + if (targetForward.sqrMagnitude < float.Epsilon) + { + targetForward = transform.forward; + } + } + var rollRotation = Quaternion.LookRotation(targetForward, m_RollUp); + + // and aligning with the target object's up direction (i.e. its 'roll') + m_RollUp = m_RollSpeed > 0 ? Vector3.Slerp(m_RollUp, targetUp, m_RollSpeed*deltaTime) : Vector3.up; + transform.rotation = Quaternion.Lerp(transform.rotation, rollRotation, m_TurnSpeed*m_CurrentTurnAmount*deltaTime); + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/AutoCam.cs.meta b/Assets/Standard Assets/Cameras/Scripts/AutoCam.cs.meta new file mode 100644 index 00000000..77830cf1 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/AutoCam.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a8d3968294210ba4a9d2bb96dfa74a16 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs b/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs new file mode 100644 index 00000000..bf87c871 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs @@ -0,0 +1,155 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput; + +namespace UnityStandardAssets.Cameras +{ + public class FreeLookCam : PivotBasedCameraRig + { + // This script is designed to be placed on the root object of a camera rig, + // comprising 3 gameobjects, each parented to the next: + + // Camera Rig + // Pivot + // Camera + + [SerializeField] private float m_MoveSpeed = 1f; // How fast the rig will move to keep up with the target's position. + [Range(0f, 10f)] [SerializeField] private float m_TurnSpeed = 1.5f; // How fast the rig will rotate from user input. + [SerializeField] private float m_TurnSmoothing = 0.0f; // How much smoothing to apply to the turn input, to reduce mouse-turn jerkiness + [SerializeField] private float m_TiltMax = 0f;//75f; // The maximum value of the x axis rotation of the pivot. + [SerializeField] private float m_TiltMin = 0f;//45f; // The minimum value of the x axis rotation of the pivot. + [SerializeField] private bool m_LockCursor = false; // Whether the cursor should be hidden and locked. + [SerializeField] private bool m_VerticalAutoReturn = false; // set wether or not the vertical axis should auto return + + private float m_LookAngle; // The rig's y axis rotation. + private float m_LookVerticalAngle; + private float m_TiltAngle; // The pivot's x axis rotation. + private const float k_LookDistance = 100f; // How far in front of the pivot the character's look target is. + private Vector3 m_PivotEulers; + private Quaternion m_PivotTargetRot; + private Quaternion m_TransformTargetRot; + + private GameObject Target; + + protected override void Awake() + { + base.Awake(); + // Lock or unlock the cursor. + Cursor.lockState = m_LockCursor ? CursorLockMode.Locked : CursorLockMode.None; + Cursor.visible = !m_LockCursor; + m_PivotEulers = m_Pivot.rotation.eulerAngles; + + m_PivotTargetRot = m_Pivot.transform.localRotation; + m_TransformTargetRot = transform.localRotation; + + Vector3 initialCameraTranslation = new Vector3(0, 10, 0); + Vector3 initialCameraRotation = new Vector3(0, 90, 0); + + transform.Translate (initialCameraTranslation); + //m_Pivot.localRotation = Quaternion.Euler(initialCameraRotation); + } + + protected void Start() + { + Target = GameObject.FindGameObjectWithTag ("Erika"); + } + + + + protected void Update() + { + ThirdPersonCamera (); + HandleRotationMovement(); + if (m_LockCursor && Input.GetMouseButtonUp(0)) + { + Cursor.lockState = m_LockCursor ? CursorLockMode.Locked : CursorLockMode.None; + Cursor.visible = !m_LockCursor; + } + } + + + private void OnDisable() + { + Cursor.lockState = CursorLockMode.None; + Cursor.visible = true; + } + + void ThirdPersonCamera() + { + Vector3 pos; + transform.rotation = Target.transform.rotation; + pos = Target.transform.position; + pos += transform.up * 1.8f; + pos += transform.forward * -2.6f; + pos += transform.right * 0.2f; + transform.position = pos; + } + + + protected override void FollowTarget(float deltaTime) + { + if (m_Target == null) return; + // Move the rig towards target position. + transform.position = Vector3.Lerp(transform.position, m_Target.position, deltaTime*m_MoveSpeed); + } + + + private void HandleRotationMovement() + { + if(Time.timeScale < float.Epsilon) + return; + + // Read the user input + float x = 0; + float y = 0; + float v = 0; + if (Input.GetMouseButton (2)) { + x = CrossPlatformInputManager.GetAxis ("Mouse X"); + y = 0.5f * CrossPlatformInputManager.GetAxis ("Mouse Y"); + v = -CrossPlatformInputManager.GetAxis ("Mouse Y"); + } + // Adjust the look angle by an amount proportional to the turn speed and horizontal input. + m_LookAngle += x*m_TurnSpeed; + m_LookVerticalAngle += v * m_TurnSpeed; + + // Rotate the rig (the root object) around Y axis only: + m_TransformTargetRot = Quaternion.Euler(m_LookVerticalAngle, m_LookAngle, 0f); + + if (m_VerticalAutoReturn) + { + // For tilt input, we need to behave differently depending on whether we're using mouse or touch input: + // on mobile, vertical input is directly mapped to tilt value, so it springs back automatically when the look input is released + // we have to test whether above or below zero because we want to auto-return to zero even if min and max are not symmetrical. + m_TiltAngle = y > 0 ? Mathf.Lerp(0, -m_TiltMin, y) : Mathf.Lerp(0, m_TiltMax, -y); + } + else + { + // on platforms with a mouse, we adjust the current angle based on Y mouse input and turn speed + m_TiltAngle -= y*m_TurnSpeed; + // and make sure the new value is within the tilt range + m_TiltAngle = Mathf.Clamp(m_TiltAngle, -m_TiltMin, m_TiltMax); + } + + // Tilt input around X is applied to the pivot (the child of this object) + + //m_PivotTargetRot = Quaternion.Euler(m_TiltAngle, m_PivotEulers.y , m_PivotEulers.z); + + if (m_TurnSmoothing > 0) + { + m_Pivot.localRotation = Quaternion.Slerp(m_Pivot.localRotation, m_PivotTargetRot, m_TurnSmoothing * Time.deltaTime); + transform.localRotation = Quaternion.Slerp(transform.localRotation, m_TransformTargetRot, m_TurnSmoothing * Time.deltaTime); + } + else + { + m_Pivot.localRotation = m_PivotTargetRot; + transform.localRotation = m_TransformTargetRot; + } + + //float moveH = Input.GetAxis ("Horizontal"); + //float moveV = 15*CrossPlatformInputManager.GetAxis("Mouse ScrollWheel") + Input.GetAxis ("Vertical"); + //float moveV = Input.GetAxis ("Vertical"); + //Vector3 cameraTranslation = new Vector3(moveH, 0, moveV); + //transform.Translate (cameraTranslation); + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs.meta b/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs.meta new file mode 100644 index 00000000..9b51a269 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e44af8091779fcb40801d5b284353dbe +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs b/Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs new file mode 100644 index 00000000..837cf5c7 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs @@ -0,0 +1,33 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Cameras +{ + public class HandHeldCam : LookatTarget + { + [SerializeField] private float m_SwaySpeed = .5f; + [SerializeField] private float m_BaseSwayAmount = .5f; + [SerializeField] private float m_TrackingSwayAmount = .5f; + [Range(-1, 1)] [SerializeField] private float m_TrackingBias = 0; + + + protected override void FollowTarget(float deltaTime) + { + base.FollowTarget(deltaTime); + + float bx = (Mathf.PerlinNoise(0, Time.time*m_SwaySpeed) - 0.5f); + float by = (Mathf.PerlinNoise(0, (Time.time*m_SwaySpeed) + 100)) - 0.5f; + + bx *= m_BaseSwayAmount; + by *= m_BaseSwayAmount; + + float tx = (Mathf.PerlinNoise(0, Time.time*m_SwaySpeed) - 0.5f) + m_TrackingBias; + float ty = ((Mathf.PerlinNoise(0, (Time.time*m_SwaySpeed) + 100)) - 0.5f) + m_TrackingBias; + + tx *= -m_TrackingSwayAmount*m_FollowVelocity.x; + ty *= m_TrackingSwayAmount*m_FollowVelocity.y; + + transform.Rotate(bx + tx, by + ty, 0); + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs.meta b/Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs.meta new file mode 100644 index 00000000..7b64b3b4 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/HandHeldCam.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d947636a9390f6a46a121124154e6e3f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs b/Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs new file mode 100644 index 00000000..a33b3a6f --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs @@ -0,0 +1,66 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Cameras +{ + public class LookatTarget : AbstractTargetFollower + { + // A simple script to make one object look at another, + // but with optional constraints which operate relative to + // this gameobject's initial rotation. + + // Only rotates around local X and Y. + + // Works in local coordinates, so if this object is parented + // to another moving gameobject, its local constraints will + // operate correctly + // (Think: looking out the side window of a car, or a gun turret + // on a moving spaceship with a limited angular range) + + // to have no constraints on an axis, set the rotationRange greater than 360. + + [SerializeField] private Vector2 m_RotationRange; + [SerializeField] private float m_FollowSpeed = 1; + + private Vector3 m_FollowAngles; + private Quaternion m_OriginalRotation; + + protected Vector3 m_FollowVelocity; + + + // Use this for initialization + protected override void Start() + { + base.Start(); + m_OriginalRotation = transform.localRotation; + } + + + protected override void FollowTarget(float deltaTime) + { + // we make initial calculations from the original local rotation + transform.localRotation = m_OriginalRotation; + + // tackle rotation around Y first + Vector3 localTarget = transform.InverseTransformPoint(m_Target.position); + float yAngle = Mathf.Atan2(localTarget.x, localTarget.z)*Mathf.Rad2Deg; + + yAngle = Mathf.Clamp(yAngle, -m_RotationRange.y*0.5f, m_RotationRange.y*0.5f); + transform.localRotation = m_OriginalRotation*Quaternion.Euler(0, yAngle, 0); + + // then recalculate new local target position for rotation around X + localTarget = transform.InverseTransformPoint(m_Target.position); + float xAngle = Mathf.Atan2(localTarget.y, localTarget.z)*Mathf.Rad2Deg; + xAngle = Mathf.Clamp(xAngle, -m_RotationRange.x*0.5f, m_RotationRange.x*0.5f); + var targetAngles = new Vector3(m_FollowAngles.x + Mathf.DeltaAngle(m_FollowAngles.x, xAngle), + m_FollowAngles.y + Mathf.DeltaAngle(m_FollowAngles.y, yAngle)); + + // smoothly interpolate the current angles to the target angles + m_FollowAngles = Vector3.SmoothDamp(m_FollowAngles, targetAngles, ref m_FollowVelocity, m_FollowSpeed); + + + // and update the gameobject itself + transform.localRotation = m_OriginalRotation*Quaternion.Euler(-m_FollowAngles.x, m_FollowAngles.y, 0); + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs.meta b/Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs.meta new file mode 100644 index 00000000..a2010957 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/LookatTarget.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f2ec2b96de5640e42a622fc3064f1c80 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs b/Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs new file mode 100644 index 00000000..cc76a6a7 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs @@ -0,0 +1,28 @@ +using System; +using UnityEngine; + + +namespace UnityStandardAssets.Cameras +{ + public abstract class PivotBasedCameraRig : AbstractTargetFollower + { + // This script is designed to be placed on the root object of a camera rig, + // comprising 3 gameobjects, each parented to the next: + + // Camera Rig + // Pivot + // Camera + + protected Transform m_Cam; // the transform of the camera + protected Transform m_Pivot; // the point at which the camera pivots around + protected Vector3 m_LastTargetPosition; + + + protected virtual void Awake() + { + // find the camera in the object hierarchy + m_Cam = GetComponentInChildren().transform; + m_Pivot = m_Cam.parent; + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs.meta b/Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs.meta new file mode 100644 index 00000000..701f56f8 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/PivotBasedCameraRig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 58cb183e16853564e9ed457f8a296db1 +labels: +- Done +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs b/Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs new file mode 100644 index 00000000..da8acd43 --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections; +using UnityEngine; + +namespace UnityStandardAssets.Cameras +{ + public class ProtectCameraFromWallClip : MonoBehaviour + { + public float clipMoveTime = 0.05f; // time taken to move when avoiding cliping (low value = fast, which it should be) + public float returnTime = 0.4f; // time taken to move back towards desired position, when not clipping (typically should be a higher value than clipMoveTime) + public float sphereCastRadius = 0.1f; // the radius of the sphere used to test for object between camera and target + public bool visualiseInEditor; // toggle for visualising the algorithm through lines for the raycast in the editor + public float closestDistance = 0.5f; // the closest distance the camera can be from the target + public bool protecting { get; private set; } // used for determining if there is an object between the target and the camera + public string dontClipTag = "Player"; // don't clip against objects with this tag (useful for not clipping against the targeted object) + + private Transform m_Cam; // the transform of the camera + private Transform m_Pivot; // the point at which the camera pivots around + private float m_OriginalDist; // the original distance to the camera before any modification are made + private float m_MoveVelocity; // the velocity at which the camera moved + private float m_CurrentDist; // the current distance from the camera to the target + private Ray m_Ray; // the ray used in the lateupdate for casting between the camera and the target + private RaycastHit[] m_Hits; // the hits between the camera and the target + private RayHitComparer m_RayHitComparer; // variable to compare raycast hit distances + + + private void Start() + { + // find the camera in the object hierarchy + m_Cam = GetComponentInChildren().transform; + m_Pivot = m_Cam.parent; + m_OriginalDist = m_Cam.localPosition.magnitude; + m_CurrentDist = m_OriginalDist; + + // create a new RayHitComparer + m_RayHitComparer = new RayHitComparer(); + } + + + private void LateUpdate() + { + // initially set the target distance + float targetDist = m_OriginalDist; + + m_Ray.origin = m_Pivot.position + m_Pivot.forward*sphereCastRadius; + m_Ray.direction = -m_Pivot.forward; + + // initial check to see if start of spherecast intersects anything + var cols = Physics.OverlapSphere(m_Ray.origin, sphereCastRadius); + + bool initialIntersect = false; + bool hitSomething = false; + + // loop through all the collisions to check if something we care about + for (int i = 0; i < cols.Length; i++) + { + if ((!cols[i].isTrigger) && + !(cols[i].attachedRigidbody != null && cols[i].attachedRigidbody.CompareTag(dontClipTag))) + { + initialIntersect = true; + break; + } + } + + // if there is a collision + if (initialIntersect) + { + m_Ray.origin += m_Pivot.forward*sphereCastRadius; + + // do a raycast and gather all the intersections + m_Hits = Physics.RaycastAll(m_Ray, m_OriginalDist - sphereCastRadius); + } + else + { + // if there was no collision do a sphere cast to see if there were any other collisions + m_Hits = Physics.SphereCastAll(m_Ray, sphereCastRadius, m_OriginalDist + sphereCastRadius); + } + + // sort the collisions by distance + Array.Sort(m_Hits, m_RayHitComparer); + + // set the variable used for storing the closest to be as far as possible + float nearest = Mathf.Infinity; + + // loop through all the collisions + for (int i = 0; i < m_Hits.Length; i++) + { + // only deal with the collision if it was closer than the previous one, not a trigger, and not attached to a rigidbody tagged with the dontClipTag + if (m_Hits[i].distance < nearest && (!m_Hits[i].collider.isTrigger) && + !(m_Hits[i].collider.attachedRigidbody != null && + m_Hits[i].collider.attachedRigidbody.CompareTag(dontClipTag))) + { + // change the nearest collision to latest + nearest = m_Hits[i].distance; + targetDist = -m_Pivot.InverseTransformPoint(m_Hits[i].point).z; + hitSomething = true; + } + } + + // visualise the cam clip effect in the editor + if (hitSomething) + { + Debug.DrawRay(m_Ray.origin, -m_Pivot.forward*(targetDist + sphereCastRadius), Color.red); + } + + // hit something so move the camera to a better position + protecting = hitSomething; + m_CurrentDist = Mathf.SmoothDamp(m_CurrentDist, targetDist, ref m_MoveVelocity, + m_CurrentDist > targetDist ? clipMoveTime : returnTime); + m_CurrentDist = Mathf.Clamp(m_CurrentDist, closestDistance, m_OriginalDist); + m_Cam.localPosition = -Vector3.forward*m_CurrentDist; + } + + + // comparer for check distances in ray cast hits + public class RayHitComparer : IComparer + { + public int Compare(object x, object y) + { + return ((RaycastHit) x).distance.CompareTo(((RaycastHit) y).distance); + } + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs.meta b/Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs.meta new file mode 100644 index 00000000..99ac1cdf --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/ProtectCameraFromWallClip.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 94b04ec3bda6b7747aa53936ef3b0ae2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs b/Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs new file mode 100644 index 00000000..a5aedefd --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs @@ -0,0 +1,79 @@ +using System; +using UnityEngine; + + +namespace UnityStandardAssets.Cameras +{ + public class TargetFieldOfView : AbstractTargetFollower + { + // This script is primarily designed to be used with the "LookAtTarget" script to enable a + // CCTV style camera looking at a target to also adjust its field of view (zoom) to fit the + // target (so that it zooms in as the target becomes further away). + // When used with a follow cam, it will automatically use the same target. + + [SerializeField] private float m_FovAdjustTime = 1; // the time taken to adjust the current FOV to the desired target FOV amount. + [SerializeField] private float m_ZoomAmountMultiplier = 2; // a multiplier for the FOV amount. The default of 2 makes the field of view twice as wide as required to fit the target. + [SerializeField] private bool m_IncludeEffectsInSize = false; // changing this only takes effect on startup, or when new target is assigned. + + private float m_BoundSize; + private float m_FovAdjustVelocity; + private Camera m_Cam; + private Transform m_LastTarget; + + // Use this for initialization + protected override void Start() + { + base.Start(); + m_BoundSize = MaxBoundsExtent(m_Target, m_IncludeEffectsInSize); + + // get a reference to the actual camera component: + m_Cam = GetComponentInChildren(); + } + + + protected override void FollowTarget(float deltaTime) + { + // calculate the correct field of view to fit the bounds size at the current distance + float dist = (m_Target.position - transform.position).magnitude; + float requiredFOV = Mathf.Atan2(m_BoundSize, dist)*Mathf.Rad2Deg*m_ZoomAmountMultiplier; + + m_Cam.fieldOfView = Mathf.SmoothDamp(m_Cam.fieldOfView, requiredFOV, ref m_FovAdjustVelocity, m_FovAdjustTime); + } + + + public override void SetTarget(Transform newTransform) + { + base.SetTarget(newTransform); + m_BoundSize = MaxBoundsExtent(newTransform, m_IncludeEffectsInSize); + } + + + public static float MaxBoundsExtent(Transform obj, bool includeEffects) + { + // get the maximum bounds extent of object, including all child renderers, + // but excluding particles and trails, for FOV zooming effect. + + var renderers = obj.GetComponentsInChildren(); + + Bounds bounds = new Bounds(); + bool initBounds = false; + foreach (Renderer r in renderers) + { + if (!((r is TrailRenderer) || (r is ParticleSystemRenderer))) + { + if (!initBounds) + { + initBounds = true; + bounds = r.bounds; + } + else + { + bounds.Encapsulate(r.bounds); + } + } + } + float max = Mathf.Max(bounds.extents.x, bounds.extents.y, bounds.extents.z); + return max; + } + } +} diff --git a/Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs.meta b/Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs.meta new file mode 100644 index 00000000..e9f4a36a --- /dev/null +++ b/Assets/Standard Assets/Cameras/Scripts/TargetFieldOfView.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a62942d9af3f36d448094c6ed1f214dd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput.meta b/Assets/Standard Assets/CrossPlatformInput.meta new file mode 100644 index 00000000..bc1c7386 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 710bc43f80d178548bd226c252c8e65b +folderAsset: yes +timeCreated: 1436977288 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt b/Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt new file mode 100644 index 00000000..461c8df4 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt @@ -0,0 +1,32 @@ + +Importing the CrossPlatformInput package adds a menu item to Unity, "CrossPlatformInput", which allows you to enable or disable the CrossPlatformInput in the editor. You must enable the CrossPlatformInput in order to see the control rigs in the editor, and to start using Unity Remote to control your game. + +The CrossPlatformInput sample assets contains two main sections. + +1) The folder of prefabs provide a variety of ready-to-use "MobileControlRigs". Each control rig is suitable for a different purpose, and each implements the touch or tilt-based equivalent of some of the default standalone axes or buttons. These are ready to drop into your scene, and to use them you simply need to read the axes via the CrossPlatformInput class, rather than Unity's regular Input class. + +2) The set of scripts provided are the scripts we used to put together the control rigs prefabs. They provide a simplified way of reading basic mobile input, such as tilt, taps and swipe gestures. They are designed so that various mobile controls can be read in the same way as regular Unity axes and buttons. You can use these scripts to build your own MobileControlRigs. + + + +For example the Car control rig feeds the tilt input of the mobile device to the "Horizontal" axis, and has an accelerator and brake touch button which are fed as a pair into the "Vertical" axis. These are virtual equivalents of the real "Horizontal" and "Vertical" axes defined in Unity's Input Manager. + +Therefore when you read CrossPlatformInput.GetAxis("Horizontal"), you will either get the "real" input value - if your build target is non-mobile, or the value from the mobile control rig - if your build target is set to a mobile platform. + +The CrossPlatformInput scripts and prefabs are provided together as an example of how you can implement a cross-platform control solution in Unity. They also allow us to provide our other sample scenes in a form that can be published as standalone or to mobile targets with no modification. + +To use the CrossPlatformInput, you need to drop a "Mobile Control Rig" into your scene (or create your own), and then make calls to CrossPlatformInput functions, referring to the axes and buttons that the Rig implements. + +When reading input from the CrossPlatformInput class, the values returned will be taken either from Unity's Input Manager settings, or from the mobile-specific controls set up, depending on which build target you have selected. + +The CrossPlatformInput class is designed to be called instead of Unity's own Input class, and so mirrors certain parts of the Input API - specifically the functions relating to Axes and Buttons: + GetAxis, GetAxisRaw + GetButton, GetButtonDown, GetButtonUp + +Notes for coders: +This package sets two compiler define symbols. One is always set automatically, the other is optionally set from a menu item. + +Importing the "CrossPlatformInput" package will automatically add a compiler define symbol, "CROSS_PLATFORM_INPUT". This enables the CrossPlatformInput functions defined in some of the other Sample Asset packages (such as the Characters, Planes, etc). Without this symbol defined, those packages use Unity's regular Input class, which means they can be imported alone and still work without the CrossPlatformInput package. + +The optional define (which is set by default, but can be disabled using the "Mobile Input" menu), is "MOBILE_INPUT". This causes the MobileControlRigs to become active when a mobile build target is selected. It also enables certain mobile-specific control nuances in some of the packages, which make more sense when the character or vehicle is being controlled using mobile input (such as auto-leveling the character's look direction). This define is optional because some developers prefer to use standalone input methods instead of the Unity Remote app, when testing mobile apps in the editor's play mode. + diff --git a/Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt.meta b/Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt.meta new file mode 100644 index 00000000..bc74ece8 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a3b997593a4f12c4c991490593f3b513 +TextScriptImporter: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs.meta b/Assets/Standard Assets/CrossPlatformInput/Prefabs.meta new file mode 100644 index 00000000..4d92b2eb --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5d3fb8e05edcf4b41aef584ca1b0d06f +folderAsset: yes +timeCreated: 1436977288 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab b/Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab new file mode 100644 index 00000000..9f5e2f2b --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab @@ -0,0 +1,461 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400000} + - 223: {fileID: 22300000} + - 114: {fileID: 11400002} + - 114: {fileID: 11400000} + m_Layer: 5 + m_Name: CarTiltControls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400002} + - 222: {fileID: 22200002} + - 114: {fileID: 11400010} + - 114: {fileID: 11400008} + m_Layer: 5 + m_Name: LookUpAndDownTouchpad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 114: {fileID: 11400012} + m_Layer: 0 + m_Name: TiltSteerInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400004} + - 222: {fileID: 22200004} + - 114: {fileID: 11400016} + - 114: {fileID: 11400014} + - 114: {fileID: 11436680} + m_Layer: 5 + m_Name: Brake + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &100008 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400006} + - 222: {fileID: 22200000} + - 114: {fileID: 11400006} + - 114: {fileID: 11400004} + - 114: {fileID: 11455192} + m_Layer: 5 + m_Name: Accelerator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -118.998169, y: -211.682297, z: -502.618439} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400000} + m_RootOrder: 2 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71398ce7fbc3a5b4fa50b50bd54317a7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ab98b66288df7b4fa182075f2f12bd6, type: 3} + m_Name: + m_EditorClassIdentifier: + axisName: Vertical + axisValue: 1 + responseSpeed: 999 + returnToCentreSpeed: 3 +--- !u!114 &11400006 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: f588d850485d0ae479d73cf3bd0b7b00, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1caf40fc8bebb6b43b2550c05ca791d6, type: 3} + m_Name: + m_EditorClassIdentifier: + axesToUse: 0 + controlStyle: 2 + horizontalAxisName: Mouse X + verticalAxisName: Mouse Y + Xsensitivity: 1 + Ysensitivity: 1 +--- !u!114 &11400010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .13333334} + m_Sprite: {fileID: 21300000, guid: e4f1fee3de32377429fd1348fae62b10, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c2d84226fbbaf94e9c1451f1c39b06a, type: 3} + m_Name: + m_EditorClassIdentifier: + mapping: + type: 0 + axisName: Horizontal + tiltAroundAxis: 0 + fullTiltAngle: 50 + centreAngleOffset: 0 +--- !u!114 &11400014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ab98b66288df7b4fa182075f2f12bd6, type: 3} + m_Name: + m_EditorClassIdentifier: + axisName: Vertical + axisValue: -1 + responseSpeed: 999 + returnToCentreSpeed: 3 +--- !u!114 &11400016 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: 827c9cd4a3943534f909ac6473e17288, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11436680 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} + m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} + m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 5b1a64ea234fb2343b8d0686c51280de, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 5b1a64ea234fb2343b8d0686c51280de, type: 3} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11400016} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11455192 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} + m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} + m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: eb5f6e2757c821940b69cf1456f7865a, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: eb5f6e2757c821940b69cf1456f7865a, type: 3} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11400006} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &22200000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} +--- !u!222 &22200002 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} +--- !u!222 &22200004 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} +--- !u!223 &22300000 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &22400000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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: 22400006} + - {fileID: 22400004} + - {fileID: 400000} + - {fileID: 22400002} + m_Father: {fileID: 0} + m_RootOrder: 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!224 &22400002 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + 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: 22400000} + m_RootOrder: 3 + m_AnchorMin: {x: .200000003, y: .300000012} + m_AnchorMax: {x: .800000012, y: .800000012} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400004 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + 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: 22400000} + m_RootOrder: 1 + m_AnchorMin: {x: .0199999996, y: .0299999993} + m_AnchorMax: {x: .0799999982, y: .180000007} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400006 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + 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: 22400000} + m_RootOrder: 0 + m_AnchorMin: {x: .920000017, y: .0299999993} + m_AnchorMax: {x: .980000019, y: .180000007} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab.meta b/Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab.meta new file mode 100644 index 00000000..6c763912 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/CarTiltControls.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 174090ae7f9eff84abe76f0ff062efac +NativeFormatImporter: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab b/Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab new file mode 100644 index 00000000..50de5213 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab @@ -0,0 +1,578 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400000} + - 223: {fileID: 22300000} + - 114: {fileID: 11400002} + - 114: {fileID: 11400000} + m_Layer: 5 + m_Name: DualTouchControls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400002} + - 222: {fileID: 22200002} + - 114: {fileID: 11400006} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400004} + - 222: {fileID: 22200000} + - 114: {fileID: 11400004} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400006} + - 222: {fileID: 22200004} + - 114: {fileID: 11400012} + - 114: {fileID: 11400010} + - 114: {fileID: 11400008} + m_Layer: 5 + m_Name: Jump + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &100008 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400008} + - 222: {fileID: 22200008} + - 114: {fileID: 11400022} + - 114: {fileID: 11400020} + m_Layer: 5 + m_Name: TurnAndLookTouchpad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &100010 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400010} + - 222: {fileID: 22200006} + - 114: {fileID: 11400016} + - 114: {fileID: 11400014} + m_Layer: 5 + m_Name: MoveTouchpad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &100012 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400012} + - 222: {fileID: 22200010} + - 114: {fileID: 11400026} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71398ce7fbc3a5b4fa50b50bd54317a7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .227450982} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 5 + m_MaxSize: 72 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Turn/Look Touch Area +--- !u!114 &11400006 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .227450982} + m_FontData: + m_Font: {fileID: 12800000, guid: b51a3e520f9164da198dc59c8acfccd6, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 5 + m_MaxSize: 72 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Move Touch Area +--- !u!114 &11400008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85bf3be603548374ca46f521a3aa7fda, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Jump +--- !u!114 &11400010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 2 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400008} + m_MethodName: SetDownState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Jump + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 3 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400008} + m_MethodName: SetUpState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Jump + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11400012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .13333334} + m_Sprite: {fileID: 21300000, guid: 3d8675433a508ec47b8f895201eacf20, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1caf40fc8bebb6b43b2550c05ca791d6, type: 3} + m_Name: + m_EditorClassIdentifier: + axesToUse: 0 + controlStyle: 0 + horizontalAxisName: Horizontal + verticalAxisName: Vertical + Xsensitivity: 1 + Ysensitivity: 1 +--- !u!114 &11400016 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .13333334} + m_Sprite: {fileID: 21300000, guid: e4f1fee3de32377429fd1348fae62b10, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400020 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1caf40fc8bebb6b43b2550c05ca791d6, type: 3} + m_Name: + m_EditorClassIdentifier: + axesToUse: 0 + controlStyle: 2 + horizontalAxisName: Mouse X + verticalAxisName: Mouse Y + Xsensitivity: 1 + Ysensitivity: 1 +--- !u!114 &11400022 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .13333334} + m_Sprite: {fileID: 21300000, guid: e4f1fee3de32377429fd1348fae62b10, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400026 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .188235298} + m_FontData: + m_Font: {fileID: 12800000, guid: 01cd679a1b9ee48bf9c546f6ce2cb97e, type: 3} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 5 + m_MaxSize: 72 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: JUMP +--- !u!222 &22200000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} +--- !u!222 &22200002 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} +--- !u!222 &22200004 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} +--- !u!222 &22200006 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} +--- !u!222 &22200008 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} +--- !u!222 &22200010 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} +--- !u!223 &22300000 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &22400000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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: 22400010} + - {fileID: 22400008} + - {fileID: 22400006} + m_Father: {fileID: 0} + m_RootOrder: 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!224 &22400002 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + 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: 22400010} + m_RootOrder: 0 + m_AnchorMin: {x: .100000001, y: .419999987} + m_AnchorMax: {x: .899999976, y: .579999983} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400004 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + 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: 22400008} + m_RootOrder: 0 + m_AnchorMin: {x: .100000001, y: .419999987} + m_AnchorMax: {x: .899999976, y: .579999983} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400006 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + 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: 22400012} + m_Father: {fileID: 22400000} + m_RootOrder: 2 + m_AnchorMin: {x: .540000021, y: .0199999996} + m_AnchorMax: {x: .959999979, y: .170000002} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400008 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + 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: 22400004} + m_Father: {fileID: 22400000} + m_RootOrder: 1 + m_AnchorMin: {x: .504999995, y: .200000003} + m_AnchorMax: {x: .99000001, y: .899999976} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400010 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + 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: 22400002} + m_Father: {fileID: 22400000} + m_RootOrder: 0 + m_AnchorMin: {x: .00999999978, y: .200000003} + m_AnchorMax: {x: .495000005, y: .899999976} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400012 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + 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: 22400006} + m_RootOrder: 0 + m_AnchorMin: {x: .0500000007, y: .180000007} + m_AnchorMax: {x: .949999988, y: .819999993} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab.meta b/Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab.meta new file mode 100644 index 00000000..d70a960d --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/DualTouchControls.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 2169821f0567671499a5c10104c69c24 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab new file mode 100644 index 00000000..caac4186 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab @@ -0,0 +1,972 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400000} + - 223: {fileID: 22300000} + - 114: {fileID: 11400000} + - 114: {fileID: 11400030} + m_Layer: 5 + m_Name: MobileAircraftControls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400002} + - 222: {fileID: 22200000} + - 114: {fileID: 11400002} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400004} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400006} + - 222: {fileID: 22200002} + - 114: {fileID: 11400004} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100008 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 114: {fileID: 11400014} + m_Layer: 0 + m_Name: TiltSteerInputH + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100010 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 114: {fileID: 11400028} + m_Layer: 0 + m_Name: TiltSteerInputV + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100012 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400008} + - 114: {fileID: 11494550} + - 114: {fileID: 11483774} + m_Layer: 5 + m_Name: Throttle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100014 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400010} + - 222: {fileID: 22200006} + - 114: {fileID: 11400020} + - 114: {fileID: 11400018} + - 114: {fileID: 11400016} + m_Layer: 5 + m_Name: Brake + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100016 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400012} + - 222: {fileID: 22200004} + - 114: {fileID: 11400012} + - 114: {fileID: 11400010} + - 114: {fileID: 11400008} + - 114: {fileID: 11424508} + m_Layer: 5 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100018 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400014} + - 222: {fileID: 22200008} + - 114: {fileID: 11400026} + - 114: {fileID: 11400024} + - 114: {fileID: 11400022} + - 114: {fileID: 11443148} + m_Layer: 5 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100020 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400016} + - 222: {fileID: 22200010} + - 114: {fileID: 11400032} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -542.68457, y: -205.718719, z: -62.2698517} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400000} + m_RootOrder: 5 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -542.68457, y: -205.718719, z: -62.2698517} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400000} + m_RootOrder: 4 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: e4f1fee3de32377429fd1348fae62b10, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .13333334} + m_Sprite: {fileID: 21300000, guid: ea5873cfd9158664f89459f0c9e1d853, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85bf3be603548374ca46f521a3aa7fda, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Horizontal +--- !u!114 &11400010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 2 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400008} + m_MethodName: SetAxisPositiveState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 1 + m_StringArgument: Horizontal + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 3 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400008} + m_MethodName: SetAxisNeutralState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Horizontal + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11400012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .588} + m_Sprite: {fileID: 21300000, guid: 4db017495c69e8140a56a0e2b669e3f8, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c2d84226fbbaf94e9c1451f1c39b06a, type: 3} + m_Name: + m_EditorClassIdentifier: + mapping: + type: 0 + axisName: Mouse X + tiltAroundAxis: 0 + fullTiltAngle: 50 + centreAngleOffset: 0 +--- !u!114 &11400016 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85bf3be603548374ca46f521a3aa7fda, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Fire1 +--- !u!114 &11400018 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 2 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400016} + m_MethodName: SetAxisPositiveState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 1 + m_FloatArgument: 0 + m_StringArgument: Fire1 + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 3 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400016} + m_MethodName: SetAxisNegativeState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Fire1 + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11400020 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .13333334} + m_Sprite: {fileID: 21300000, guid: 3d8675433a508ec47b8f895201eacf20, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400022 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85bf3be603548374ca46f521a3aa7fda, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Horizontal +--- !u!114 &11400024 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 2 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400022} + m_MethodName: SetAxisNegativeState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: -1 + m_StringArgument: Horizontal + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 3 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400022} + m_MethodName: SetAxisNeutralState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Horizontal + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11400026 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .588} + m_Sprite: {fileID: 21300000, guid: 4db017495c69e8140a56a0e2b669e3f8, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400028 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c2d84226fbbaf94e9c1451f1c39b06a, type: 3} + m_Name: + m_EditorClassIdentifier: + mapping: + type: 0 + axisName: Mouse Y + tiltAroundAxis: 1 + fullTiltAngle: -35 + centreAngleOffset: 45 +--- !u!114 &11400030 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71398ce7fbc3a5b4fa50b50bd54317a7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11400032 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .635294139} + m_FontData: + m_Font: {fileID: 12800000, guid: 01cd679a1b9ee48bf9c546f6ce2cb97e, type: 3} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 5 + m_MaxSize: 72 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: BRAKE +--- !u!114 &11424508 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} + m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} + m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 49b611e658efbf443b686a4036f74fe3, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 49b611e658efbf443b686a4036f74fe3, type: 3} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11400012} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11443148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} + m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} + m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 49b611e658efbf443b686a4036f74fe3, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 49b611e658efbf443b686a4036f74fe3, type: 3} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11400026} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11483774 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + 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: .960784316, g: .960784316, b: .960784316, a: 1} + m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} + m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_HandleRect: {fileID: 22400002} + m_Direction: 2 + m_Value: .5 + m_Size: .200000003 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11494550} + m_MethodName: HandleInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11494550 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d3269566d48b8447bb48d2259e28f8b, type: 3} + m_Name: + m_EditorClassIdentifier: + axis: Vertical +--- !u!222 &22200000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} +--- !u!222 &22200002 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} +--- !u!222 &22200004 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} +--- !u!222 &22200006 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} +--- !u!222 &22200008 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} +--- !u!222 &22200010 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100020} +--- !u!223 &22300000 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &22400000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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: 22400014} + - {fileID: 22400012} + - {fileID: 22400010} + - {fileID: 22400008} + - {fileID: 400002} + - {fileID: 400000} + m_Father: {fileID: 0} + m_RootOrder: 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!224 &22400002 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + 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: 22400004} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22400004 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + 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: 22400002} + m_Father: {fileID: 22400006} + m_RootOrder: 0 + m_AnchorMin: {x: .0900000036, y: 0} + m_AnchorMax: {x: .870000005, y: 1} + m_AnchoredPosition: {x: 2, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400006 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + 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: 22400004} + m_Father: {fileID: 22400008} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22400008 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + 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: 22400006} + m_Father: {fileID: 22400000} + m_RootOrder: 3 + m_AnchorMin: {x: .0199999996, y: .256999999} + m_AnchorMax: {x: .0799999982, y: .860000014} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400010 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + 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: 22400016} + m_Father: {fileID: 22400000} + m_RootOrder: 2 + m_AnchorMin: {x: .349999994, y: .0299999993} + m_AnchorMax: {x: .649999976, y: .129999995} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400012 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + 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: 22400000} + m_RootOrder: 1 + m_AnchorMin: {x: .920000017, y: .0299999993} + m_AnchorMax: {x: .980000019, y: .180000007} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400014 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_LocalRotation: {x: 0, y: 0, z: 1, w: -1.62920685e-07} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22400000} + m_RootOrder: 0 + m_AnchorMin: {x: .0199999996, y: .0299999993} + m_AnchorMax: {x: .0799999982, y: .180000007} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400016 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100020} + 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: 22400010} + m_RootOrder: 0 + m_AnchorMin: {x: .0199999996, y: .140000001} + m_AnchorMax: {x: .980000019, y: .860000014} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab.meta b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab.meta new file mode 100644 index 00000000..6576b7ad --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileAircraftControls.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 3369231b1ed7ad34e84d9240a571db81 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab new file mode 100644 index 00000000..1b677f85 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab @@ -0,0 +1,376 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400000} + - 223: {fileID: 22300000} + - 114: {fileID: 11400000} + - 114: {fileID: 11400012} + m_Layer: 5 + m_Name: MobileSingleStickControl + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400002} + - 222: {fileID: 22200002} + - 114: {fileID: 11400010} + - 114: {fileID: 11400008} + m_Layer: 5 + m_Name: MobileJoystick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400004} + - 222: {fileID: 22200000} + - 114: {fileID: 11400006} + - 114: {fileID: 11400004} + - 114: {fileID: 11400002} + m_Layer: 5 + m_Name: JumpButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22400006} + - 222: {fileID: 22200004} + - 114: {fileID: 11400016} + - 114: {fileID: 11400014} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85bf3be603548374ca46f521a3aa7fda, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: Jump +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 2 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400002} + m_MethodName: SetDownState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Jump + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 3 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400002} + m_MethodName: SetUpState + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Jump + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11400006 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: 3d8675433a508ec47b8f895201eacf20, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00c3c865782347f41b6358d9fba14b48, type: 3} + m_Name: + m_EditorClassIdentifier: + MovementRange: 100 + axesToUse: 0 + horizontalAxisName: Horizontal + verticalAxisName: Vertical +--- !u!114 &11400010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: 9866a92691696b346901281f2b329034, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71398ce7fbc3a5b4fa50b50bd54317a7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11400014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: .125490203} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 1 +--- !u!114 &11400016 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: .643137276} + m_FontData: + m_Font: {fileID: 12800000, guid: 01cd679a1b9ee48bf9c546f6ce2cb97e, type: 3} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Jump +--- !u!222 &22200000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} +--- !u!222 &22200002 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} +--- !u!222 &22200004 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} +--- !u!223 &22300000 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &22400000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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: 22400004} + - {fileID: 22400002} + m_Father: {fileID: 0} + m_RootOrder: 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!224 &22400002 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + 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: 22400000} + m_RootOrder: 1 + m_AnchorMin: {x: .160000011, y: .200000003} + m_AnchorMax: {x: .160000011, y: .200000003} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 80, y: 80} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400004 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + 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: 22400006} + m_Father: {fileID: 22400000} + m_RootOrder: 0 + m_AnchorMin: {x: .779999971, y: .00999999978} + m_AnchorMax: {x: .99000001, y: .150000006} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22400006 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + 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: 22400004} + m_RootOrder: 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: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab.meta b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab.meta new file mode 100644 index 00000000..8d63434e --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileSingleStickControl.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9529ecc3d479da5499993355e6c2cb4f +NativeFormatImporter: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab new file mode 100644 index 00000000..5356909b --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab @@ -0,0 +1,144 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 114: {fileID: 11400004} + m_Layer: 0 + m_Name: MobileTiltControlRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: TiltSteerInputH + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400004} + - 114: {fileID: 11400002} + m_Layer: 0 + m_Name: TiltSteerInputV + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 385.509033, y: 268.018066, z: -62.2695312} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400004} + - {fileID: 400002} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -928.193604, y: -473.736786, z: -.00032043457} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400000} + m_RootOrder: 1 +--- !u!4 &400004 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -928.193604, y: -473.736786, z: -.00032043457} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400000} + m_RootOrder: 0 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c2d84226fbbaf94e9c1451f1c39b06a, type: 3} + m_Name: + m_EditorClassIdentifier: + mapping: + type: 0 + axisName: Horizontal + tiltAroundAxis: 0 + fullTiltAngle: 50 + centreAngleOffset: 0 +--- !u!114 &11400002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c2d84226fbbaf94e9c1451f1c39b06a, type: 3} + m_Name: + m_EditorClassIdentifier: + mapping: + type: 0 + axisName: Vertical + tiltAroundAxis: 1 + fullTiltAngle: -35 + centreAngleOffset: 45 +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71398ce7fbc3a5b4fa50b50bd54317a7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 diff --git a/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab.meta b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab.meta new file mode 100644 index 00000000..271d5a2d --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Prefabs/MobileTiltControlRig.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 999388b68bb99b44099461bfbed94358 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts.meta new file mode 100644 index 00000000..5da31e9a --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3f66eeca8ac36914e9ec9a716a9d9f73 +folderAsset: yes +timeCreated: 1436977288 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs new file mode 100644 index 00000000..622138b3 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs @@ -0,0 +1,75 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class AxisTouchButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler + { + // designed to work in a pair with another axis touch button + // (typically with one having -1 and one having 1 axisValues) + public string axisName = "Horizontal"; // The name of the axis + public float axisValue = 1; // The axis that the value has + public float responseSpeed = 3; // The speed at which the axis touch button responds + public float returnToCentreSpeed = 3; // The speed at which the button will return to its centre + + AxisTouchButton m_PairedWith; // Which button this one is paired with + CrossPlatformInputManager.VirtualAxis m_Axis; // A reference to the virtual axis as it is in the cross platform input + + void OnEnable() + { + if (!CrossPlatformInputManager.AxisExists(axisName)) + { + // if the axis doesnt exist create a new one in cross platform input + m_Axis = new CrossPlatformInputManager.VirtualAxis(axisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_Axis); + } + else + { + m_Axis = CrossPlatformInputManager.VirtualAxisReference(axisName); + } + FindPairedButton(); + } + + void FindPairedButton() + { + // find the other button witch which this button should be paired + // (it should have the same axisName) + var otherAxisButtons = FindObjectsOfType(typeof(AxisTouchButton)) as AxisTouchButton[]; + + if (otherAxisButtons != null) + { + for (int i = 0; i < otherAxisButtons.Length; i++) + { + if (otherAxisButtons[i].axisName == axisName && otherAxisButtons[i] != this) + { + m_PairedWith = otherAxisButtons[i]; + } + } + } + } + + void OnDisable() + { + // The object is disabled so remove it from the cross platform input system + m_Axis.Remove(); + } + + + public void OnPointerDown(PointerEventData data) + { + if (m_PairedWith == null) + { + FindPairedButton(); + } + // update the axis and record that the button has been pressed this frame + m_Axis.Update(Mathf.MoveTowards(m_Axis.GetValue, axisValue, responseSpeed * Time.deltaTime)); + } + + + public void OnPointerUp(PointerEventData data) + { + m_Axis.Update(Mathf.MoveTowards(m_Axis.GetValue, 0, responseSpeed * Time.deltaTime)); + } + } +} \ No newline at end of file diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs.meta new file mode 100644 index 00000000..241497f0 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9ab98b66288df7b4fa182075f2f12bd6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs new file mode 100644 index 00000000..3b48f25b --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs @@ -0,0 +1,50 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class ButtonHandler : MonoBehaviour + { + + public string Name; + + void OnEnable() + { + + } + + public void SetDownState() + { + CrossPlatformInputManager.SetButtonDown(Name); + } + + + public void SetUpState() + { + CrossPlatformInputManager.SetButtonUp(Name); + } + + + public void SetAxisPositiveState() + { + CrossPlatformInputManager.SetAxisPositive(Name); + } + + + public void SetAxisNeutralState() + { + CrossPlatformInputManager.SetAxisZero(Name); + } + + + public void SetAxisNegativeState() + { + CrossPlatformInputManager.SetAxisNegative(Name); + } + + public void Update() + { + + } + } +} diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs.meta new file mode 100644 index 00000000..1aadb06d --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 85bf3be603548374ca46f521a3aa7fda +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs new file mode 100644 index 00000000..9d368c8a --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs @@ -0,0 +1,318 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput.PlatformSpecific; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public static class CrossPlatformInputManager + { + public enum ActiveInputMethod + { + Hardware, + Touch + } + + + private static VirtualInput activeInput; + + private static VirtualInput s_TouchInput; + private static VirtualInput s_HardwareInput; + + + static CrossPlatformInputManager() + { + s_TouchInput = new MobileInput(); + s_HardwareInput = new StandaloneInput(); +#if MOBILE_INPUT + activeInput = s_TouchInput; +#else + activeInput = s_HardwareInput; +#endif + } + + public static void SwitchActiveInputMethod(ActiveInputMethod activeInputMethod) + { + switch (activeInputMethod) + { + case ActiveInputMethod.Hardware: + activeInput = s_HardwareInput; + break; + + case ActiveInputMethod.Touch: + activeInput = s_TouchInput; + break; + } + } + + public static bool AxisExists(string name) + { + return activeInput.AxisExists(name); + } + + public static bool ButtonExists(string name) + { + return activeInput.ButtonExists(name); + } + + public static void RegisterVirtualAxis(VirtualAxis axis) + { + activeInput.RegisterVirtualAxis(axis); + } + + + public static void RegisterVirtualButton(VirtualButton button) + { + activeInput.RegisterVirtualButton(button); + } + + + public static void UnRegisterVirtualAxis(string name) + { + if (name == null) + { + throw new ArgumentNullException("name"); + } + activeInput.UnRegisterVirtualAxis(name); + } + + + public static void UnRegisterVirtualButton(string name) + { + activeInput.UnRegisterVirtualButton(name); + } + + + // returns a reference to a named virtual axis if it exists otherwise null + public static VirtualAxis VirtualAxisReference(string name) + { + return activeInput.VirtualAxisReference(name); + } + + + // returns the platform appropriate axis for the given name + public static float GetAxis(string name) + { + return GetAxis(name, false); + } + + + public static float GetAxisRaw(string name) + { + return GetAxis(name, true); + } + + + // private function handles both types of axis (raw and not raw) + private static float GetAxis(string name, bool raw) + { + return activeInput.GetAxis(name, raw); + } + + + // -- Button handling -- + public static bool GetButton(string name) + { + return activeInput.GetButton(name); + } + + + public static bool GetButtonDown(string name) + { + return activeInput.GetButtonDown(name); + } + + + public static bool GetButtonUp(string name) + { + return activeInput.GetButtonUp(name); + } + + + public static void SetButtonDown(string name) + { + activeInput.SetButtonDown(name); + } + + + public static void SetButtonUp(string name) + { + activeInput.SetButtonUp(name); + } + + + public static void SetAxisPositive(string name) + { + activeInput.SetAxisPositive(name); + } + + + public static void SetAxisNegative(string name) + { + activeInput.SetAxisNegative(name); + } + + + public static void SetAxisZero(string name) + { + activeInput.SetAxisZero(name); + } + + + public static void SetAxis(string name, float value) + { + activeInput.SetAxis(name, value); + } + + + public static Vector3 mousePosition + { + get { return activeInput.MousePosition(); } + } + + + public static void SetVirtualMousePositionX(float f) + { + activeInput.SetVirtualMousePositionX(f); + } + + + public static void SetVirtualMousePositionY(float f) + { + activeInput.SetVirtualMousePositionY(f); + } + + + public static void SetVirtualMousePositionZ(float f) + { + activeInput.SetVirtualMousePositionZ(f); + } + + + // virtual axis and button classes - applies to mobile input + // Can be mapped to touch joysticks, tilt, gyro, etc, depending on desired implementation. + // Could also be implemented by other input devices - kinect, electronic sensors, etc + public class VirtualAxis + { + public string name { get; private set; } + private float m_Value; + public bool matchWithInputManager { get; private set; } + + + public VirtualAxis(string name) + : this(name, true) + { + } + + + public VirtualAxis(string name, bool matchToInputSettings) + { + this.name = name; + matchWithInputManager = matchToInputSettings; + } + + + // removes an axes from the cross platform input system + public void Remove() + { + UnRegisterVirtualAxis(name); + } + + + // a controller gameobject (eg. a virtual thumbstick) should update this class + public void Update(float value) + { + m_Value = value; + } + + + public float GetValue + { + get { return m_Value; } + } + + + public float GetValueRaw + { + get { return m_Value; } + } + } + + // a controller gameobject (eg. a virtual GUI button) should call the + // 'pressed' function of this class. Other objects can then read the + // Get/Down/Up state of this button. + public class VirtualButton + { + public string name { get; private set; } + public bool matchWithInputManager { get; private set; } + + private int m_LastPressedFrame = -5; + private int m_ReleasedFrame = -5; + private bool m_Pressed; + + + public VirtualButton(string name) + : this(name, true) + { + } + + + public VirtualButton(string name, bool matchToInputSettings) + { + this.name = name; + matchWithInputManager = matchToInputSettings; + } + + + // A controller gameobject should call this function when the button is pressed down + public void Pressed() + { + if (m_Pressed) + { + return; + } + m_Pressed = true; + m_LastPressedFrame = Time.frameCount; + } + + + // A controller gameobject should call this function when the button is released + public void Released() + { + m_Pressed = false; + m_ReleasedFrame = Time.frameCount; + } + + + // the controller gameobject should call Remove when the button is destroyed or disabled + public void Remove() + { + UnRegisterVirtualButton(name); + } + + + // these are the states of the button which can be read via the cross platform input system + public bool GetButton + { + get { return m_Pressed; } + } + + + public bool GetButtonDown + { + get + { + return m_LastPressedFrame - Time.frameCount == -1; + } + } + + + public bool GetButtonUp + { + get + { + return (m_ReleasedFrame == Time.frameCount - 1); + } + } + } + } +} diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs.meta new file mode 100644 index 00000000..ea900aa2 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ac1ce5a5adfd9f46adbf5b6f752a47c +labels: +- Done +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: -1010 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs new file mode 100644 index 00000000..c524fc25 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs @@ -0,0 +1,17 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class InputAxisScrollbar : MonoBehaviour + { + public string axis; + + void Update() { } + + public void HandleInput(float value) + { + CrossPlatformInputManager.SetAxis(axis, (value*2f) - 1f); + } + } +} diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs.meta new file mode 100644 index 00000000..956782c7 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7d3269566d48b8447bb48d2259e28f8b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs new file mode 100644 index 00000000..b01f5ef8 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs @@ -0,0 +1,118 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class Joystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler + { + public enum AxisOption + { + // Options for which axes to use + Both, // Use both + OnlyHorizontal, // Only horizontal + OnlyVertical // Only vertical + } + + public int MovementRange = 100; + public AxisOption axesToUse = AxisOption.Both; // The options for the axes that the still will use + public string horizontalAxisName = "Horizontal"; // The name given to the horizontal axis for the cross platform input + public string verticalAxisName = "Vertical"; // The name given to the vertical axis for the cross platform input + + Vector3 m_StartPos; + bool m_UseX; // Toggle for using the x axis + bool m_UseY; // Toggle for using the Y axis + CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis; // Reference to the joystick in the cross platform input + CrossPlatformInputManager.VirtualAxis m_VerticalVirtualAxis; // Reference to the joystick in the cross platform input + + void OnEnable() + { + CreateVirtualAxes(); + } + + void Start() + { + m_StartPos = transform.position; + } + + void UpdateVirtualAxes(Vector3 value) + { + var delta = m_StartPos - value; + delta.y = -delta.y; + delta /= MovementRange; + if (m_UseX) + { + m_HorizontalVirtualAxis.Update(-delta.x); + } + + if (m_UseY) + { + m_VerticalVirtualAxis.Update(delta.y); + } + } + + void CreateVirtualAxes() + { + // set axes to use + m_UseX = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyHorizontal); + m_UseY = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyVertical); + + // create new axes based on axes to use + if (m_UseX) + { + m_HorizontalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(horizontalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_HorizontalVirtualAxis); + } + if (m_UseY) + { + m_VerticalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(verticalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_VerticalVirtualAxis); + } + } + + + public void OnDrag(PointerEventData data) + { + Vector3 newPos = Vector3.zero; + + if (m_UseX) + { + int delta = (int)(data.position.x - m_StartPos.x); + delta = Mathf.Clamp(delta, - MovementRange, MovementRange); + newPos.x = delta; + } + + if (m_UseY) + { + int delta = (int)(data.position.y - m_StartPos.y); + delta = Mathf.Clamp(delta, -MovementRange, MovementRange); + newPos.y = delta; + } + transform.position = new Vector3(m_StartPos.x + newPos.x, m_StartPos.y + newPos.y, m_StartPos.z + newPos.z); + UpdateVirtualAxes(transform.position); + } + + + public void OnPointerUp(PointerEventData data) + { + transform.position = m_StartPos; + UpdateVirtualAxes(m_StartPos); + } + + + public void OnPointerDown(PointerEventData data) { } + + void OnDisable() + { + // remove the joysticks from the cross platform input + if (m_UseX) + { + m_HorizontalVirtualAxis.Remove(); + } + if (m_UseY) + { + m_VerticalVirtualAxis.Remove(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs.meta new file mode 100644 index 00000000..aaac7672 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 00c3c865782347f41b6358d9fba14b48 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs new file mode 100644 index 00000000..f26ba492 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs @@ -0,0 +1,85 @@ +using System; +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine; + + +namespace UnityStandardAssets.CrossPlatformInput +{ + [ExecuteInEditMode] + public class MobileControlRig : MonoBehaviour + { + // this script enables or disables the child objects of a control rig + // depending on whether the USE_MOBILE_INPUT define is declared. + + // This define is set or unset by a menu item that is included with + // the Cross Platform Input package. + +#if !UNITY_EDITOR + void OnEnable() + { + CheckEnableControlRig(); + } + #endif + + private void Start() + { +#if UNITY_EDITOR + if (Application.isPlaying) //if in the editor, need to check if we are playing, as start is also called just after exiting play +#endif + { + UnityEngine.EventSystems.EventSystem system = GameObject.FindObjectOfType(); + + if (system == null) + {//the scene have no event system, spawn one + GameObject o = new GameObject("EventSystem"); + + o.AddComponent(); + o.AddComponent(); + } + } + } + +#if UNITY_EDITOR + + private void OnEnable() + { + EditorUserBuildSettings.activeBuildTargetChanged += Update; + EditorApplication.update += Update; + } + + + private void OnDisable() + { + EditorUserBuildSettings.activeBuildTargetChanged -= Update; + EditorApplication.update -= Update; + } + + + private void Update() + { + CheckEnableControlRig(); + } +#endif + + + private void CheckEnableControlRig() + { +#if MOBILE_INPUT + EnableControlRig(true); + #else + EnableControlRig(false); +#endif + } + + + private void EnableControlRig(bool enabled) + { + foreach (Transform t in transform) + { + t.gameObject.SetActive(enabled); + } + } + } +} diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs.meta new file mode 100644 index 00000000..0ee49e89 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 71398ce7fbc3a5b4fa50b50bd54317a7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific.meta new file mode 100644 index 00000000..f88be49e --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0bc72db1e9dcb9647818df5a07871127 +folderAsset: yes +timeCreated: 1436977288 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs new file mode 100644 index 00000000..0416715e --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs @@ -0,0 +1,133 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput.PlatformSpecific +{ + public class MobileInput : VirtualInput + { + private void AddButton(string name) + { + // we have not registered this button yet so add it, happens in the constructor + CrossPlatformInputManager.RegisterVirtualButton(new CrossPlatformInputManager.VirtualButton(name)); + } + + + private void AddAxes(string name) + { + // we have not registered this button yet so add it, happens in the constructor + CrossPlatformInputManager.RegisterVirtualAxis(new CrossPlatformInputManager.VirtualAxis(name)); + } + + + public override float GetAxis(string name, bool raw) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + return m_VirtualAxes[name].GetValue; + } + + + public override void SetButtonDown(string name) + { + if (!m_VirtualButtons.ContainsKey(name)) + { + AddButton(name); + } + m_VirtualButtons[name].Pressed(); + } + + + public override void SetButtonUp(string name) + { + if (!m_VirtualButtons.ContainsKey(name)) + { + AddButton(name); + } + m_VirtualButtons[name].Released(); + } + + + public override void SetAxisPositive(string name) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(1f); + } + + + public override void SetAxisNegative(string name) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(-1f); + } + + + public override void SetAxisZero(string name) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(0f); + } + + + public override void SetAxis(string name, float value) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(value); + } + + + public override bool GetButtonDown(string name) + { + if (m_VirtualButtons.ContainsKey(name)) + { + return m_VirtualButtons[name].GetButtonDown; + } + + AddButton(name); + return m_VirtualButtons[name].GetButtonDown; + } + + + public override bool GetButtonUp(string name) + { + if (m_VirtualButtons.ContainsKey(name)) + { + return m_VirtualButtons[name].GetButtonUp; + } + + AddButton(name); + return m_VirtualButtons[name].GetButtonUp; + } + + + public override bool GetButton(string name) + { + if (m_VirtualButtons.ContainsKey(name)) + { + return m_VirtualButtons[name].GetButton; + } + + AddButton(name); + return m_VirtualButtons[name].GetButton; + } + + + public override Vector3 MousePosition() + { + return virtualMousePosition; + } + } +} diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs.meta new file mode 100644 index 00000000..e0ffb749 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9703d53e47195aa4190acd11369ccd1b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs new file mode 100644 index 00000000..374a1f5d --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs @@ -0,0 +1,79 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput.PlatformSpecific +{ + public class StandaloneInput : VirtualInput + { + public override float GetAxis(string name, bool raw) + { + return raw ? Input.GetAxisRaw(name) : Input.GetAxis(name); + } + + + public override bool GetButton(string name) + { + return Input.GetButton(name); + } + + + public override bool GetButtonDown(string name) + { + return Input.GetButtonDown(name); + } + + + public override bool GetButtonUp(string name) + { + return Input.GetButtonUp(name); + } + + + public override void SetButtonDown(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetButtonUp(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxisPositive(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxisNegative(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxisZero(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxis(string name, float value) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override Vector3 MousePosition() + { + return Input.mousePosition; + } + } +} \ No newline at end of file diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs.meta new file mode 100644 index 00000000..d4c99a61 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9961032f4f02c4f41997c3ea399d2f22 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs new file mode 100644 index 00000000..658fddd8 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs @@ -0,0 +1,145 @@ +using System; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityStandardAssets.CrossPlatformInput +{ + // helps with managing tilt input on mobile devices + public class TiltInput : MonoBehaviour + { + // options for the various orientations + public enum AxisOptions + { + ForwardAxis, + SidewaysAxis, + } + + + [Serializable] + public class AxisMapping + { + public enum MappingType + { + NamedAxis, + MousePositionX, + MousePositionY, + MousePositionZ + }; + + + public MappingType type; + public string axisName; + } + + + public AxisMapping mapping; + public AxisOptions tiltAroundAxis = AxisOptions.ForwardAxis; + public float fullTiltAngle = 25; + public float centreAngleOffset = 0; + + + private CrossPlatformInputManager.VirtualAxis m_SteerAxis; + + + private void OnEnable() + { + if (mapping.type == AxisMapping.MappingType.NamedAxis) + { + m_SteerAxis = new CrossPlatformInputManager.VirtualAxis(mapping.axisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_SteerAxis); + } + } + + + private void Update() + { + float angle = 0; + if (Input.acceleration != Vector3.zero) + { + switch (tiltAroundAxis) + { + case AxisOptions.ForwardAxis: + angle = Mathf.Atan2(Input.acceleration.x, -Input.acceleration.y)*Mathf.Rad2Deg + + centreAngleOffset; + break; + case AxisOptions.SidewaysAxis: + angle = Mathf.Atan2(Input.acceleration.z, -Input.acceleration.y)*Mathf.Rad2Deg + + centreAngleOffset; + break; + } + } + + float axisValue = Mathf.InverseLerp(-fullTiltAngle, fullTiltAngle, angle)*2 - 1; + switch (mapping.type) + { + case AxisMapping.MappingType.NamedAxis: + m_SteerAxis.Update(axisValue); + break; + case AxisMapping.MappingType.MousePositionX: + CrossPlatformInputManager.SetVirtualMousePositionX(axisValue*Screen.width); + break; + case AxisMapping.MappingType.MousePositionY: + CrossPlatformInputManager.SetVirtualMousePositionY(axisValue*Screen.width); + break; + case AxisMapping.MappingType.MousePositionZ: + CrossPlatformInputManager.SetVirtualMousePositionZ(axisValue*Screen.width); + break; + } + } + + + private void OnDisable() + { + m_SteerAxis.Remove(); + } + } +} + + +namespace UnityStandardAssets.CrossPlatformInput.Inspector +{ +#if UNITY_EDITOR + [CustomPropertyDrawer(typeof (TiltInput.AxisMapping))] + public class TiltInputAxisStylePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + float x = position.x; + float y = position.y; + float inspectorWidth = position.width; + + // Don't make child fields be indented + var indent = EditorGUI.indentLevel; + EditorGUI.indentLevel = 0; + + var props = new[] {"type", "axisName"}; + var widths = new[] {.4f, .6f}; + if (property.FindPropertyRelative("type").enumValueIndex > 0) + { + // hide name if not a named axis + props = new[] {"type"}; + widths = new[] {1f}; + } + const float lineHeight = 18; + for (int n = 0; n < props.Length; ++n) + { + float w = widths[n]*inspectorWidth; + + // Calculate rects + Rect rect = new Rect(x, y, w, lineHeight); + x += w; + + EditorGUI.PropertyField(rect, property.FindPropertyRelative(props[n]), GUIContent.none); + } + + // Set indent back to what it was + EditorGUI.indentLevel = indent; + EditorGUI.EndProperty(); + } + } +#endif +} diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs.meta new file mode 100644 index 00000000..93f79bf1 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 5c2d84226fbbaf94e9c1451f1c39b06a +labels: +- Not +- Fully +- Implemented +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: -1001 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs new file mode 100644 index 00000000..4012331e --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs @@ -0,0 +1,156 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace UnityStandardAssets.CrossPlatformInput +{ + [RequireComponent(typeof(Image))] + public class TouchPad : MonoBehaviour, IPointerDownHandler, IPointerUpHandler + { + // Options for which axes to use + public enum AxisOption + { + Both, // Use both + OnlyHorizontal, // Only horizontal + OnlyVertical // Only vertical + } + + + public enum ControlStyle + { + Absolute, // operates from teh center of the image + Relative, // operates from the center of the initial touch + Swipe, // swipe to touch touch no maintained center + } + + + public AxisOption axesToUse = AxisOption.Both; // The options for the axes that the still will use + public ControlStyle controlStyle = ControlStyle.Absolute; // control style to use + public string horizontalAxisName = "Horizontal"; // The name given to the horizontal axis for the cross platform input + public string verticalAxisName = "Vertical"; // The name given to the vertical axis for the cross platform input + public float Xsensitivity = 1f; + public float Ysensitivity = 1f; + + Vector3 m_StartPos; + Vector2 m_PreviousDelta; + Vector3 m_JoytickOutput; + bool m_UseX; // Toggle for using the x axis + bool m_UseY; // Toggle for using the Y axis + CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis; // Reference to the joystick in the cross platform input + CrossPlatformInputManager.VirtualAxis m_VerticalVirtualAxis; // Reference to the joystick in the cross platform input + bool m_Dragging; + int m_Id = -1; + Vector2 m_PreviousTouchPos; // swipe style control touch + + +#if !UNITY_EDITOR + private Vector3 m_Center; + private Image m_Image; +#else + Vector3 m_PreviousMouse; +#endif + + void OnEnable() + { + CreateVirtualAxes(); + } + + void Start() + { +#if !UNITY_EDITOR + m_Image = GetComponent(); + m_Center = m_Image.transform.position; +#endif + } + + void CreateVirtualAxes() + { + // set axes to use + m_UseX = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyHorizontal); + m_UseY = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyVertical); + + // create new axes based on axes to use + if (m_UseX) + { + m_HorizontalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(horizontalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_HorizontalVirtualAxis); + } + if (m_UseY) + { + m_VerticalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(verticalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_VerticalVirtualAxis); + } + } + + void UpdateVirtualAxes(Vector3 value) + { + value = value.normalized; + if (m_UseX) + { + m_HorizontalVirtualAxis.Update(value.x); + } + + if (m_UseY) + { + m_VerticalVirtualAxis.Update(value.y); + } + } + + + public void OnPointerDown(PointerEventData data) + { + m_Dragging = true; + m_Id = data.pointerId; +#if !UNITY_EDITOR + if (controlStyle != ControlStyle.Absolute ) + m_Center = data.position; +#endif + } + + void Update() + { + if (!m_Dragging) + { + return; + } + if (Input.touchCount >= m_Id + 1 && m_Id != -1) + { +#if !UNITY_EDITOR + + if (controlStyle == ControlStyle.Swipe) + { + m_Center = m_PreviousTouchPos; + m_PreviousTouchPos = Input.touches[m_Id].position; + } + Vector2 pointerDelta = new Vector2(Input.touches[m_Id].position.x - m_Center.x , Input.touches[m_Id].position.y - m_Center.y).normalized; + pointerDelta.x *= Xsensitivity; + pointerDelta.y *= Ysensitivity; +#else + Vector2 pointerDelta; + pointerDelta.x = Input.mousePosition.x - m_PreviousMouse.x; + pointerDelta.y = Input.mousePosition.y - m_PreviousMouse.y; + m_PreviousMouse = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0f); +#endif + UpdateVirtualAxes(new Vector3(pointerDelta.x, pointerDelta.y, 0)); + } + } + + + public void OnPointerUp(PointerEventData data) + { + m_Dragging = false; + m_Id = -1; + UpdateVirtualAxes(Vector3.zero); + } + + void OnDisable() + { + if (CrossPlatformInputManager.AxisExists(horizontalAxisName)) + CrossPlatformInputManager.UnRegisterVirtualAxis(horizontalAxisName); + + if (CrossPlatformInputManager.AxisExists(verticalAxisName)) + CrossPlatformInputManager.UnRegisterVirtualAxis(verticalAxisName); + } + } +} \ No newline at end of file diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs.meta new file mode 100644 index 00000000..0b176aa6 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1caf40fc8bebb6b43b2550c05ca791d6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs b/Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs new file mode 100644 index 00000000..5ffec5a4 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + + +namespace UnityStandardAssets.CrossPlatformInput +{ + public abstract class VirtualInput + { + public Vector3 virtualMousePosition { get; private set; } + + + protected Dictionary m_VirtualAxes = + new Dictionary(); + // Dictionary to store the name relating to the virtual axes + protected Dictionary m_VirtualButtons = + new Dictionary(); + protected List m_AlwaysUseVirtual = new List(); + // list of the axis and button names that have been flagged to always use a virtual axis or button + + + public bool AxisExists(string name) + { + return m_VirtualAxes.ContainsKey(name); + } + + public bool ButtonExists(string name) + { + return m_VirtualButtons.ContainsKey(name); + } + + + public void RegisterVirtualAxis(CrossPlatformInputManager.VirtualAxis axis) + { + // check if we already have an axis with that name and log and error if we do + if (m_VirtualAxes.ContainsKey(axis.name)) + { + Debug.LogError("There is already a virtual axis named " + axis.name + " registered."); + } + else + { + // add any new axes + m_VirtualAxes.Add(axis.name, axis); + + // if we dont want to match with the input manager setting then revert to always using virtual + if (!axis.matchWithInputManager) + { + m_AlwaysUseVirtual.Add(axis.name); + } + } + } + + + public void RegisterVirtualButton(CrossPlatformInputManager.VirtualButton button) + { + // check if already have a buttin with that name and log an error if we do + if (m_VirtualButtons.ContainsKey(button.name)) + { + Debug.LogError("There is already a virtual button named " + button.name + " registered."); + } + else + { + // add any new buttons + m_VirtualButtons.Add(button.name, button); + + // if we dont want to match to the input manager then always use a virtual axis + if (!button.matchWithInputManager) + { + m_AlwaysUseVirtual.Add(button.name); + } + } + } + + + public void UnRegisterVirtualAxis(string name) + { + // if we have an axis with that name then remove it from our dictionary of registered axes + if (m_VirtualAxes.ContainsKey(name)) + { + m_VirtualAxes.Remove(name); + } + } + + + public void UnRegisterVirtualButton(string name) + { + // if we have a button with this name then remove it from our dictionary of registered buttons + if (m_VirtualButtons.ContainsKey(name)) + { + m_VirtualButtons.Remove(name); + } + } + + + // returns a reference to a named virtual axis if it exists otherwise null + public CrossPlatformInputManager.VirtualAxis VirtualAxisReference(string name) + { + return m_VirtualAxes.ContainsKey(name) ? m_VirtualAxes[name] : null; + } + + + public void SetVirtualMousePositionX(float f) + { + virtualMousePosition = new Vector3(f, virtualMousePosition.y, virtualMousePosition.z); + } + + + public void SetVirtualMousePositionY(float f) + { + virtualMousePosition = new Vector3(virtualMousePosition.x, f, virtualMousePosition.z); + } + + + public void SetVirtualMousePositionZ(float f) + { + virtualMousePosition = new Vector3(virtualMousePosition.x, virtualMousePosition.y, f); + } + + + public abstract float GetAxis(string name, bool raw); + + public abstract bool GetButton(string name); + public abstract bool GetButtonDown(string name); + public abstract bool GetButtonUp(string name); + + public abstract void SetButtonDown(string name); + public abstract void SetButtonUp(string name); + public abstract void SetAxisPositive(string name); + public abstract void SetAxisNegative(string name); + public abstract void SetAxisZero(string name); + public abstract void SetAxis(string name, float value); + public abstract Vector3 MousePosition(); + } +} diff --git a/Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs.meta b/Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs.meta new file mode 100644 index 00000000..8f6c44d1 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0f57aeb1b8dce3342bea5c28ac17db24 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites.meta new file mode 100644 index 00000000..ea48469d --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1835e4537efbdd94b93c2dd136860f1d +folderAsset: yes +timeCreated: 1436977288 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorOverSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorOverSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf8eddcb2bb49819fcd8db35e63830df2ef5282 GIT binary patch literal 10618 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 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorUpSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorUpSprite.png.meta new file mode 100644 index 00000000..1ec1baac --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonAcceleratorUpSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: f588d850485d0ae479d73cf3bd0b7b00 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowOverSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowOverSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d1848506019b900b22339e49bcf0e3c1d31bc3 GIT binary patch literal 8229 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 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowOverSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowOverSprite.png.meta new file mode 100644 index 00000000..8af76bc5 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowOverSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 49b611e658efbf443b686a4036f74fe3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowUpSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowUpSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..11b1e8c90416382b12472be09e9b90d0cc1653a8 GIT binary patch literal 8376 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 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowUpSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowUpSprite.png.meta new file mode 100644 index 00000000..05148c9f --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonArrowUpSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 4db017495c69e8140a56a0e2b669e3f8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeOverSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeOverSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..684d53a48ff0cf6c7ab5c793b85b1e40da7475d6 GIT binary patch literal 5818 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 R8%hAWa25{c_f35h{|B-o8KwXL literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeOverSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeOverSprite.png.meta new file mode 100644 index 00000000..ae89df0f --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeOverSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 5b1a64ea234fb2343b8d0686c51280de +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeUpSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonBrakeUpSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..578c00ceb2c2ee4070c96ea58fbd16ad1b3e4120 GIT binary patch literal 5873 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 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonCameraCycleUpSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonCameraCycleUpSprite.png.meta new file mode 100644 index 00000000..33948856 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonCameraCycleUpSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: a3983c59ebf804b4abba687bd7c9e92f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonResetSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonResetSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..c5d88d99eba43b8a61f5fbfea115c9a8d2bb39e0 GIT binary patch literal 8412 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 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickOverSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickOverSprite.png.meta new file mode 100644 index 00000000..11b1a1df --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickOverSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 5485e2f56028a3c4cb54f5caa167377e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickUpSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonThumbstickUpSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4df1dd80fe8588d5fc5c90a979dbcdcaee6ef7 GIT binary patch literal 8278 zcmaJ`cRbr&+y5nkpn_VpgWhKCh{TLqRkgLM_6Sm9kJzzFYgLCmYjv6}wP&f?v?w)O zqeW4**Bia>`+46#p3j?qa?W+G@x9hL=W~8{4fM2VsoALk0HD>rqHY8LAkq*7Kq*Ln z7G6&sNq=lU8aI86-5q`WZN0F7s)M^77OsuAb;259Z5;wUyRnJ@Ko*5Fx#@FL_nN%D zJ6_!Oj7OY+_aI3FfT9Y)!`9vf>jSsLI^o=u_}1&2`QSJQB|cMGT}fRJHLNr4N}w0k zI8e{TKG4M;?ZBs^3|Az`lN8{wKDKZI-qp=po}k3{N3T3-d`6bwga2XiaZ%#?8`Mo* z1Gt*I7Zxrnjuf+(ltRGe(Be|ENIA6JCAc(cE+L7Mkd_paM9a&{$V*DY|M~Heta&*& z${VR`{$q>@$rzCkns2S7x$MDclUCVkV2!;5|Yvq($Zoi4l(ZlHy>Mqn435M zzZ%rB-u7NN4EABkJ#=;dqu9;+pFoj9CPA?EkdP9Wl)&T9 z{QAS~?PG-fUl{+D+uJ0-11n*K^>+95vM1%kk^f&|QtbYJLuZU6H1hghI8stmX|_m8~8 z|B2tQ}=>ho;)pT;0f{?l4mH&Q=&ks9Y#v4t7{a5`(NtC|odRTuTp*T!3Edm;MOrLJbfkg3VN zNs)ztTez-qk#Sh%;~L4$!}Ha4)s0NlnuZJqyn&~}eQE%d_$z!mwP&l47Rzx7kI~`P z2Pe1&jr(1l?5}=TZmDg#qo1Wbbj&*x;``BQ)l{aYWOLqv4qG&Ng08r|gZoRW{B@1vt=6 zeMI9hIMXpo3)4n@axJ@HM^7C}?T-P@GyJyO|Ls$K*nRCYNS6NDJHc_5iVKJ{RW)QP znLXy?Kd}llFvApy&pCEMccb$teiDHW_Ptt*>2^O>b9aT_tnyNltrLmdFYKFt}+}I$H8W|L09xfrU+a$=L zt%9H%FcNupOc$DaDGJCs7g|BJgsV1;rJE^FUUOp!r{e`enTa0ioOx2IYZM)k?g0sF zsw@%bp~Nt-N_J0f<*`h*A}{40tCZjdbh6A0$_@vnVWFPyHKTeXk%04ERD%ODt|bsk z+yytsne6j0!qmvu_ys851rJKxgeIy14Gc%79_S=I{e)ckd-2a41WIt8`>fN4vXhW` z=Aq*7sSCD2MmrQg;6NaGGYY+XU3y@W49$Sg`r2~#ylkc5 zeuHVE@Kz2G#c!v766Y#2WTl#wHsB{3hmnO~8pWHRW_b^4Dma?>vGlPcVt>{70ln@cob`3v^%wrWkI>GUT;97apx@)zRHH!n<6$E*lgaTbMb|$e z@SEo+tgPuM&6b|7QZBx30W>XGwD=gIq1Tf{uM^_H(HEO@SJBjgpXUkq= z!~0lvPLeBAQP0jh`A%x)vKX*PuzvY9=N@t#O zwaumlsc~`Vp)*nfZf8Bf?727<;KFb;dLjL>Mp%~eo2gk=hr;6Fr=iEo+ZFb+l84u1 zCkj4`zv0WX-H2;wLb0&B?2FwWm^$7cDK^@D*)Q`X{peIrR>&QWwPDv> zdLoMa^rE;aBW$&tf^LQ7+6i)dJx2!=r>4jY_D^gYOuGcB{_gZzzbgAOU;#T>d27*@ z66fcb5Y5;*w9(M?h`Zdh?=oc3DwM77N2H7a*L|1Q##N0ZUh0$27AJSbxYl~u2jWpl z0=WSKl-|z^R3xOyPnEFLx~q43pOXzI?A)$4hhpMePt~N$!rNG^;uKL1lF^zu?!n#m z`7VwWjh>$n@|j^^tqSIpHCFJfl*Mp=Z#bPR(Cql z+Rzf41fmPyh8h&J)T+WU6&f_&y{$m*0uY=r?Pd6u5TAAetMbjnn9*E zpFJ?)v#cCK9d05oH>$$T{}{*geq&!#?&gREYr{e-iu@UD@y%ji`nMH|s${`86$XWm z<9FOU!v`QOioI&9OI@YP93A{)>yP?Jp`2R2X0~q`C><5|o>Rj0ezk^%a&*X$))Gl; z?cXooNEi9qDhRg8nTxS+aJ?UE(QI6<*}}|y-*e6rB&ok1!my2xg#3#>ofR8QFadhI zVV*v6zqF87d`eYV7+ToF)80$X^M^l-2!~LF-8=gA^-CznMbWW!rn6XhJLtpTnS*Vt z#-cfbT<@>`F#&gU{6M&Sx-8Ax6_NQhBO$8(;L^x6+esZg{`QmXn55ZK&{AwYRO{W= zPJRa`jhofbu}H*>yvV{qc7!*?P9U>ai7dU24#drCF@$Gh_CD5YMT4cho8ozNV}QB$ z%oe3gVM;$Lz12&@@N=I!Q)TYYbESTgMGjZ3$PFG(Dr^0vu>7n_cRs&GA&?f-mMm`3 zueM?S*lznw6MOjhtvd`_j*2*02)$*h>Qfb$k@hFMM{j_16B8FWil40Zh{K%a$8&oU_7mCYoGZKNd}a0`+QXfp zs0GpQkc>#K4sgCVLCE0AJiU#0M6-9pqZNPZQ7B5lyffWSjp*T^m@1bSD!+(u+k5_V zMIV9EYLSxjXh<;D0@@fhcNG%?zh_xnOFsDJT^}Gm#uEqqB6V=N?jmJ9CH@zW^v_4j zpx~sAPVzxv;H}A(FnPDJkPsl&X0uo>S)~> z1SNgg)45GI>(^E>ow9#q!hFep9>H*W*F(ftK29u8XW zv{;{6)|d}CZb*x;w*#j@5v7NqInT#%-xQu_g=RFYLn+6UPpk8Xpuh_O*k@7+rY^I>MJfRdA zv!6-1q%(%q0}WCp%>>?~5_IU`kW+A;BJVCaob&sK1>FrX;Dh(WcvI6LV64hF(j8=w z<0fro$qe|Mf;Pq_TQW!r+TU{0q>;=(VviE zf~d2pTONmQ4nAGIR9EUR!JeFccX3{|BP9MwXpGZ-W$0wW*VnMl(|wD?jo?!urGyiw zdG)%z-zS~j)$=JCNjpb8Q*RF>UYAucBp0Baic3b~QgsVywzi%bj;>q#r4GL0dAVtP zoG3YuX8Ph(LMi!f#j3Vk2N{B}r%2#IwY)757vyi>L;s8q|9!BK${VQIvhuJ=*Ir*G zyYkk@^`c11p_nlX{O^O{4yJlFB3L5GeqtG4WV< zLi$Ig)c&=R`o06M!A6BwS?I{(4gFjL8%t8Ddu|*#lm*)PHIFPOyeKi=?S1LDu0}ug zF2A-mmM?+rL+jMEtjN6IVj0$H#5{WB`(jhb@oZwZbg9@j(C@S|ry-$ulu$NOMgCAY zv+E8QgXB3=!pgN7WIDqE z#KXrqnsi|E$`{CA;JLLmnn14ef5K%8*|XmL4hZhUyxo9u{wu{A*&;CAP2o? zT)2n%{>ai6D!Akm2oH8)9rro z;h1&deu@P;y8q{=p6&FLI6Z{~FBzFf0b|Jlw_U0TO}Rolif(blWP#r9{5IwnKGV8F z^T9=X8XxX5F5br3S6;_=2~3z<8CV0Oj%RMJv`(KmewVFo#(rC!|d6l=sA24jObhr(@#S1TtQ}(P*J*w0#~*` zj|UODdr2r2G^OPF?vqmi3d9G!f;a?^<3aenkEF9={j@GU^mRZLEJ@T+qDrr~No=B$ za?twItX2ly(?myH8-i`U_S);1Rq+1pQPpk@Xj^6@) znFPwOE|S$f>2_;t7zGdNJQh^Tpj%F)z_nRjr3QwBTXcl71WfdS@=Q7cgN8rjj*%k_ zz$wrAGF@W~#lrHOq;tTesUU-aknVWZ8^A~RHzT}{@<Up51C7cKwuWy-Dj0Ejs`@n`X`j@H(fwauZ%wYxJ7XO@q=!;NY@+=ZmDWLJ?hlQbx!yezJF<|;Q~UXtqRtK zj0gmNi>UR|gOW)5MkwOVN45gU8_y6lLO7J@0H+7-9B zQf4Xp*h{7=p7F+%W})W~j!zt2*y0l5fZ_+v*L+0|M8#yq1@+^03=NId#w4ts{JIu) z2!?CBtgAfL^Um0K^`hADG|R2iY^Bt1g`Iu*@vF(@xOV0b4O{OUlzrOEZI4QSWWNxK zIPF`@9kHfM5nd=;xs&7arElr>DVn`V>G5@hy>{{snd545n|eL>p)3Il3(32878Ytl z>jwo7cSjnAjj+?Zg06DsjBAwDH%=YL+=`BTrwnSMOOugnDwwgC7DesX!h(+Y`_03U zHOo5!R~REYw!L0o-SX{V8GsT2+~xbRvtyU~mN3BORx*o}?*}(XEQCDUj57WY4p}vy z$p))g2jjT>0hm+RMn(ZB`WicI=(je@CQJ+sLQAS%MHylOzyJr2QJ&UnPFz4e9z zCf%g43WAOjzQ0NqfZT|fQNt-$vX6m8ryylS1g|qqQqle;|5I{Y=y@RglbTlMIW-DZ zrzeJnkz8Z>#r69ZjKrNlAagvC@QLQea1>4$G+|_RS7M-fAJSK>$EaP zqSn`^vDd(Nf9CD&PnS;p&fcBYf&>srTf4JmH+O+mlJ_wZp^5v{pKYbL_4(dXBJ!%l zR-~zVhR1OI`pD;WHpC^tnCcs*Bd|;SJ0{0^7TYk|zV~_gQ^A(a_)hObC8B}BOY-qm z*7c)Tr8$eKrtm$b4?BU@W9yD=14u}VgK!26m>6;6Bpq2avkJg#r*LD?UK*b6h>}>n zn(Vns%AacT#V|5u2*!N+zUS&wN;rY*Y$6{&(@zd(Vw#GvBVCQwgiiL2ES)}+_YcAm2F3(m|`Wt}Q?lA%Qa;7pr2&PxyMtd0`q%UjM zJ8i~FG}yS1TGmnn2n~pm?rduyn+pIjrtWlyWa;RUqMwZrz-^xpKZ1f1yBRm6fDd+} z%GuBszG{g%C*aXn9kyIgCX&aT*B2X&K40rzV}zy@o8T_5B)ZC9PsTytxh>>u)CI*v2&MfG-A(1Nl2ESsFFsy zoM&ts-^d4e79T9}VC&nE+eGQ7JHa4s@On8%2ZQKjL3`zHR5to(8#>CzM zPM4PGSFiw+PTTX4mT%FX6vu1?jl- zJKSFDna6jp=Ut>{BM$5r!(Zer79qdwKi>6q40)S)a;t9U?X%G`lTTwqZ{qGPuhYIw z>;w5vT5hura1-gn-&i!=39Q)LwyzId5Sg$vTjYs8UZ8*Nn${*g(eV}}BJOTRXj{EMz|qQ5b)IZ;y+yURXTKgoHy<>o8fXH^$}TS-}%v^^%} zhG;e)c~Oc?v6(vrC)fRH;%s<&kP=bj#KbRlv0=B#Nrr5DNGQahGN!3{&e)_{MqRNl zWwWRpNaHKd=_xUE+9BNbr#fDuSbxPpUwgu}uz*M)hoKg6Y^H@xK-y6Rp7lo`x0N|R z(V|&&^}(k40Td%d__AD?#wKAyCh>{^Q>x-e``GgIYakU-7`*PWfAPm)XhM)}0^oIA zx=|Rc9 z*ydh~pZL03_JmfAEcpF)eP@WY+m$eoWIzsH`Nt>ax|bxYGqQ_4gu4p;bmYF5QNsy6 z`s4koT$4-P?yv#{aZZhN9PWcs=KJk1&t-bca%ZaHkP2Qs&Dz-J6VK+m3e{?=*|g*x zI(-fb_X7O}1x`SigmUBpH^VEcw%G1t0!U3t}Jmlsf)`khYhQaSo_?3|I2%-->SV!+HrD z$)xDR1r&-I6Pf+hD@UR5v32$$%|rd!!rWVD&bx`1RLlIWgA!qI-%cpDJ zlyc^H;R3n8;vX$ikS+4)$JU**c(LeTySU0#p78h#QP;I+L(0r%-@Yo5JjYzh<FrXTisKWXu!%p0)h4a;G5`q#fBiLR$d1n%)IcEMaw7fsRKCYy}rMN*o&-p?f=- zWYKJYFMcQOTY{3_mDT(_H^#(5uYI9OGUrI7h^4dhX|Q~alfFpVv;48ESDm$#>W*Oy zg64hNqoF5hfzh0Yfix}Jyl+!_SU-CWa;rwrQxc{#;_VyY06wn8KzhKqEBPyYI<}zR zN#Fn&AV4uKGS}^HbZSKPXkmiW^%rZ8CmT1ULHgGd0$x8r-BiEC(`gyiqI=t+zD_({ zi%^^3e+R(RQCVRXc<`(pu~*inmLHcj$;F%zJIj?+9oad7Nh!X`feU5i&AUNB$qq&7 ztkKIJ?kFVfrOG%wlJZ0$=enH!E}*wY8+(+ly^Bz;IrPH0QBDRCo&PPsZgri0oHaYD!Uu9)GfxoP{KCPVI6*QhJ=&xyik{dESo?(`r8yf|8!a*k8##P zr^f~4EVQVceFRyhRuxa(EuVTf$^jd?qvkqLew;$avvh^@Xw1g`rOi)b(##{aGFW@@ za!%^trx>6^4cgK1-3N_G17d{Q**|}>?g&r%ltWL9iftu#u)5{NXfB7kI2VhrEsM>V z&Fc~qpeGhmshWzHrP@id!0sxn#ODbHW|N&>_yPhMXrJpSF39}sSV0@EW>Ju~Mq8bV zUamR&0>jlYYxh}(-cAyLRrGPQ{hrr3l_E(DUWZ0`M_*v7wCqNL^>C?ut~#Gt%0qg? zliDrdKn`P6uy{#1bGfeL%ACD>?BtajMb^GuE4?ONa5HfO zXiOSvlTeP3s!dDj5M=aEjO(t;9%0jBTn$4Q)A9CLet0y)_tijVWZ)fNpS#jp^8hHl|MehDj=~@lB0VdO2;SzR76EAV4#GcgrEbF zP!v>~c$PlI|QXP#(Bh@sJ8X7803YGBK;0Vtc zmEds1KOAtxaBq@-XoP=AFzhdmo?ao55e9IkrvEY_DAd~eKa7LJ|LrKI%aAdip-6RA zHDplGUv~XX9UgI#_`hoWSL$$w*ia(!Br!ZBlH|>dhY#W(Fw=Mczo5Senc84%N&d{B zcn0D^yd#5%!4Z}?132?UmEcdnXn3ljQJT7HDg-Sr9~FWp%16ah+e=5qTMJDXLV zrtE)Xb^l*1#*{?#j0hn)goFhClLdBuArT?rej%YSQ`5hr4pVgY4<>{}hb#RRrhi$D zBa-~1hy*+-BnbAmpE3UbMF$NunxO9KiBj=GtLv(ud{CY$y1L#PD!S@wT3+5LZ*O&V zFZjRlg#Y8ef8{B2hiOOXKk8s~G_}y4KHj=2+CC^96?JtYlP}YSD!MuZHBWCfq83qI z2aaT_i2N&c{!c3Xv&GEMzo!2w4CdlLr9}*8))R?YIQAWL*8xE4mnF{FA?EXf8+&tU z4^@UIO+HHu!rFPe(#tGmj7u3_QF)l^v25?%>6fKdI+h#fy@@}<)^myVc#eeGg4;r+ zkY3iT87oBT)9A!^gD2tp2jvH4LCZV(YvdS@&9aHa=%}cus@~l{YZvW$R`I2k5+Z>7 zw;BA4d&&{RIm&h~m+%AX^%9O$mwt6pKE*pH!76gL0;&QCOZiMoJh&y7;Bn_3rM5b2 z%HB*^D36%qYN1t}Q<7Vb(<%T?cD~AkWV{=`sSE?%0b_Ri%q1U?AqAXOCs~Q#x&EFS z-r}s*6aW-7?J+TjEWj3Q4LJ#xTE!Rh?}G(^Xw(^N2$T%LCi2UXn;HC$9S8tQmRB)O zqyT>J1S08Y6`05JD$&WQkPb`hdN~U~A8h9gfx_@GK0lEUSTGEL zZyO@<-Yd3L9S%7lm6ibn)a8$rrJ8yhi4*`CQbYaHAmvPAuIu^fN&K_FAg+OmJ&t~# z-51tpjF||F$=!2Or6Q6CWNc;QUmUWT99k(u z>n{u9>K4Ufk||q|Zw*MvSo^@~sldU+`QYgw+n{qH(-}Yn7Mub3fNzYfr&59`$%Dtt z!M2jI{j~3uHyNVNk)v@Vps#3{ew;Ft>>?H_vmUJ%FROHrVi(x)QUdqhfH3Xut0ZIq z3PIJ^&MeC;zuIyW0ERmkISLkYP=hX_H+A97rVFOm;qG6pBT5}PUf%{S`QgAc?#C0U zuWi!ezgIc*!ngYQJ41bsIDlhJq)%p1L&o)Eav%ll+Tp%K6L*@i#X^iK7j_A+rF*EU z$xg=nxs*gnfg3Q%;oEX#R7&x=3}N%1SJ$ia@ZZ=G(c&$x3m?vyl8>F3!Dz@s3jj_Q z{SDKes;5)I=VD>rLqxBeKeXk7#s=`JrJ=!2D~A$$z7`Y!aJ+2O3cF=06aj|hK`cfi zFH&mX?6!tB%lJ+UA%ehLrO4~VRT(Hu6%{5w-s`pe3z~RBG`>CgmJ7QVdUiTbxSgA> z_o@|*DuM95?n)QkL{ZV(90yxpX^!}TFuee@*ut?)Vf|#58$!H7XGM*L6S(X!eAm;b zWTHt7_KT$hk8TpC1C?r*z^_OuN=8Ltcc~W|>GjXyjQ zIQkojE5Gusc@6tC^~gC>)oW~H@0kT-Tu#9&LvIF{Zt1o#5BxcV}4f2K?=~>?j2~g@MMS!PV*#|>) zYCtA|_{xTy^22x09HUyR6=SX}X25{axW|b*tah;#F)!b{?&21$?E?Ka_wc1hzs=Y~ zAdZ(_2@hQs_j<@@JF>my$^q1N)QCt<52uFTaN#b{hukock%}IEd zRSU3hep@-J=9-4GlP+cwF;E;PbBw*R*p3% zAMh05pmYyvZRg3Sp>^bQQ5qk6e?1k6q+sbI+xWQVHH}9PO9bRoe0!<{A0kJAh?Nu4 z&#*#My?KhM##s;`%0Ph{vi((>h|hkET8n_T7Ro>9VLKJ{Ey+zqeeZS!dwE*X{2z3| zlpxpX>tZ@>rZKwRyvH*Ek7rX8`$M=F?D-~ksP8gO@%>rV%WgeYCtfyu4wB2AQn1j| z?l^rm5(L6;>a_#A9MSC0{R9pJ$M%o*R88fH)6$b$$G~N^77{L>RkGZ=4W9-HGMXyt z%#E5JjImqBW%hQ9lhm_gFZR4J@saAIfq< ze`ihvWM2hVV!l7I*v^tpxQxahyc({&Mmd4W_YMjzw&Nat znUD|7y`1n!a_Z5Yd5OXiJPK@O1aDAGUK6%G4lxD|syhFa@zsFWuI#5R+B!-NS+ zhmIWCYxs@Iqk>b>)}bPO&s|>%8|y`nT&Pu;=6*|4OUvkNpoQ;PQmc?=^UjlLCorjtqD(<(KiT{@2tJ(uFrw`p8^tyv;i zVpvc`cJi~cTW8Ihw-}|;G7BI1*TpH3)$?B_PG2|-c79)01SqqY-`j-Nor^j0@g?O{ z;0=eiQk+xSz4F1zXu{sX$n~cDf;t&9(A#biq0@)i%q}HC$i9(J(thlw6wMrq{(2L^ z0Cj4IAn&|q1Uu(4;y?10InIcttaA+nr0KCs{}8WdCCdplK^nJ=B7RPYQ&dIhh!phtzX(djtwy^D8d_&5MF z`Mk~X^w{9koWduRqo5J_6n2)ns9G4vg??s!9vCoV_pRFsHvk_y0d5!A$$P25rmN9+ z11Mk#J~f!Q^?b}Dcf{VA8_OetJwzA7Mch~(Efci_T2vAQu*VTI@%#I4Ca}}wXI=ma z4$#jxaoKK+u@^9g%Ap>9P`#6sX6JWG2q)-T`z5(EK9#)s3!m+G4HfY9V|i!+Z2TtU z1^HPJ&CKXBq~N-2g|?kr?795K+b2HHp#^{?lf=6b+g5=Znags>Vk_Vwq3W`p0n$Xb zqV)$37~9KVeY9d(C~E;6XOp>^%NW@h?0%usdkLu9LH?MFuf5#yMoTo~r0B*2@p-l| zSPWzCXsyx7uaB>?fS#;1?;tiOsD((YBjouL>uV{mTRx3k7Ot=c%ws<9b*}9A#4Obs z47mA&Mz{#Kp1nQw#k5cCwjvaW9(tkt$NiZ0UFVwF>49s%K_k4=>o=!*Idu;c!5!jn z%pVZ0L?sU-oV@J)5$R26$%(wE4{l!@(UuxnJS9h#mnq2#pWqh2o_5g+Pn;l3+w(3~ zTD-ZXB+$`_|F~LVH_rH~fNOyi?5G1ubb9S7gqWQxOMa+YVs7S-7Omd~|*+#1Dc6ZpQg-&K7gfLxOX!D#%0akvV*_mIq?nQK(-&a&% ztJt7E&U&!J&jH^lN{`wc6}wO=sXKIG$_^3CGZS>-ZE{%J@YM%9Pz#}*W>VQv@i|FN zP=(yPfj+Bv$CyQDD44G9VP8IX>+NB6!H!y-(IBlcYDJq(TOV)sW&j-YkhCK(Nw;^SrGG`UCa?*c9x1%%WtDaPsxylC&P9vbAu2a$4&UxLOgP73|J@Dh?DE z1kpL~*REEK(_&j(B7(b@Qnpe=9KOM^;xxgY4=Zcd)A1`=a|WRT5Iw$5+!_DbsLlrnByBi3 z^cCR^XA$?-ck+V~DEnMP^(@CyJmk5JV$h2sup+#sdJ}6 z>S`+C?u7}zc2yGOrOp#Xe?)DfRzwHF%XCZK)A5XL!K+sq`(jSqa0q;OHUlzb7N*mM$hm*j=E>6uFRn#QO-loW zbVw>rD;hi`wKb}7olq?mpRUE@Jv}*&zy@6&%Ea#x(k{i z>f*0SzPGx?Pxjesx4de746+j_d-^8-?K&Hu?YM9*{0EOd$CbaW1!eAFBUky71Oab?5}oyTd53i=lDpp`PMk8UIQCh8N*@Z!I(G zELEu3X@xLwyL0%l0O%-BWKHc&9)n3K=Ef@q!P^G+IPJ zx(_iv8t#)rU`3g5O*na7;7?xU#cI^GbR2MvIyvcsqPhK%9`-zw2f+$m;K@udSKuM` z3}fWLLv2;pUK!`{pr7-Mtg@h>nE*;*KB3SE3iIfH!{DfBIf^V9CS1Epi=HlSdzyPv zufYTkymdq0n~*EHxMq#_t}40jZ({+eh}9a^xZR6VqAYJI-d2B);Yk)103{p;D?*m# zR;5FTD4#PT^SiFliqk$2HHFoXE2@8{Lx#r7UvOpu`?idiUwmO2 zX=X3L&R<_5_CU7R?-6F&3J3)U#Kt-I=K#T(&C9y?^7@(EKdk_=Q`L>}V}S0Ed)|{} zZ@Jpt+-u?C0e+B`tCfXi1U&e%+2`e>nvx1{yPIWatN_QpEFO@KWkU2^NcLkd99WS} z_97m*shE@yJXe*hMhYM#;*)2H+BVnzNTxObsOV~$LfK%{s)Jl&qQxp{-+%Bp4rId& zh&=P7QILcqH#z;9o_ErW3!@vW9$NzN5V;2{eCl5)9p?--za#NHrETw?B6GBGI^0`t z?V$8Xvm=4>{eC&pq9qsDvzIO$18!C8Wj$XWG_d{d)E9U21h~!?IVuWnelursbalyx zYK-KyTc3YDoK;J;+5u43ordM{MxYdzR`EH79#(FHr9Aie>|mvZA!@GI+1iUIfcM$6 z9@1l1!$bJ>0|{JBcIn5zv!wHlY4+3P^Fm+S^>BHxAl!t$#NT>%;Bog<;Nc5zFJ<}G z5)I0ey*tDd%*Ez@LAr+~EV42CGBx3h0`{v3GT~_&7v{Nr1mhZ+n4&*xN9SLDnp_k+ zBL@G&b`v!+b@p`N#F7k`JUCMrhEm$V`_odV8h2^B2Np{MyyaSeS zPjGX4b#ilc%yxVXH%x#vwbIEskhi2nCLEcfGS3om^rzGj&hDGIO>qpk3IECh=y)r`HY+z^ zUkRfR=Qq|uo#%_Zj{t4l3CB-+#$z;dVamDR&5Y)stXMzs3;!8Myr`u`Vw+L6_oRb9 zeCrEJLTZ0HJ^~>JQjHXk^0chRg$)P@LrAiXcEN(;H>!GUfS9hBrgTs%IlQ!*uVB(E zgm=;X-f+ex^EC^m-;Ov{3+Z^v%|r0%+x;K@q0ypyCsc9z9VLuV+iY3gFK=SaKY@WH&*@lO zt5?<#PXDBiKQ_nGG<%%%Hd35(e+%)NolYno!)ukq>np{HQ=JRB`QQQG;f$T)T{(sW zr8k`wfW6oz=5v~pUk{gWrj14Kj}>F$0%SjwH?6EQ9B+KSc>9M<{)MDs%1hnN2J`d2 zxlzBz(oZEQcU)!#9?5SEym$6T63&`grzD3<6EdrU1tq4byfE2Xb!A7HFEYqJds{A0 z68TH+Z~7UUz~wmiU5+fh&L)8e`c3&bu2cGr`2wGKG3V20?Dv|zD?-3=lTGjh8BhSZ zVN2`A4saflccs@=viCa&!Z~h<<>#ksQ!^>9b|L_|Y0x%iiRBnMJ@?q)It5kmX(kKU z4h!VSHWK0jW>p(+c!Uq`VOc*08OR>bm=Zb21qH?_u08cuw7SoEM|L^mo*nICUCkIb z{t2XcE4zamVSee(l?UW)(v4Xs;hKC1CVWCJ#gzHh1CY2O!k1+F_$%0ciN#v}KBb1_ z5zPHv1n57-U0}pR6-<94f(==p(jR~&>vVcPp5p>N%sBL(kejkaz9S>b{$z_Xc|ac$ zNzM?#zNM$AG#$EQq}%jOiLvMEY+rGAjQw0YPqpoiSc?*l=*T*zpeFEjFwS6JKNpu^#Ej6wy{?zwbj|S&ONsJzJx1@PrSGvnZX>Gz0J5>bBygu=o0SW2 z#$2`}=UvaKE2Jb_=_7)jg(ud z?8prPV7fD>sTU1RSZZQIBV!*^VqGsQx9(5o>}m|{=SGSADiIujyOR&599LFr$T|s+JoO>Q_d)>-eZ(tV zH;rRt&Ggd!`|3*Cr3h>gw`P4ZJ#n|6=3i4A-kc@!+v$Bn9<(X=DKRu?4;RRp zM*&s{TOh`%rsu9BY1)&opSp^a3YRHMs*9?yEFax9jL))0GMgFC!*#kY#+$#Je4SJ7 zIUQEBh#7uG3+ZvEzB>7a5z4qZtgHtHR(z6k#t3jKkY_S&5L0kI5kyyBc4_+l+M!$c zbz6g%Q$jxkpj-Jp>ApO&<`~^5eI&`MDjk(%-s)zg{d(??z`&aifl!!_08kJYm^PLs zj3n02Qis^H6IVVscSS87dA@b(FnP?ff~|QH?{c)hZ^ixkT*~wAuSKsDtgrP? z*=7O(7Qn5R^G8-xLY{pGK{hAV@nTc1Ms|UW+(;ua^Eu*+PLD%NM8XUzQTwu3evv6Z>{q4>Ur@A!az#Kb(e&E%+}Dz6g79 z(aEbp4bfHqRP#&n(!Rbg*}}f#`$VykMkE-B5|k{Oyrz#W=Gb!GAc zIZhB=n<)@_Ys@+E+{_9U?E+|#Pscy(W@KaxvFG8~#afQu%dhF1JsZaJ)p+5yl+V)P z02ZE+8!amPWP4U~4tCY!1 z6*j9o>}_|k5X1wv_s|ny7f5)I&vmmysp-{u1TqKhd-n_HnEZJdXoMZY-Km}t{Y%zP z+Wxx_;=DvlaqIpRWlaUEgw@}bz5e75rn2+A*Ue=O=uv0|99vI$--FN6x{FEeG50Ep z;uihr4Fd@Q1Q_0FveUuLZtGp{n-Z_dWkETzNs1mps0O>YDesW311tSr>lJR4U>;cj zJQ=nQ8~_#91QgK!y|MG!m=%p#F zbK9zvLr(pNAq)AWLj&O7nd*H*+BLexoM<+*+^& z_#GtYruJKlc7%z~?XHSy30^KdB5Glbn>f*Q!8;7$E2E)g8!1fE!!j}$ c=Rj=01)agsOvTfdfBkG=X=a0~G4V+KAA2pmt^fc4 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleFullUpSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleFullUpSprite.png.meta new file mode 100644 index 00000000..efb87d8d --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleFullUpSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 0c6271a290ef75b4c97d58746c86c5b8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleSlowUpSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleSlowUpSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..e14ec79187e517cac99c31e0f37ad4cb2f1eb1bd GIT binary patch literal 9144 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 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleSlowUpSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleSlowUpSprite.png.meta new file mode 100644 index 00000000..2296fccf --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/ButtonTimescaleSlowUpSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 9d7c6e4896067aa4fa512a00f692ac1c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderBackgroundSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderBackgroundSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..64db848dfc16fd000f9d1f7db5d149d06753d83a GIT binary patch literal 2309 zcmdT_Yfuwc6uzi{MJU#S9gCyeSX!)I_K}2SBS9d65*4sO#i@vHc5iTTlMR~<1hkl{ z)7B0?rd1oORh(9Hc03ghiX3PR0Kn?>y_aOO|CoZ?huRc=BC@EX8NF}rgK@uyNA!4%9 z1uzTJY-!P67!N?VATDQ=G%9_#juEV}v=0;Ovf5=f0P#aycAA+0CBzI1IGbK^rDm%F z;aI&QSDlWh+YN9$msTdi?6Qm;rfdR3v5FxHNW4oY3s|8L>(K4GB}|^G*m31j?++@w-HiaW4IP0aTKR?YNZY*k+w%6 zXA@bAF3XtOmP=mg72_qzuEVgBl9JdGWvn0;U<5@`7*1j&iOLAnQEHQD7ix11Xjd>o z2P1NJi4$yyPmwkYPD!tjojy8()t;W-A#8KB6-q7{=A!Kw5sPD1tM6QXv_r~*k8L~? z?Z_#$Lo5qA1gFTz_hA{(PL^xed7^e8%XHxEPLcPYlVvc-Lo2jN4%rmpcO*O4Ws019 zfi!Ov7^m;6$*5O2ogAxE8%bPCkt#}=oN7!a2#Qc8Y1I^NR1#`jYtZ_V`2?OM$~&>F z%#9$d#jju-szA;-!@_}_?rWX$>nUUP~sTqyUjMgP~?gsn<@%c#D5(+?ins97^fj{ zHI8cIG-lKcRSZf~7Kq}E*`lSCP(_$=MH`=eqIB&QAW6o|swfg=DHfs@l?tMik~X6n zHKn9*N=rhLRba9ymeEO^#KX3JP2#1ti06DgqvL5?fm|Gvg%;Y$ONxYSo@1eyEKgs7 zC^&6wwq4{T7?1gSljmfzKYFBtJ)!R3exjM%k@AH2!j93D7ahY5ZSq8m^5_n$Dr%5_ z5$2kVNja{TOGk;coT9$luGOf%=-JY;Gb!5s%bB#a<)$4+lOhW3Mf|Gu+XsG`H#I1@ zZXQ1r@0Hg#@ZI1dN2n%yl?lCVW*ExTpWJ?li?}l*IVx`DlJ%_U!Cg~FKpRy z*t=`^&Wc^3b>2Gf`_V^gPI;z!E_-fz4tjPRuAN%AAQv3;{6SnX=YKOfST{`cOx``I z;_keM54Lv2d##PgUORTrj0VqL&krN3y(d1ZzSraYVDZjtV++q88Z+LxtNdtWVrKn0 z4>xhzkfzso;8}7in-n%_YS3R0R8)x$1GgoeV`b&4{9RRJ zBHgFA47uC7GhpzPpIWN(?%&^Mx`A$s`nZ3Hfaou_<^^2Z9oiBeaV)=n#I2CZvsVpV z=(2)`Bsf*vWhuERY}@h=5?54Mx?cS)p)zM*_rbnK&Mwo%t;h9u;u43K@}b zFt`|;i3SL81JDI@?=0A#6dyh=A$se{o4FZ7Zk^s6v-nO#aZuw6p3JRGzjI!uwU_c@ zc5|O|$5C*nUuQzklk90smvMnlZ*^++dBFc!;NMC9XOa>58zN61_}WuVJ!oEh*Xx{F zxH&)bVb$osIalu21cKvTK{wD7B>MizJAzMpy0gD`XHgA7C-%sVHFHfs^Xl-JxnJ=h z?o!vGa6pv%%B_HXUV0=#6LgZoH#IV(M>tbtS_#2KS-o6 z*M-(CRE-UI9rLX1AG2=L?vuiciDuOD>&(j8y_=Nzn=bUOTr$W)S$^J9iH|fdWA?4V zYA>t?dk57odkI_@D1B2wL#zGh)DJ(KIBmY?cI2#=-L<;(#;e0`ZE0OL+HDy?3?tNk zPdn0FF@M&f!ka@c$M@Bi1~)QqFuxBfpWa>iuBHwG#A~h7 z9}t_1!*BnkJzFVWyD@n0_OUal+J?a!hXMDLJA<}?_e$r4uylevH2|1WGK?#e$4&VM D(of}V literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderBackgroundSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderBackgroundSprite.png.meta new file mode 100644 index 00000000..b9d74d96 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderBackgroundSprite.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: ea5873cfd9158664f89459f0c9e1d853 +TextureImporter: + fileIDToRecycleName: + 21300000: SliderBackground + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 31, y: 15, z: 31, w: 15} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderHandleSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderHandleSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd9c199f361f30893a4b7aaf0d50d287fc22937 GIT binary patch literal 1671 zcmb_dZ%hIYSOZ|`wlj6yXWrW z9bnCc*Z>tto0_6cu^+0`1X4@?1RHy~Yi(=VC^cznQ&a-fLJgp((bg!^cfe6U7(bZq zhuwMa&HQHOH#2WriVI&#Te4~i03fYkld}YX$B+oZi<8m&(wDvQgACo}(YGl+J;qBtgrcD&5&rrZGstdcg>t8iO=VX07GEwCcKaRZhU;t+rz>O2N$4u3+wPlhl zDnV^syiBuMJE1D=gkrv`_^}zDIq3m0&{oj~d5R}&CXpv-6T=WT9+66>M~s=m z=j_G%_?zuhw1e^pB*Nhs-f9wz6ic9#j08S}C`2;eI`_3w zVhiaw3r_)D5H5&(cqBH=`jG34i-3bOGEwR{XOoi+~r~Z=gZiU#?+MT;jWnB z(&DOcexV$D@92W(kFU&VIlJQR;fgE!R;DyW_PWB~wMC0oWsJXBaro~)%0E#1mJKpf zpDx5e7@>m2;8BIxnyK*(@04)I*N*1wYZ~+1@RarR`7?KIIo7jUxOnQ-?{khdjNE=> zAQ-)zjJ7^4Fm#wv4`|at-g5&hvvxiGZ z@0`qvUD%NO`N*j@@aJ@M<*k(Wzvvj>)%Nk#%jV+6xe<~=}iCX)Y!ZBMxQ-1H5NhNi8H~U*dTe}hx+VezrRqmIpbEBXY89GSa;<5 za7UzZY0kWCpUH> zk|s5<<67tPtaG0o$_!uYxZQq}obC+v-Dv}hqR)=1!X$U@>j9^&w|A0=6b{J4?I)(X st{jZ^-3Wm2FGC;29<2!`7v4*yfa_(IJm_o)p+5sCa1}Z~$*XAm7rtC34*&oF literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderHandleSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderHandleSprite.png.meta new file mode 100644 index 00000000..a323916e --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/SliderHandleSprite.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 0626b924325d1c34cafa6b22297f4e4f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/TouchpadSprite.png b/Assets/Standard Assets/CrossPlatformInput/Sprites/TouchpadSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..9b86e30d8c798957305f7b45625bab0ff2fd8cc8 GIT binary patch literal 3828 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 literal 0 HcmV?d00001 diff --git a/Assets/Standard Assets/CrossPlatformInput/Sprites/TouchpadSprite.png.meta b/Assets/Standard Assets/CrossPlatformInput/Sprites/TouchpadSprite.png.meta new file mode 100644 index 00000000..fc51dbc2 --- /dev/null +++ b/Assets/Standard Assets/CrossPlatformInput/Sprites/TouchpadSprite.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: e4f1fee3de32377429fd1348fae62b10 +TextureImporter: + fileIDToRecycleName: + 21300000: JumpButton + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 65, y: 65, z: 65, w: 65} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: From 03d675d1c33eddfa012d0c4377b9c7d3536da8a5 Mon Sep 17 00:00:00 2001 From: Zacharias Psarakis Date: Wed, 12 Oct 2016 23:14:51 -0500 Subject: [PATCH 9/9] finished First part --- .../Materials/grass_texture_four.mat | Bin 5020 -> 5032 bytes Assets/Scenes/B2_Graphics.unity | Bin 23876 -> 23908 bytes Assets/Scripts/Scripts_B2/CharacterInput.cs | 93 ++++++++++++------ .../EricaAnimationController.controller | Bin 10832 -> 17528 bytes .../Cameras/Scripts/FreeLookCam.cs | 9 +- 5 files changed, 67 insertions(+), 35 deletions(-) diff --git a/Assets/Resources/Materials/grass_texture_four.mat b/Assets/Resources/Materials/grass_texture_four.mat index 338e994ecea85b49ae3be8fb184a15bac315ad5e..51bc44cfa53d8dea63c662f4760bc72f3fc21041 100644 GIT binary patch delta 69 zcmbQEzCxXYfq~;X1B392jT|i;j4L+xa%^T7(NHX>Nu;|5 u-nbR4Op~2WG7&1=Y^HgM=R>s+oHM|-B-< delta 63 zcmaE|i}A=VMgax}-`xxhu`Ub@4E#X$g^dDFd>Gj$fAyI$`Mj^# 0) { + speedx -= 0.01f; + } else { + speedx += 0.01f; + } } // turning if (Input.GetKey ((KeyCode)INPUT_KEY.LEFT)) { - + MAX_STRAFE = 0.5f; + speedz += 0.01f; } else if (Input.GetKey ((KeyCode)INPUT_KEY.RIGHT)) { - + MIN_STRAFE = -0.5f; + speedz -= 0.01f; } else { - + MIN_STRAFE = 0.0f; + MAX_STRAFE = 0.0f; + if (speedz > 0) { + speedz -= 0.01f; + } else { + speedz += 0.01f; + } + } // jumping @@ -85,15 +95,36 @@ void Update () { { // Note we only read jump once } - if (speed > MAX_SPEED) { - speed = MAX_SPEED; + if (speedx > MAX_SPEED) { + speedx -= 0.02f; + } + if (speedx < MIN_SPEED) { + speedx += 0.02f; + } + if (speedz > MAX_STRAFE) { + speedz -= 0.02f; } - if (speed < MIN_SPEED) { - speed = MIN_SPEED; + if (speedz < MIN_STRAFE) { + speedz += 0.02f; } - Debug.Log(ErikaAnimator.GetFloat(speedParam)); - ErikaAnimator.SetFloat (speedParam, speed); - ErikaAnimator.SetFloat (directionParam, direction); + + if (Input.GetKey ((KeyCode)INPUT_KEY.JUMP)) + { + if (speedx > 0.5f) { + ErikaAnimator.SetTrigger ("RunJump"); + } else if (speedx > 0.3f) { + ErikaAnimator.SetTrigger ("Jump"); + } else { + ErikaAnimator.SetTrigger ("IdleJump"); + } + print (ErikaAnimator.GetBool ("FinishedJump")); + ErikaAnimator.SetBool ("FinishedJump", true); + print (ErikaAnimator.GetBool ("FinishedJump")); + } + + Debug.Log(ErikaAnimator.GetFloat(directionParam)); + ErikaAnimator.SetFloat (speedParam, speedx); + ErikaAnimator.SetFloat (directionParam, speedz); } } diff --git a/Assets/Scripts/Scripts_B2/EricaAnimationController.controller b/Assets/Scripts/Scripts_B2/EricaAnimationController.controller index 554e916b01095e4ea24ff1667d7143cf14c816cb..37fdfe2748c4818a3f34582f7655d16e65b278b9 100644 GIT binary patch literal 17528 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 b=!^nfC;{p2BUJMS^ahpORU&J~%An;p(Y5Y~ diff --git a/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs b/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs index bf87c871..dd8cfc6c 100644 --- a/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs +++ b/Assets/Standard Assets/Cameras/Scripts/FreeLookCam.cs @@ -59,7 +59,7 @@ protected void Start() protected void Update() { ThirdPersonCamera (); - HandleRotationMovement(); + //HandleRotationMovement(); if (m_LockCursor && Input.GetMouseButtonUp(0)) { Cursor.lockState = m_LockCursor ? CursorLockMode.Locked : CursorLockMode.None; @@ -79,10 +79,11 @@ void ThirdPersonCamera() Vector3 pos; transform.rotation = Target.transform.rotation; pos = Target.transform.position; - pos += transform.up * 1.8f; - pos += transform.forward * -2.6f; + pos += transform.up * 2.8f; + pos += transform.forward * -4.6f; pos += transform.right * 0.2f; transform.position = pos; + transform.LookAt (Target.transform); } @@ -103,7 +104,7 @@ private void HandleRotationMovement() float x = 0; float y = 0; float v = 0; - if (Input.GetMouseButton (2)) { + if (Input.GetMouseButton (1)) { x = CrossPlatformInputManager.GetAxis ("Mouse X"); y = 0.5f * CrossPlatformInputManager.GetAxis ("Mouse Y"); v = -CrossPlatformInputManager.GetAxis ("Mouse Y");