From 98b0fb446636b8a90798e5df3d1c4f4a710f666a Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 15 Nov 2018 20:34:00 +0100 Subject: [PATCH] v8 added walking and rotation at the same time :D --- .../Hexapod/v15/Server/sqlite3/storage.ide | 4 +- .../v15/Server/sqlite3/storage.ide-shm | 2 +- .../v15/Server/sqlite3/storage.ide-wal | 2 +- 2018-unity-sim/Assets/Main.unity | 4 +- 2018-unity-sim/Assets/Walk3.cs | 143 ++++++++++++++++++ 2018-unity-sim/Assets/Walk3.cs.meta | 13 ++ 6 files changed, 162 insertions(+), 6 deletions(-) create mode 100644 2018-unity-sim/Assets/Walk3.cs create mode 100644 2018-unity-sim/Assets/Walk3.cs.meta diff --git a/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide b/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide index 5d2d0f2..46c9d53 100644 --- a/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide +++ b/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d608934d107d8fb52e3979ec301995b2514874c7355b03d7403dc07d6b1de5bd -size 1028096 +oid sha256:b7e84c2cc41a9930869a3ce7f30c1576199c4ea5b992dc992639be222c5b5f0d +size 1032192 diff --git a/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm b/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm index 5c6dedd..edc8ac8 100644 --- a/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm +++ b/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d594c616b0eb44e6b6f7b9ec1d4cba6468f7fc2519ad2ce517541d0ecb26e9a +oid sha256:f442027f263d76b460d56701cb0ed83c0d692eb0bc16595a9a6478c2465709e6 size 32768 diff --git a/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal b/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal index 37d99f5..abfae42 100644 --- a/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal +++ b/2018-unity-sim/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cbd9fdc6275465a9b1715e2ab62259322eee14a7b04282e195f4ac025bff3255 +oid sha256:044f7f16abf42991f6623612ca4708a352f354f41deb9d22b2de3affd0d3ae5e size 4140632 diff --git a/2018-unity-sim/Assets/Main.unity b/2018-unity-sim/Assets/Main.unity index 2f3e2f3..0e3c910 100644 --- a/2018-unity-sim/Assets/Main.unity +++ b/2018-unity-sim/Assets/Main.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b58d8e9b8bde13d367cf00d433c5a643695c6ae1e342bcbf448a7be16f5c7b34 -size 9969204 +oid sha256:741511ef61d3583727616b9883e21b71227cb8818b2941ef71c600f2241cbcdd +size 9969790 diff --git a/2018-unity-sim/Assets/Walk3.cs b/2018-unity-sim/Assets/Walk3.cs new file mode 100644 index 0000000..b6c43fc --- /dev/null +++ b/2018-unity-sim/Assets/Walk3.cs @@ -0,0 +1,143 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Walk3 : MonoBehaviour +{ + public List legs = new List(); + private List legsInitial = new List(); + + // Use this for initialization + void Start() + { + for (int index = 0; index < legs.Count; ++index) + { + legsInitial.Add(legs[index].GetComponent().point); + step2.Add(0); + step6.Add(false); + //step3.Add(0); + //step4.Add(new Vector3(0, 0, 0)); + step5.Add(new Vector3()); + } + } + + struct step + { + public Vector3 pos; + public float rotation; + public float height; + public bool inAir; + + public step(Vector3 p, float r, float h, bool i) + { + pos = p; + rotation = r; + height = 0; + inAir = i; + } + } + + // 1, 3, 5 -= 3 + + int offset(int i, int offset, int max) + { + return i - offset < 0 ? (max - (offset - i)) : i - offset; + } + + step[] s = { + new step(new Vector3(-1, 0, 0), -1, 0, false), + + new step(new Vector3(0, -2, 0), 0, -2, false), + + new step(new Vector3(0, 0, 0), 0, 0, false), // rest + + new step(new Vector3(1, 0, 0), 1, 0, false), + new step(new Vector3(1, 0, 0), 1, 0, false), + + new step(new Vector3(0, 0, 0), 0, 0, false), // rest + + new step(new Vector3(0, 2, 0), 0, 2, false), + new step(new Vector3(-1, 0, 0), -1, 0, true), + }; + + public int st = 5; + public int speed2 = 30; + int speed = 10; + + public float walkDirection = 0; + public float centerRotation = 0; + + int size = 8; + + public float walkspeed = 1; + + private List step2 = new List(); + //private List step3 = new List(); + //private List step4 = new List(); + private List step5 = new List(); + private List step6 = new List(); + + // Update is called once per frame + void FixedUpdate() + { + if (speed <= 0) + { + if (st >= size - 1) + st = 0; + else + st++; + + for (int index = 0; index < legs.Count; ++index) + { + int t = st; + if (index == 1 || index == 3 || index == 5) + { + t = offset(st, 4, size); + } + + if (s[t].inAir == false) + { + step2[index] = (centerRotation * s[t].rotation) / speed2; + + Vector3 t2 = s[t].pos; + t2.x *= walkspeed; + // rotate x,y around rotation. + step5[index] = (Quaternion.Euler(0, walkDirection, 0) * t2) / speed2; + + step6[index] = true; + } + else + { + Vector3 t2 = (legsInitial[index] + s[t].pos) - legs[index].GetComponent().point; + step5[index] = t2 / speed2; + + step6[index] = false; + } + } + + speed = speed2; + } + else + { + speed--; + makestep(); + } + } + + void makestep() + { + for (int index = 0; index < legs.Count; ++index) + { + legs[index].GetComponent().point += step5[index]; + if (step6[index]) + { + //legs[index].GetComponent().point += step5[index]; + + // rotate x,y around rotation. + legs[index].GetComponent().setWorldPos( + Quaternion.Euler(0, step2[index], 0) * legs[index].GetComponent().getWorldPos() + ); + } + } + } +} diff --git a/2018-unity-sim/Assets/Walk3.cs.meta b/2018-unity-sim/Assets/Walk3.cs.meta new file mode 100644 index 0000000..67297d2 --- /dev/null +++ b/2018-unity-sim/Assets/Walk3.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: a4266f2a53eea3a43972b07e077212bc +timeCreated: 1542307321 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: