Ejemplo n.º 1
0
    void FixedUpdate()
    {
        int stat = WalkinVR_Update(); // You need to call this function periodically.

        if (stat < 0)
        {
            textview.text = "Walkin'VR disconnected";
        }
        else if (stat > 0)
        {
            WalkinData wdata = new WalkinData();
            WalkinVR_GetData(ref wdata);

            textview.text = string.Format("V: ({0:0.###}, {1:0.###})", wdata.vx, wdata.vy);

            Vector2 accel = new Vector2(wdata.vx, wdata.vy) * multiplier;
            velo += accel;
            transform.Translate(velo.x, 0, velo.y, Space.World);
            velo *= damping;
            if (velo.magnitude < min_spd)
            {
                velo = Vector2.zero;
            }
        }
        else
        {
            // WalkinData has not changed because frame rate is faster than input
        }
    }
Ejemplo n.º 2
0
    void FixedUpdate()
    {
        int stat = WalkinVR_Update(); // You need to call this function periodically.

        if (stat < 0)
        {
            textview.text = "Walkin'VR disconnected";
        }
        else if (stat > 0)
        {
            WalkinData wdata = new WalkinData();
            WalkinVR_GetData(ref wdata);

            Vector2 p1    = new Vector2(wdata.x1, wdata.y1);
            Vector2 p2    = new Vector2(wdata.x2, wdata.y2);
            Vector2 accel = Vector2.zero;
            if (!p1.Equals(Vector2.zero) && prev_p1.Equals(Vector2.zero)) // step in
            {
                accel += p1.normalized;
            }
            if (!p2.Equals(Vector2.zero) && prev_p2.Equals(Vector2.zero)) // step in
            {
                accel += p2.normalized;
            }
            accel.Normalize();
            accel  *= multiplier;
            prev_p1 = p1;
            prev_p2 = p2;

            textview.text = string.Format("P1: ({0:0.###}, {1:0.###}), P2: ({2:0.###}, {3:0.###})", wdata.x1, wdata.y1, wdata.x2, wdata.y2);

            velo += accel;
            if (velo.magnitude > max_spd)
            {
                transform.Translate((velo.normalized * max_spd).x, 0, (velo.normalized * max_spd).y, Space.World);
            }
            else
            {
                transform.Translate(velo.x, 0, velo.y, Space.World);
            }
            velo *= damping;
            if (velo.magnitude < min_spd)
            {
                velo = Vector2.zero;
            }
        }
        else
        {
            // WalkinData has not changed because frame rate is faster than input
        }
    }
Ejemplo n.º 3
0
    void FixedUpdate()
    {
        int stat = WalkinVR_Update(); // You need to call this function periodically.

        if (stat < 0)
        {
            textview.text = "Walkin'VR disconnected";
        }
        else if (stat > 0)
        {
            WalkinData wdata = new WalkinData();
            WalkinVR_GetData(ref wdata);

            Vector2 p1    = new Vector2(wdata.x1, wdata.y1);
            Vector2 p2    = new Vector2(wdata.x2, wdata.y2);
            float   accel = 0;
            if (!p1.Equals(Vector2.zero) && prev_p1.Equals(Vector2.zero)) // step in
            {
                accel += multiplier;
            }
            if (!p2.Equals(Vector2.zero) && prev_p2.Equals(Vector2.zero)) // step in
            {
                accel += multiplier;
            }
            prev_p1 = p1;
            prev_p2 = p2;

            textview.text = string.Format("P1: ({0:0.###}, {1:0.###}), P2: ({2:0.###}, {3:0.###})", wdata.x1, wdata.y1, wdata.x2, wdata.y2);

            spd += accel;
            if (spd > max_spd)
            {
                transform.Translate(0, 0, max_spd);
            }
            else
            {
                transform.Translate(0, 0, spd);
            }
            spd *= damping;
            if (spd < min_spd)
            {
                spd = 0;
            }
        }
        else
        {
            // WalkinData has not changed because frame rate is faster than input
        }
    }
Ejemplo n.º 4
0
    void FixedUpdate()
    {
        int stat = WalkinVR_Update(); // You need to call this function periodically.

        if (stat < 0)
        {
            textview.text = "Walkin'VR disconnected";
        }
        else if (stat > 0)
        {
            WalkinData wdata = new WalkinData();
            WalkinVR_GetData(ref wdata);

            textview.text = string.Format("V: ({0:0.###}, {1:0.###})", wdata.vx, wdata.vy);

            rb.AddForce(new Vector3(wdata.vx, 0, wdata.vy) * force);
        }
        else
        {
            // WalkinData has not changed because frame rate is faster than input
        }
    }
