Exemplo n.º 1
0
        /*
         * Draws the scene view helpers for BipedIK.Solvers
         * */
        public static void AddScene(BipedIKSolvers solvers, ref int selected)
        {
            // Selecting solvers
            if (Application.isPlaying) {
                for (int i = 0; i < solvers.ikSolvers.Length; i++) {
                    Handles.color = GetSolverColor(i);
                    if (solvers.ikSolvers[i].GetIKPositionWeight() > 0 && selected != i && solvers.ikSolvers[i].initiated) {
                        if (Handles.Button(solvers.ikSolvers[i].GetIKPosition(), Quaternion.identity, buttonSize, buttonSize, Handles.DotCap)) selected = i;
                    }
                }

                if ((solvers.pelvis.positionConstraint.weight > 0 || solvers.pelvis.rotationConstraint.weight > 0) && selected != solvers.ikSolvers.Length) {
                    Handles.color = GetSolverColor(7);
                    if (Handles.Button(solvers.pelvis.positionConstraint.position, Quaternion.identity, buttonSize, buttonSize, Handles.DotCap)) selected = solvers.ikSolvers.Length;
                }
            }

            // Draw limbs
            for (int i = 0; i < solvers.limbs.Length; i++) {
                IKSolverLimbInspector.AddScene(solvers.limbs[i] as IKSolverLimb, GetSolverColor(i), selected == i);
            }

            // Draw spine
            IKSolverHeuristicInspector.AddScene(solvers.spine, GetSolverColor(4), selected == 4);

            // Draw look at
            IKSolverLookAtInspector.AddScene(solvers.lookAt, GetSolverColor(5), selected == 5);

            // Draw aim
            IKSolverAimInspector.AddScene(solvers.aim, GetSolverColor(6), selected == 6);

            // Draw constraints
            ConstraintsInspector.AddScene(solvers.pelvis, GetSolverColor(7), selected == 7);
        }
Exemplo n.º 2
0
        /*
         * Draws the scene view helpers for BipedIK.Solvers
         * */
        public static void AddScene(BipedIKSolvers solvers, ref int selected)
        {
            // Draw limbs
            for (int i = 0; i < solvers.limbs.Length; i++)
            {
                IKSolverLimbInspector.AddScene(solvers.limbs[i] as IKSolverLimb, GetSolverColor(i), selected == i);
            }

            // Draw spine
            IKSolverHeuristicInspector.AddScene(solvers.spine, GetSolverColor(4), selected == 4);

            // Draw look at
            IKSolverLookAtInspector.AddScene(solvers.lookAt, GetSolverColor(5), selected == 5);

            // Draw aim
            IKSolverAimInspector.AddScene(solvers.aim, GetSolverColor(6), selected == 6);

            // Draw constraints
            ConstraintsInspector.AddScene(solvers.pelvis, GetSolverColor(7), selected == 7);

            // Selecting solvers
            if (Application.isPlaying)
            {
                for (int i = 0; i < solvers.ikSolvers.Length; i++)
                {
                    Handles.color = GetSolverColor(i);
                    if (solvers.ikSolvers[i].GetIKPositionWeight() > 0 && selected != i && solvers.ikSolvers[i].initiated)
                    {
                        if (Inspector.DotButton(solvers.ikSolvers[i].GetIKPosition(), Quaternion.identity, GetHandleSize(solvers.ikSolvers[i].GetIKPosition()), GetHandleSize(solvers.ikSolvers[i].GetIKPosition())))
                        {
                            selected = i;
                        }
                    }
                }

                if ((solvers.pelvis.positionWeight > 0 || solvers.pelvis.rotationWeight > 0) && selected != solvers.ikSolvers.Length)
                {
                    Handles.color = GetSolverColor(7);
                    if (Inspector.DotButton(solvers.pelvis.position, Quaternion.identity, GetHandleSize(solvers.pelvis.position), GetHandleSize(solvers.pelvis.position)))
                    {
                        selected = solvers.ikSolvers.Length;
                    }
                }
            }
        }