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; public double translateX = 5; 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 void Update() { foot.X = point.x; foot.Y = point.y * -1; //foot.Z = point.z * (invert ? -1 : 1); foot.Z = point.z * (invert ? 1 : -1); foot.rotationX = rotation.x; foot.rotationY = rotation.y * (invert ? -1 : 1); foot.rotationZ = rotation.z * (invert ? -1 : 1); 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); pos = foot.pos; pos.x = pos.x * (invert ? 1 : -1); pointShouldBe.transform.localPosition = pos; } }