- Home /
Question by
MiniFish · Aug 17, 2015 at 09:03 AM ·
transformdirection
transform.up returns a bad angle
Vector3 dir = PlayerScript.instance.transform.position - transform.position;
dir.z = 0f;
float angleDir = (Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg) - 90f;
transform.rotation = Quaternion.AngleAxis(angleDir, Vector3.forward);
mBeamStartDir = transform.rotation * Quaternion.AngleAxis(mBeamSweepAngle * 0.5f, Vector3.forward);
transform.rotation = mBeamStartDir;
mBeamTargetPos = transform.up * mBeamDistance;
Debug.DrawLine(transform.position, mBeamTargetPos, Color.white, 20.0f);
well for some reason the system decides that transform.up should point elsewhere instead of local up.
basically what i have is a beam that starts from one side then sweeps over to the other side. interestingly the transform.up is always offset towards the center of the starting and ending rotation angles.
anyone's got any ideas?
oddangle.jpg
(18.1 kB)
Comment
Best Answer
Answer by MiniFish · Aug 17, 2015 at 09:20 AM
nevermind, got it figured out. apparently i missed a step to convert from localspace to worldspace, namely
mBeamTargetPos = transform.position - (-transform.up * mBeamDistance);
bummer.