75 lines
1.8 KiB
C#
75 lines
1.8 KiB
C#
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;
|
||
|
|
}
|
||
|
|
}
|