private static GameObject createCommon(string name) { Vector3 pos = selectPosition(); GameObject top = new GameObject(name); top.transform.position = pos; GameObject root = new GameObject("Anim root"); root.transform.parent = top.transform; root.transform.position = pos; // root.transform.localPosition = new Vector3(); MoveenStepper5 stepper = root.AddComponent <MoveenStepper5>(); stepper.participateInFixedUpdate = true; stepper.participateInUpdate = true; root.AddComponent <MoveenSurfaceDetector1>(); root.AddComponent <Rigidbody>(); root.AddComponent <MoveenTransformCopier>(); GameObject target = new GameObject("Target"); target.transform.parent = top.transform; target.transform.position = pos; MoveenBridle1 bridle = target.AddComponent <MoveenBridle1>(); bridle.maxSpeed = 2; bridle.moveenStepper5 = stepper; return(root); }
public static void initHeavyRun(MoveControl1 mc) { initHeavy(mc); MoveenStepper5 bti = mc.moveen; bti.engine.bodyLenHelp = -0.5f; mc.speed = 2; }
public void OnEnable() { MoveenStepper5 stepper = gameObject.GetComponent <MoveenStepper5>(); if (stepper != null) { stepper.engine.surfaceDetector = detector; } }
public static void initAgile(MoveControl1 mc) { MoveenStepper5 bti = mc.moveen; bti.engine.cogUpDown = 1; bti.engine.cogAngle = 0.3f; bti.engine.hipFlexibility = 1; bti.engine.bodyLenHelp = 0.6f; // bti.engine.jumpy = 1; }
public static void initConfident(MoveControl1 mc) { MoveenStepper5 bti = mc.moveen; bti.engine.cogUpDown = -1; bti.engine.cogAngle = -0.1f; bti.engine.hipFlexibility = 0.4f; bti.engine.bodyLenHelp = 0.6f; // bti.engine.jumpy = 1; }
public static void initBoxer(MoveControl1 mc) { // bti.engine.steps[0].undockPauseMax = 0.5f;//для прыжков // bti.engine.steps[1].undockPauseMax = 0.5f; MoveenStepper5 bti = mc.moveen; // bti.engine.useDistraction = true; bti.engine.cogUpDown = 1; bti.engine.cogAngle = 0.15f; bti.engine.hipFlexibility = 0; bti.engine.bodyLenHelp = -0.6f; // bti.engine.jumpy = 10; }
public static void initWounded(MoveControl1 mc) { MoveenStepper5 bti = mc.moveen; //TODO edit one-leg-g //TODO comfortRadius * 2 // bti.engine.stepUndockPauseMax = 0.5f; bti.engine.steps[0].undockPause = 0.5f; bti.engine.steps[1].undockPause = 0; bti.engine.steps[0].stepSpeedMin = 3; bti.engine.steps[1].stepSpeedMin = 4; mc.speed = 1; bti.engine.cogUpDown = -1; bti.engine.cogAngle = 0.3f; bti.engine.cogAccel = 3; bti.engine.hipFlexibility = 0; bti.engine.bodyLenHelp = -1; // bti.engine.jumpy = 5; }
public static void resetGait(MoveControl1 mc) { mc.speed = 4; MoveenStepper5 bti = mc.moveen; // bti.engine.steps[0].stepSpeedMin = 4; // bti.engine.steps[1].stepSpeedMin = 4; // bti.engine.steps[0].stepSpeedBodyMul = 1.2f; // bti.engine.steps[1].stepSpeedBodyMul = 1.2f; bti.engine.steps[0].undockPause = 0; bti.engine.steps[1].undockPause = 0; bti.engine.downOnStep = 0.7f; // bti.engine.virtualPosMaxDif = 1; bti.engine.cogAccel = 10; bti.engine.bodyLenHelp = 0; // bti.engine.useDistraction = false; }
public static void initHeavy(MoveControl1 mc) { MoveenStepper5 bti = mc.moveen; //TODO edit one-leg-g //TODO comfortRadius * 2 // bti.engine.stepUndockPauseMax = 0.5f; bti.engine.steps[0].undockPause = 0.5f; bti.engine.steps[1].undockPause = 0.5f; bti.engine.downOnStep = 0.8f; mc.speed = 1; // bti.engine.useDistraction = false; bti.engine.cogUpDown = -1; bti.engine.cogAngle = 0.15f; bti.engine.cogAccel = 2; bti.engine.hipFlexibility = 0; // bti.bodyLenHelp = -0.5f; // мы хотим чтобы стрелял прямо... мб во время ходьбы он д помогать, но не во время стрельбы? // bti.engine.jumpy = 5; }
public void Update() { if (bti == null) { mc = GetComponent <MoveControl1>(); if (mc == null) { return; } bti = mc.moveen; if (bti == null) { return; } } if (Input.GetKey(KeyCode.Alpha1)) { selectButton(0); } if (Input.GetKey(KeyCode.Alpha2)) { selectButton(1); } if (Input.GetKey(KeyCode.Alpha3)) { selectButton(2); } if (Input.GetKey(KeyCode.Alpha4)) { selectButton(3); } if (Input.GetKey(KeyCode.Alpha5)) { selectButton(4); } }
public void OnEnable() { component = (MoveenStepper5)target; }
private static void OnDrawGizmos(MoveenStepper5 component, GizmoType gizmoType) { if (!component.isActiveAndEnabled) { return; } Vector3 distSum = new Vector3(); for (var i = 0; i < component.engine.steps.Count; i++) { var step = component.engine.steps[i]; //step dial float r1 = 10; float r2 = 20; float airTime = step.lastStepLen / step.legSpeed * 1.5f; float earthTime = step.lastStepLen / step.bodySpeed.length(); float dockedAngle = MyMath.PI * 2 * earthTime / (airTime + earthTime); // float angle = MyMath.PI; if (component.engine.showPhaseDials) { Vector2 dialCenter = new Vector2(r2 * 2 + i * (r2 * 2.5f), r2 * 2); Gizmos.color = Color.green; UnityEditorUtils.fillStripe2D(dialCenter, r1, r2, 20); Gizmos.color = Color.red; UnityEditorUtils.fillArcStripe2D(dialCenter, r1, r2, 20, MyMath.PI * 2 * 3 / 4 - dockedAngle / 2, MyMath.PI * 2 * 3 / 4 + dockedAngle / 2); float a2; if (step.dockedState) { a2 = MyMath.PI * 2 * 3 / 4 - dockedAngle / 2 + dockedAngle * step.progress; } else { a2 = MyMath.PI * 2 * 3 / 4 + dockedAngle / 2 + (MyMath.PI * 2 - dockedAngle) * step.progress; } Gizmos.color = new Color(0.8f, 0.8f, 0.8f, 1); UnityEditorUtils.fillArcStripe2D(dialCenter, r2 - 5, r2 + 2, 5, a2, a2 + step.beFaster); Gizmos.color = step.dockedState ? Color.white : Color.black; drawNeedle(a2, dialCenter, r1, r2); } Gizmos.color = Color.green; if (component.engine.collectSteppingHistory && Application.isPlaying) { CounterStacksCollection history = step.paramHistory; drawHistory(history, historyBeans, i); } } distSum = MyMath.max(distSum, new Vector3(0.5f, 0.5f, 0.5f)); Gizmos.color = Color.yellow; Gizmos.matrix = Matrix4x4.TRS(component.targetPos, component.targetRot, new Vector3(1, 1, 1)); Gizmos.DrawWireCube(Vector3.zero, distSum * 0.2f); Gizmos.matrix = Matrix4x4.identity; Gizmos.color = Color.green; if (component.hip != null) { Gizmos.matrix = Matrix4x4.TRS(component.engine.hipPosAbs, component.engine.hipRotAbs, new Vector3(1, 1, 1)); Gizmos.DrawWireCube(Vector3.zero, distSum / 2); Gizmos.matrix = Matrix4x4.identity; } Gizmos.matrix = Matrix4x4.TRS(component.transform.position, component.transform.rotation, new Vector3(1, 1, 1)); UnityEditorUtils.arrow(); Gizmos.DrawWireCube(Vector3.zero, distSum); Gizmos.matrix = Matrix4x4.identity; if (Application.isPlaying) { Gizmos.color = Color.cyan; Gizmos.DrawWireSphere(component.engine.imBody, 0.2f); Gizmos.color = new Color(0, 0, 1); Gizmos.DrawWireSphere(component.engine.imCenter, 0.4f); Gizmos.color = Color.green; Gizmos.DrawWireSphere(component.engine.virtualForLegs, 0.35f); } Gizmos.color = new Color(1, 0.0f, 1); Gizmos.DrawWireSphere(component.engine.calculatedCOG, 0.1f); }