From f44d87f51d738f792d6b0e1c72b42ebaa6f655da Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Tue, 24 May 2016 00:41:58 +0200 Subject: [PATCH] Rough warehouse browsing by grabbing warehouse items with trigger --- Assets/RightController.cs | 66 ++++++++++++++++++++++++++++++++++-- Assets/Test.unity | Bin 69144 -> 97708 bytes Assets/Warehouse Row.prefab | Bin 14724 -> 14724 bytes Assets/WarehouseColumn.cs | 6 ++-- Assets/WarehouseRow.cs | 6 ++-- 5 files changed, 70 insertions(+), 8 deletions(-) diff --git a/Assets/RightController.cs b/Assets/RightController.cs index 58ec443..3c581f1 100755 --- a/Assets/RightController.cs +++ b/Assets/RightController.cs @@ -5,7 +5,25 @@ public class RightController : MonoBehaviour { public GameObject banana; public GameObject viveController; - // Use this for initialization + SteamVR_TrackedController trackedController; + WarehouseColumn warehouse; + + WarehouseRow whRow = null; + Vector3? whScrollStartPos = null; + float whScrollDistance; + float whBaseOffset = 0.0f; + float whScrollOffset = 0.0f; + float whRowBaseOffset = 0.0f; + float whRowScrollOffset = 0.0f; + + void Awake() { + trackedController = GetComponent(); + trackedController.TriggerClicked += triggerClicked; + trackedController.TriggerUnclicked += triggerUnclicked; + + warehouse = GameObject.Find("Warehouse/Shelves/Column").GetComponent(); + } + void Start () { GetComponent().LeaveView += toggleBanana; } @@ -15,7 +33,51 @@ public class RightController : MonoBehaviour { viveController.SetActive(!viveController.activeSelf); } - // Update is called once per frame void Update () { + + // Warehouse scroll + if (whScrollStartPos != null) { + Vector3 curPos = transform.position + (transform.forward * whScrollDistance); + + whScrollOffset = (curPos - whScrollStartPos).Value.y; + whRowScrollOffset = (curPos - whScrollStartPos).Value.x; + + warehouse.Offset = whBaseOffset + (-whScrollOffset); + whRow.Offset = whRowBaseOffset + whRowScrollOffset; + } } + + RaycastHit raycast() { + var ray = new Ray(transform.position, transform.forward); + RaycastHit hit; + bool bHit = Physics.Raycast(ray, out hit); + return hit; + } + + void triggerClicked(object sender, ClickedEventArgs e) { + var ray = new Ray(transform.position, transform.forward); + RaycastHit result; + bool hit = Physics.Raycast(ray, out result); + + if (!hit) { + return; + } + + var item = result.transform.GetComponent(); + if (!item) { + return; + } + + whScrollStartPos = result.point; + whScrollDistance = result.distance; + whRow = item.GetComponentInParent(); + whBaseOffset = warehouse.Offset; + whRowBaseOffset = whRow.Offset; + } + + void triggerUnclicked(object sender, ClickedEventArgs e) { + if (whScrollStartPos != null) { + whScrollStartPos = null; + } + } } diff --git a/Assets/Test.unity b/Assets/Test.unity index 83592ac77dc1155d5c4b85314ec96c114410a473..31c35fa67ec08a635b4e936df77eda01b904e78f 100755 GIT binary patch delta 17523 zcmd5j33L=ywy&B7LJZmvBuRyk4q*v~G_`bfRmTCNg5n-$6v6KjM)(E?S=3QPXA*a0 zSc1<_5D_ARB7+zbMoh(|ONkSL_lPC4f~TCOqc)?_o?rLOlo><{@`v^Ks|_xM#u4J+S2$^@1LR%l?-HVV+_&o{JMeZT#<33t=Ho^`9%sZLAb8d#= zpiduvzdyY*u{XjLfO-23``srDR@RsP_^e#9t1lsqfa(<5lEoF!k&vnkfA>WV0eA`` z&+@~*8aM(eAV;!YbTTq;{^mazEVI9Bx)qGhlfxQh?5F_H!64RA`Sz-Q2pbo6b>#dR z^XD9dO$XTP@at5U@dBoReoX|JlfWAVY;hi)x>OE?2hcf7<%;qFgjj%C#6Dc=0(T>fWaTRiGBFY_Xt?1h+h4i94IfM zcRVK-Zvx`HbX>e^GR%aK(g-0F;8$WFKFTNo+Z3T&VU&X5^e@lJ6*a^8T#m7&#nubi z@WQ(=WkSM=pWnvQD+>`e8(?02oL5|g3@4j3zwGa`Z-YA)|t5xxu<2G5+@*Y%I@ z0DHkq0PMP?9y0-?|LWsngdM!X&&awx{eOlqawQ?Zfgh*7)eBf9z*Yim3j3U*zgylj zP;eDpvRp2%y2{VghX#MZh8%OXpQ#TESnbucX}KJ*uA!+laz*7ee7StjRG67{@|eIp z05I<&nV2$RB+P}(EG4AOL+q8*_{QwO0g}GuZSp|7#yV_6CF1{F3uW2<{vv@h1e(x{ZEVBL`}3qyJMQ7b_FN zuD~>Avk$i^a|C83z)<1x*oVWO()P1gY???%J}(E9N%Y3&<*~Js2tk5RFk$t879row z=yfUnHUrG7$+N$_lEDhf37G*nVxnxGPYPH~Ib8>D2u-H%Jug?xoJ0zhzyBR*I_UI${Rk=WDD|Kt z(@=1v=6+hdLN3mn#f9i(!Vnt;V2=Xow@f@N)FFQ_+W|@q!#+UguaE<^570F@3h>b@ z@`D1i6kv0qhtrguJT>5Y9Ob}+^v4zQ*n$c_x9__qZ7iac0L;6FZu;$K3|9V-pD|5e z?_;pVk5KuA?D!*u%!5&!n$j!%ig9dYplu>FoTT>_u+@*!sV`(pkJ33X#$$eMt9q-6 zjZp(Iv}NBh7Nz2_WTAkC9;f?YjK}E-7~^q5o(7onU4NT1`6k4l`2^VJ?u48R?Q_L4 zPr2b4Sj2>c7tpI$%7IM_=p8HN;@MSxHlHOh8vy2IbDDsaE~Hy=l!f#!E9J4f!3Ksr zTJi0m4Y%U^4p6@&uF4)+hOlOUP4x838n=?c$`;YcDu_B45%M{pI?3E{Y1IVmzPj2k ztg&B)Py%G{Glbj>zfLjTAYj%KKkJ&hD_{a3xCR)8pCY(Ehpp2m$C?aya0y+u3Vimn z^o><=ar3j>+m-;jofOO!m?cZW)4}r}m=u9TxaJAi;-&QL7v+kA=lranaf8KPR0c4w zscOo)70d*z>*ansUAJuZuMpPoJRz&#*GYA~fR(RsiIdyn4FcG_g8ueJIWXo0x&)?H z`GQ}MHww&y07J@vFi4j8^;fk3RhE>j^slVDuYZlf%3t(bj`-afV8DQ+)r5Qna~AHf z@Dx6*7}5*1i^)cR$nrjkG5k#cLykC?!UqCYu!)XbEeFPJqBpLVi)%Nr zkcl+28Fj;#k=+6l)1QTK--ms;k1CuppS@x6>vSEAvieQ>9*k15*{=n&vKtuYYJhod z!vg|lZK3^NmIJf5(BhZn;)X4Ll|1)}H4osN%D4JQ=__E(Tj_ilWz1W2&CBxG%D4P; z$r6|c0p``nZ{8Y#;vyvte&yMAb{&J2Z=*lL8;&$md5v70vV+GTM;On}!Omodz#J!F zhZ!uyU^@kD^$t39jT~s$LFcTIFWC#2B><1H59jWC0yA?bf5U|UyHHr=w2a3p;FgpF zELkX^AFlaC8d$&T_h$!2?BDb5s846jzHHT_MW4mC++N6S$(E60uf6T7>4J5A>ASD&q^s5yQKc@m{=e7VD@mzT zT`$w+wLR*m)YeF}p*EORCBssIt1EmaPn|evCj6oy(dhcx^t{hM=1}C!ZPTXSbJw&f zQzqSY8N=gPd3EXap}OfoTDdJmt6n=mYu`ypx1A@3VtwIr;#fDjpf;-)4vx=ak$7BJ zH6u!|-JITqLv!*mGEgFls#r!Wrde>8yu>Kgr@BZv1JFMfDG@!cnlaNzB4LXo(yO;? zv}|)QaN-!fr7_Xmnta;Slz19xlqCyiGN9SuEXBoh=dD*yxN{OA__AM2`_BnsHC$i~ zrSrE$(rveaq+mEwH=2=GePycDqrV!BL=|1rRRB1yBwkKoZ+H&#SNNqycV^nDJfsx>Dq6q}sO(58A0>O4O(sGDzpw%7am&C^sZ0s>Kvdb;~V*+JAr$uVSdG5w~!yBrlFu{bLuY z|B#;Wm~jWtqDEBr2w1$mJH2MR+MW07PH$~Yw%>9*KirgjKD;r@XlbmqwW!I2IE8L= z0c37)E@T21GET<@>{4V!VwMrrJhDtOOzY;Llqo#ZVSDaW zNEvlKUCN?QZp>}dh^c18ur$jsTQXvr z6^m<{n{3+@I@YunF$^76L)1xiCyiL&^Kmt+9+{v$Y{{(QYP8Lo3M+lVmJzh{Xi9y< z#!RU-12<$QbV7vy8>gDEINgibsVE6+u4#%6Y;r5NO97ZQS0hm^u9&80_MK9IzH!C~ z1t#jaI;I5KZHr%t7^V`{^_IjBHr)aSx%q>l0AJ@2zY;OQTo_)H&JjE6!)WQ|K5cri zIQL+!tnP$>i{cS0rh{@j7>G?FIB@1_cfSyUBT+SO#^UZ?of4wVtXMmQCaf4+xw;H* zUiTCv!Q!%OkoJ8mfeH8AW<)dMF~!tvZ2l|6hBRYHf#C`lq40ZJOj8X#=I+%=5zgHb z!gsVO#wdz$a33$ZScRn0hH(8qH%*afNmJL9VU>)Cest0s3%ch(JA76cFb2`^o0W-W zo&wL4lFdqL0hl;bGc1oh9k@A#y`XO!p^T01P<$;C*A){qjLk0b)j3V64tAA75ab3~ zsFIQ1rg9sRxM7;7vtC0mp%Y|*DOVNEEnYWCLJ?G0@J38G6Xal{b0kqvg!Y7Jpa*t{ zmO*RYOas?7;fq}Q{+s<+>wIy4pf-hGxw#MCZN3z~^Y&eU?R^)+_rk_}TDk@C^A6|2 zdl3sm9cPfsgAok)*hV;Sbm(1ztN=UXy1w$1#qb~IYsU#&k80!MI{fnA0P-4|3H=lIXh#HGoit2H# z9IrFVKD0elJCr-4wa|vyePPR3GN)K>!jqmb5#F(E&QRR?CGeQN@8wMAw3r@KFId9hW2%!(VK8A;^_WXw0*{e6*hykb87oKba2n&% zBTzFOrj0bl5e&5|W*+R=CfpNnJ4Kwd;V~s@xid4Th*@TjDO^iNoFjHv*hagA4Ott6 zLB6QZ-e~}Sv8$D+FHw#vvTHWZP<{xmY*vSWGK~tki5_(qEnF-RNervdsP5I!xsud* z?TQ0oS%bFIs%>dffBMk&zF6C%o3~{q?t0QAhl2Fvwh(_(eNIs7NtNv!A(xgl@s`QJ zxpX(XKf2xQ+8?NYn9kUeO~*81=e&LS)m1^M4>T7xUI5=8vF~0x&WCod9sTI!9l4^l zinVs^D1`f?JBIhdp=xeFh80G3^{-cV9uBl-g%VQHF&x+8I$QVNBB2u3HC0pHQJG63 zwjqNk(};OO*iI@X%kC-)MS>5Sth>wgdQui4&@esw&WxDPe< zqt~722SV#ZA3c#N={Vldr$_q>eHggkFyXFA<ucZO)VF37Tr zrv_tLj9-{cVRk{w-U-%+-&@(GCsvCp6Dh_=AG}0M8&cfV=FJ2gJN(gfOR;oIjK_aC zPk;|OLSh=^)F5`ZXc22j4^Rn31F18r=sga)TjK+i!WeIW7c{t^wcE=LZc7C>QWB*< zOqRH_w&UT{ehP#$P`-${2uotQtA5N>L?c!-9*=ty?9N94S#lc3bb)Ypi@E8Ch_oxna zD)&;eb6bpom=mu5DQ9br;Bk&Qj$0|^(1pq;` z9)U0&GI}Q&wwN&RYpJrOMsz4^L8Y#xP8|&F+O_v0;&r4ayRH0FI7-isnZrsY_g>Iz zT9#Yhd@;Mzad4V3&9f!N@j8>CWO)mm%o?!$23bD9TKlh_iU0T!UM9E6kBZjU* z5zj3sr%v1ZjG7X&V4u;gr(8{)`m9DYOIHl#|3mb$;aWT}$9AYTlx*!~%@~31mxkX< zsXwx3sU(HzyiXor5wO!$dn4dBAL~n$xoP5}asdLA2t(c&8372-$XByndHZ z_kVX!%W4R1?g{DX52II_7m;XRav`%kA`Niu!Zv&( zBqUA)l0r-WkW#<_R5@-pvg|GllFvQ&cl%u(v zilM_IfbA|AIC*irpUkNUR-oDzvNYz%XVETL3O~c5c?iaURF{>`asPPy{#N&o6QLLG ztau7+j@8rBvf#TWhIiwlbIXG7nzU!L31TaD>P4K0MP*4Y-{heldsCPlrSazLY#SJ| zf~4e=qd4}3#5SzpRTC zq(}c+NOy1T1IuV&{iwe|Q6!K4@O3sl@^zXtp#F!iZx06XR5fJE1+?m)yJ_WXDN;V2 ze5g>$WqP*ZP$p~TLusauc!nD^!I&{=;Nf9#hc%U4 zn3^-m1DwOTJ?*ouiCV)TT*}T8HDusX)lw*RvZ+x9=pVVjD7rQnC3pf&~1oFSyWmrQ?FmsWq|=(s>4E^~W} zB;Un(7*C+w0^jj)j0$BroJQjE@m-vaao62#Kh+t&pUcmMxZGL0f*r>Zu-3N15?m<4 zqcN7^O&1(oVA};Or^dr=@u)Xb7O32Jiqlal93?W$Xxzmz&auvLB8%-Ww?pe3n}BA0 z`M1pyEjyG#%fBy6#C#raAiSF>8@Xd6hu3JyyNSY)=?)}1XZzXdk#<$kA? zpr05Di4&`?;6=oGSSPV_N<6y?M@Zam&KVQhdnI^w)zn)&7S+-0$-OZHb8SaR=sP!X z#;$2%vjVQE^}XUmP^khdbvPH8SoqN3nhf>SglX1H!+?6Y>BMp^3}%|Oh-SuNYtD@( z@H(|Hd{H)(;<`YO zKmOeqj~wYj^M07tb}a-BG+CDFE$=yNA=Op59S_Dxvs5eY$z^OrM|`Hi!4Ej!s(BcW z8do>EgNobts*W7fLwVchl9i#z1oy=%Wwh#tf1{1C|5_#G8j$j<-|hly zWJ+yH_1Z45lg92%`|*L=)an62sW-pxOK;ttXE&!cCYparK0Vcx*F7JYu2aYs+1-T#Mm3XQ9!mhlhzW|RuoALFB8$?vjUGkf15>PMJi2W?QE5^z zwJot~S8w9rBMKG+g5oN~MUT<7OxU3B2}Kh`(Zn}> zy<8~lLUsiEaXu^>+bmfX#O^ZF6v*6V&MY1pIOSF;*M`iFdBTT<_DivRpdpx$<9-9@N!Ed^Z&8)#2(dZ!2n6c z-ua?vS}saS2eLx!|Cew%?jb&xB&#<-_+C}lZ-B@5s#aGdA&Zgvx+%A9*%&^eADI(t z=_W1Ge&0Tpv(n-43)Ipz9Co6X;t_#<3En$vBA0AKRxe`pVZ4S&=8S?1)vB&C3T{=a zRvYfKzjx-vI(W4M3J7Ck`^^E)X(=C zdGwP)6+Wy{<2q0z!03x{SzN?s2J1f6>NOKmi?1t0(Pn6oBBe2bHdKs0FNSx-z?OYz zZ7ejPmL80@4XEM1*dufhKEITbYvTyX#rJ;;rUjUmW`Rt5^ZSR1CZC&Kbt z)#^?R^!OWcm@SDA2M((gMf250$y`Zrs#evtCBYTcVoN6ERg~h^4xU#z*(gPNkd@%OuWGjaq8MH{2KMY%%iA#G z{b#Sgmc*A%>?wh6N$y!Cm;rtD6O{4IpV5+4BI9=ZPCI6B9H#CDWOv1KL*V{9VY;eR z2(H7##xuizwVxM%FdL;wB{KiBx?3{ucvx7c>Kso%8CF$kaI4OonMTNF9Ot{d$PqL6 z*+6U)0_PbnS^Wgat~b*OP*iWu#02y=(RKQ^&{2(yr-856w@PM6hbGjK4j-b9^gvhq zedDtEd>y4|Q2kIsMq+!Uj5__?9Sb=#WI@~kRac({)&r__?bCtQhe$~`GXJy>mCTk6 zTey~NXh1FAY}AWU?)w3~o7}R9&(~oK%$(@L+G5VSZJ;)&agH2p;;Zkj&beveJ4P~| zg_RAewd&cxGvtjqlS{dXekvg~So`kCM##seTKZ{x^T6RJ{#dY}Z#G$AiJlIHg{v#hk`18Rq zD=7%vook;?7ivw&{G;@`WUc}TKZKvW0(kt8T3-4CLSDled>wGvacH%e6`B7r&?#Bz z^LW8Rp_;3n1T zoE7-p{)?1sLxwhzelh*`xDwJaIK^yO*re**v!M*Nc;^uE7E)gW*O|RyF@AjXg+WxTxS^j%4e4jmu-4} z`;v&6U%hjo5#n3UK}5?a_@ZTe^JDM6La83sdsMh{Y*_QjW7QPWjw#LFR;R+e(-396 z*9~2NGSN{mwmlx6K4FBOca>(>SrY}@31jo_ODib2{-zA8NUgxB(FPcK`FBI{)y179oHZkxnXu6DI3koKNo+r3b#Lhrp%+$2c7XL|4!#?qEi zqkP?aD-5bRWb2pF$xuC@z}B|yBa{IDS-}=5O z;%!4;H2k$M9(A61nNC6QRR1^uO8T|&#WN@_uDPcFjt;!vbhD0VYVl-Hx;rS0-w+=- zk=;~iU9^f_ud7;eVe>(Ln?3pA^m85aI&pMo6wL_I6cxwP-4r@@DBI)dT6pz1y7kyF z&#%I1qfQg(e1fJ1{ZBT+c6$gcL1S&Vji^6!67CO=m9$R9)0IJsgJ=-T$)e-fNtNoi zowRsrv#3jVskWD4tfj&`t~LaL|ntbH0Chk`tSm@$u< zw00tMM(q=vdEcn!?;@6tm33_~&`?Uo$Ib5lu(4&a|4DYY5KZT}%~f zVT<$8AmeG1)=XrUm(YI}R+En_S^N@>!uHL4^pFK=2Jn~ta5{f^E0X`RGt+T!L8}3q zz0*;7(iLN*1&#FenZ?uoBRW?Hm7noMG%?4IsU0oTvyM_+!2d%kJ|mJBlP|@Sx`MiN z7)29S;m_5TG-j|}Jdxt@@qv+5=TU`CT17J+v_`;2gwoLW5cFYPytFtiiBP(1QBl8fwwniL7T0u1fZM z^XV}5)LPu71jxCT$ee2h!;Ma4ZqbIEJ{+Po@q}b)>x6_jBKgK8u-De1cmg|uRcr$8 kUGY5^{%ZeX@!iJ+M$4!tT8NnNuPFHpe&`a|M`g6`Km6VD<^TWy diff --git a/Assets/Warehouse Row.prefab b/Assets/Warehouse Row.prefab index 16a6097a35d2b7c8a6b23af40204197799e371be..d9e76d478487ea1b779cea6807475efb230eeec3 100755 GIT binary patch delta 31 mcmZoEZYkby!jy-Dfq}s}u_QG;zo>HZ71IPpgUzO9{>%Wfl?sah delta 31 mcmZoEZYkby!jy-Nfq@}7KP@f4h=F1971IPp!_B5<{>%WV=Lx$2 diff --git a/Assets/WarehouseColumn.cs b/Assets/WarehouseColumn.cs index 6b534b6..667b79d 100755 --- a/Assets/WarehouseColumn.cs +++ b/Assets/WarehouseColumn.cs @@ -8,7 +8,7 @@ public class WarehouseColumn : MonoBehaviour { private BezierCurve curve; private Transform rows; - private float offset = 0.0f; + public float Offset { get; set; } void Awake() { curve = transform.Find("Curve").GetComponent(); @@ -21,12 +21,12 @@ public class WarehouseColumn : MonoBehaviour { void Update() { if (Application.isPlaying) { - offset += Time.deltaTime; + //offset += Time.deltaTime; } foreach (Transform row in rows) { var i = row.GetSiblingIndex(); - var distance = (float)i / (rows.childCount) * curve.length + offset; + var distance = (float)i / (rows.childCount) * curve.length + Offset; distance = Mathf.Repeat(distance, curve.length); var pos = curve.GetPointAtDistance(distance); row.position = pos; diff --git a/Assets/WarehouseRow.cs b/Assets/WarehouseRow.cs index ccd9eef..110a6e1 100755 --- a/Assets/WarehouseRow.cs +++ b/Assets/WarehouseRow.cs @@ -7,11 +7,11 @@ using UnityEditor; public class WarehouseRow : MonoBehaviour { public string Category; + public float Offset { get; set; } + BezierCurve curve; Transform furniture; - float offset = 0; - void Awake() { curve = transform.Find("Curve").GetComponent(); furniture = transform.Find("Furniture"); @@ -43,7 +43,7 @@ public class WarehouseRow : MonoBehaviour { foreach (Transform t in furniture) { var i = t.GetSiblingIndex(); - var distance = (float)i / (furniture.childCount) * curve.length + offset; + var distance = (float)i / (furniture.childCount) * curve.length + Offset; distance = Mathf.Repeat(distance, curve.length); var pos = curve.GetPointAtDistance(distance); t.position = pos;