コード例 #1
0
        public void TestFunctions()
        {
            Quaternion2D q = new Quaternion2D();

            q.SetIdentity();
            Assert.AreEqual(q, new Quaternion2D(0, 1));

            q = new Quaternion2D(2, 4);
            float l = q.length;

            q.Normalize();
            Assert.AreEqual(q, new Quaternion2D(2 / l, 4 / l));

            q = new Quaternion2D(2, 4);

            q.Inverse();
            Assert.AreEqual(q, new Quaternion2D(-2, 4));

            q.SetIdentity();
            q.angle = 0.927295268f;
            Assert.AreEqual(q, Quaternion2D.Normalize(new Quaternion2D(2, 4)));

            q.SetIdentity();
            q.SetFromTo(new Vector2(-1, -3), new Vector2(2, 4));
            Assert.AreEqual(q, new Quaternion2D(-0.9974842f, 0.07088902f));

            q = Quaternion2D.LookRotation(new Vector2(1, 3));
            Assert.AreEqual(q, new Quaternion2D(0.1601822f, 0.9870874f));
        }
コード例 #2
0
ファイル: Hook.cs プロジェクト: alexeous/Their-Own-scripts
        private void Update()
        {
            switch (state)
            {
            case State.Launched:
                ProcessLaunching(Time.deltaTime);
                break;

            case State.Attached:
                ProcessUnitPulling(Time.deltaTime);
                break;

            case State.Retracting:
                ProcesRetracting(Time.deltaTime);
                break;
            }

            if (state != State.Retracted)
            {
                lineRenderer.SetPosition(0, origin.position);
                lineRenderer.SetPosition(1, transform.position);
                transform.rotation = Quaternion2D.LookRotation(transform.position - origin.position);
            }
        }
コード例 #3
0
 public static void AlignWithRay(this Transform transform, Ray ray)
 {
     transform.SetPositionAndRotation(ray.origin, Quaternion2D.LookRotation(ray.direction));
 }