Files
Hexapod_Simulation_Unity/Assets/Leg.cs
T

72 lines
1.7 KiB
C#
Raw Normal View History

2018-11-10 20:44:41 +01:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Leg : MonoBehaviour {
public Transform Hip1;
public Transform Hip2;
public Transform Knie;
public double a1 = 0;
public double a2 = 0;
public double a3 = 0;
public Vector3 point = new Vector3(10, 10, 0);
public Quaternion rotation = new Quaternion(0, 0, 0, 0);
public bool invert = false;
2018-11-10 23:54:58 +01:00
public double translateX = 0;
2018-11-10 20:44:41 +01:00
public double translateY = 0;
public double translateZ = 0;
public GameObject pointShouldBe;
public Vector3 pos = new Vector3(0, 0, 0);
private Foot foot = new Foot();
// Use this for initialization
void Start () {
}
// Update is called once per frame
2018-11-10 23:54:58 +01:00
public void FixedUpdate()
2018-11-10 20:44:41 +01:00
{
foot.X = point.x;
2018-11-10 23:23:03 +01:00
foot.Y = point.y;
foot.Z = point.z;
2018-11-10 20:44:41 +01:00
foot.rotationX = rotation.x;
2018-11-10 23:23:03 +01:00
foot.rotationY = rotation.y;
foot.rotationZ = rotation.z;
2018-11-10 20:44:41 +01:00
foot.translateX = translateX;
foot.translateY = translateY;
foot.translateZ = translateZ;
foot.invert = invert;
foot.setleg();
if (!invert)
{
a1 = foot.O1 - 90;
a2 = 90 - foot.O2;
a3 = foot.O3 - 90;
}
else
{
a1 = (foot.O1 - 90)*-1;
a2 = 90 - foot.O2;
a3 = foot.O3 - 90;
}
Hip1.transform.localRotation = Quaternion.Euler(0, (float)a1, 0);
Hip2.transform.localRotation = Quaternion.Euler((float)a2, 0, 0);
Knie.transform.localRotation = Quaternion.Euler((float)a3, 0, 0);
2018-11-10 23:23:03 +01:00
pointShouldBe.transform.localPosition = foot.pos;
2018-11-10 20:44:41 +01:00
}
}