Ejemplo n.º 5
0
    void FixedUpdate()
    {
        int stat = WalkinVR_Update(); // You need to call this function periodically.

        if (stat < 0)
        {
            textview.text = "Walkin'VR disconnected";
        }
        else if (stat > 0)
        {
            WalkinData wdata = new WalkinData();
            WalkinVR_GetData(ref wdata);

            Vector2 p1  = new Vector2(wdata.x1, wdata.y1);
            Vector2 p2  = new Vector2(wdata.x2, wdata.y2);
            Vector2 dir = Vector2.zero;
            if (!p1.Equals(Vector2.zero) && prev_p1.Equals(Vector2.zero)) // step in
            {
                dir += p1.normalized;
            }
            if (!p2.Equals(Vector2.zero) && prev_p2.Equals(Vector2.zero)) // step in
            {
                dir += p2.normalized;
            }
            dir.Normalize();
            prev_p1 = p1;
            prev_p2 = p2;

            textview.text = string.Format("P1: ({0:0.###}, {1:0.###}), P2: ({2:0.###}, {3:0.###})", wdata.x1, wdata.y1, wdata.x2, wdata.y2);

            Vector3 v = new Vector3(dir.x, 0, dir.y) * force;
            rb.AddForce(v);
        }
        else
        {
            // WalkinData has not changed because frame rate is faster than input
        }
    }
Ejemplo n.º 6
0
    void FixedUpdate()
    {
        int stat = WalkinVR_Update(); // You need to call this function periodically.

        if (stat < 0)
        {
            textview.text = "Walkin'VR disconnected";
        }
        else if (stat > 0)
        {
            WalkinData wdata = new WalkinData();
            WalkinVR_GetData(ref wdata);

            Vector2 p1  = new Vector2(wdata.x1, wdata.y1);
            Vector2 p2  = new Vector2(wdata.x2, wdata.y2);
            Vector2 dir = Vector2.zero;
            if (p1.magnitude >= boundary ||
                p1.x * transform.forward.x + p1.y * transform.forward.z < 0)    // if inner product is negative, the direction of p1 is opposite side of character forward.
            {
                dir += p1;
            }
            if (p2.magnitude >= boundary ||
                p2.x * transform.forward.x + p2.y * transform.forward.z < 0)
            {
                dir += p2;
            }
            dir.Normalize();

            textview.text = string.Format("P1: ({0:0.###}, {1:0.###}), P2: ({2:0.###}, {3:0.###})", wdata.x1, wdata.y1, wdata.x2, wdata.y2);

            Vector3 v = new Vector3(dir.x, 0, dir.y) * speed;
            transform.Translate(v, Space.World);
        }
        else
        {
            // WalkinData has not changed because frame rate is faster than input
        }
    }
Ejemplo n.º 7
0
 extern private static void WalkinVR_GetData(ref WalkinData dst);
Ejemplo n.º 8
0
    void FixedUpdate()
    {
        int stat = WalkinVR_Update(); // You need to call this function periodically.

        if (stat < 0)
        {
            textview.text = "Walkin'VR disconnected";
        }
        else if (stat > 0)
        {
            WalkinData wdata = new WalkinData();
            WalkinVR_GetData(ref wdata);

            Vector3 p1    = new Vector3(wdata.x1, 0, wdata.y1);
            Vector3 p2    = new Vector3(wdata.x2, 0, wdata.y2);
            Vector3 v     = Vector3.zero;
            float   accel = 0;
            if (p1.magnitude >= boundary) // step back
            {
                v -= p1;
            }
            else if (!p1.Equals(Vector3.zero) && prev_p1.Equals(Vector3.zero)) // step in
            {
                accel += multiplier;
            }
            if (p2.magnitude >= boundary) // step back
            {
                v -= p2;
            }
            else if (!p2.Equals(Vector3.zero) && prev_p2.Equals(Vector3.zero)) // step in
            {
                accel += multiplier;
            }
            v.Normalize();
            v      *= speed;
            prev_p1 = p1;
            prev_p2 = p2;

            textview.text = string.Format("P1: ({0:0.###}, {1:0.###}), P2: ({2:0.###}, {3:0.###})", wdata.x1, wdata.y1, wdata.x2, wdata.y2);

            tap_spd += accel;
            v       += transform.forward * tap_spd;
            if (v.magnitude > max_spd)
            {
                transform.Translate(v.normalized * max_spd, Space.World);
            }
            else
            {
                transform.Translate(v, Space.World);
            }
            tap_spd *= damping;
            if (tap_spd < min_spd)
            {
                tap_spd = 0;
            }
        }
        else
        {
            // WalkinData has not changed because frame rate is faster than input
        }
    }