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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
extern private static void WalkinVR_GetData(ref WalkinData dst);
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 } }