From c298401229dbea5dd011dd4c4f31644f93dd17fa Mon Sep 17 00:00:00 2001 From: ViktorLjung Date: Fri, 27 May 2016 00:02:34 +0200 Subject: [PATCH] Measurement now inherits the parents transform --- Assets/Measurement.cs | 45 +++++++++++++++++++++++++---------- Assets/SquidPink.prefab | Bin 0 -> 5892 bytes Assets/SquidPink.prefab.meta | 8 +++++++ 3 files changed, 40 insertions(+), 13 deletions(-) create mode 100644 Assets/SquidPink.prefab create mode 100644 Assets/SquidPink.prefab.meta diff --git a/Assets/Measurement.cs b/Assets/Measurement.cs index 4d06fbc..f950b3d 100644 --- a/Assets/Measurement.cs +++ b/Assets/Measurement.cs @@ -8,29 +8,40 @@ public class Measurement : MonoBehaviour { public Vector3 EndPosition; private float HoleSize = 0.1f; private Vector3 lineUp = new Vector3(0, 1, 0); + + + private Vector3 LocalStartPosition; + private Vector3 LocalEndPosition; + // Use this for initialization void Start () { } // Update is called once per frame - void Update () { + void Update () + { + LocalStartPosition = transform.TransformPoint(StartPosition); + LocalEndPosition = transform.TransformPoint(EndPosition); + Transform line1Transform = transform.FindChild("Line1"); LineRenderer line1Renderer = line1Transform.GetComponent(); Transform line2Transform = transform.FindChild("Line2"); LineRenderer line2Renderer = line2Transform.GetComponent(); - Vector3 middlePosition = (StartPosition + (EndPosition - StartPosition) / 2.0f); - - float magnitude = (EndPosition - StartPosition).magnitude; - Vector3 direction = Vector3.Normalize(EndPosition - StartPosition); + Vector3 middlePosition = (LocalStartPosition + (LocalEndPosition - LocalStartPosition) / 2.0f); - line1Renderer.SetPosition(0, StartPosition); + + Vector3 startToEnd = LocalEndPosition - LocalStartPosition; + float magnitude = startToEnd.magnitude; + Vector3 direction = Vector3.Normalize(LocalEndPosition - LocalStartPosition); + + line1Renderer.SetPosition(0, LocalStartPosition); line1Renderer.SetPosition(1, middlePosition - (direction * HoleSize)); line2Renderer.SetPosition(0, middlePosition +(direction * HoleSize)); - line2Renderer.SetPosition(1, EndPosition); + line2Renderer.SetPosition(1, LocalEndPosition); @@ -40,11 +51,19 @@ public class Measurement : MonoBehaviour { if (Camera.current != null) { textTransform.LookAt(Vector3.Normalize(textTransform.position - Camera.current.transform.position) + textTransform.position); - lineUp = Vector3.Normalize(Vector3.Cross(middlePosition - Camera.current.transform.position, EndPosition - StartPosition)); + lineUp = Vector3.Normalize(Vector3.Cross(middlePosition - Camera.current.transform.position, LocalEndPosition - LocalStartPosition)); } TextMesh textMesh = textTransform.GetComponent(); - textMesh.text = magnitude.ToString("0.00") + "m"; + + Vector3 inverseScale = new Vector3(1.0f / transform.lossyScale.x, 1.0f / transform.lossyScale.y, 1.0f / transform.lossyScale.z); + + float textMagnitude = Vector3.Scale(startToEnd, inverseScale).magnitude; + + + textMagnitude = transform.InverseTransformVector(startToEnd).magnitude; + + textMesh.text = textMagnitude.ToString("0.00") + "m"; textMesh.characterSize = Mathf.Max(0.001f * Math.Min(1.0f , magnitude), 0.0005f); @@ -54,14 +73,14 @@ public class Measurement : MonoBehaviour { Transform line1BaseTransform = transform.FindChild("Line1Base"); LineRenderer line1BaseRenderer = line1BaseTransform.GetComponent(); - line1BaseRenderer.SetPosition(0, StartPosition + lineUp * 0.01f); - line1BaseRenderer.SetPosition(1, StartPosition - lineUp * 0.01f); + line1BaseRenderer.SetPosition(0, LocalStartPosition + lineUp * 0.01f); + line1BaseRenderer.SetPosition(1, LocalStartPosition - lineUp * 0.01f); Transform line2BaseTransform = transform.FindChild("Line2Base"); LineRenderer line2BaseRenderer = line2BaseTransform.GetComponent(); - line2BaseRenderer.SetPosition(0, EndPosition + lineUp * 0.01f); - line2BaseRenderer.SetPosition(1, EndPosition - lineUp * 0.01f); + line2BaseRenderer.SetPosition(0, LocalEndPosition + lineUp * 0.01f); + line2BaseRenderer.SetPosition(1, LocalEndPosition - lineUp * 0.01f); } } diff --git a/Assets/SquidPink.prefab b/Assets/SquidPink.prefab new file mode 100644 index 0000000000000000000000000000000000000000..215ded9063bd01fea8dd08a5833784c7eee36119 GIT binary patch literal 5892 zcmdT|eQX@X6`%Fl4up>sVh9A1I1nI&HUbj9A-;M>^QB8C~WT5cN=`WW^Zj0 zAoQrjmjn_LLIRbxph{H(2&9OwR^m%S0$PDkMFirHfP`8JR0ITxs!~h%{pRiL&YsW6 z{K-mlJM)`2zj-rn-g~pBRL>fvmUJqm7Ae(J#9LjocHP?b6Bnp&j~qGTbOCTso?G7i z!Y_|sz5npxjnVE)d)`|C%tztKr<7`5f&%#?Xrjh3j`~wUH4iwdNf~lT;jdB$fgg)^ z2MT2!)DB_f$!Jr)VBu@Q!}*R%`b6GQcXg=d>j{tOIh&_@4xR-m?x=&{UyU~P=Nu)` z$GHIdun<2w#S2=`(=dj5F0}9!&}TQ~e*)~76z|mXzXeWtu37jy)hfs@1P`&}QoJj- z564@$y$`Tf!Xx{<9&Pe-Za&AtV`$PRtAlM|{kz3b^lr0j^uWK=JT?*emnWliuJa zR7TvmrYrqneJTvRAO<+(?)4(PcevHDIP!xk>VxGlz-ya3Gwd~LMq;p0D#!ker6xHfrW< zj`}Bf=(NV!)KR_qa6Asl&7=V_=W_hvk8uQvHwLh$*rBO z&Ai&#EZodXXS4auymU63e*{hP)7fl!vo7syZTRVIw!Gn|vl)H{yX(-T)6&`61v@&M z;Q63HXEXRa*nb8E>Pcr4T!Nhm;&e8H+jgY03GOKJ)X*l6IGZ!e$r=2K()n$k-V}HA z`MC*g+Hs}Em72fP4uxfRax{$H7=EqxsJ-eIbu%59_(<6BHJ-G`fO+WbulbXe$fGw8 z!27kQkA`8qJ*uG2P4D^UnG+XR|FG}k!*Bj;>h0?Op8~rdVULlIPtK8>vdFozCJ*gg zS@TTvapA35lk?HZ*e4tK{aMrSv}R4iV`t6pb7aGFH0CW?hBG|2BM;#aU59|cJz>^# zilXadIH(t~jdCmsAFhG&{kkq$6G2G}@47O60|HrqJfz zWLZ;gQASTXvdD|$7(KJBDf{`GM2?PZ_VWea$inkD_+JDE`Fl}t1W-huzv;GdJ*CzPc7TyQ!7bslsIVei==hw?bB>Ly~`P>wj098-;*Jzw$9Muc^-VVG2*m=Z@ zO7Uhe>IDcR2qg25V*PF-9;>;P@a6_$(x_MVaHGh8VK??7-<@RV*z~T37Y_y%zwGHY zLtlBL8<%SgVUQSactd`*7LP>XE-fYq=bQn#v5*xQBXHZLAe(4rlVuyV4z3V z-6`GgHN0rX8{f%!2CG3BdE3IM4m}3KsK4e$@g^@8VhZ5)6vb{3Zy7{u*bn^rbX`l0 z`L}Ss(sUe-?;LjbZ1NkBE9bCMP(^6gJ7!cEaU-{m38Dt?YqL>+W0(<_Gkq7+cen(Q zK)w=2dGB{0{r!%IFTD3JkN*3W|3C7s(;CPP&qC-`N;F-E`UVs_3fD-5O<*uQ>~j*Ffz$9X zxe@2V$CVn^n)k8S#^yMhmv8kccJJq>FIw~MmZ!dYdvwvdpEa)-r>B32LN7an2=+rV zFNP>ac1CiJcbc*=MnXm+E=mkWTrvv}0}aXI=u*&Em#a{xA-ht%Lw|n`piO>lu%_n8 zeWz)IXBo7THdUmP3(DO#LsV5C4^494vdo*eSC)A@wOwd0>XUu1 z%J;vq3p20TAKNa>yn@S(Za>=Ou`@3-pyA0fuVg4=-(HJ{H#%ly@~lj8$#jN?=UwK_ z^PHLDlEL3f+N=03;wm0_6Yj3zu;NenWw~X;Tl38wksCB7kQxxO<@fKw1pMLF==Px>1b0$Lt07hmYAe*15YC zoXY9Rc-}g+)5YjPPWv3NEl;!W)Xtf{f#?6&ciFS|^ua6BV)%^SW`ud0e$(dLp3j^u zyI=TiB%9Bmwmpc=cOJ?)_|b3FdynbG@9f9)=X