示例#1
0
        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);
        }
示例#2
0
        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;
            }
        }
示例#4
0
        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;
        }
示例#5
0
        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;
        }
示例#6
0
        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;
        }
示例#7
0
        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;
        }
示例#8
0
        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;
        }
示例#9
0
        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;
        }
示例#10
0
 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);
        }