Exemple #1
0
        void OnSceneGUI()
        {
            DrawWireCube t = target as DrawWireCube;

            if (t.IkPositionList.Count == 0)
            {
                t.IkPositionList = t.transform.GetComponent <Point>().iks;
            }

            for (int i = 0; i < t.IkPositionList.Count; i++)
            {
                IkPositions currentIK = t.IkPositionList[i];
                if (currentIK.target != null)
                {
                    // Default color, to be overwritten once determined IK part
                    Color targetColor = Color.red;

                    switch (currentIK.IK)
                    {
                    case AvatarIKGoal.LeftHand:
                        targetColor = Color.cyan;
                        break;

                    case AvatarIKGoal.RightHand:
                        targetColor = Color.yellow;
                        break;

                    case AvatarIKGoal.LeftFoot:
                        targetColor = Color.magenta;
                        break;

                    case AvatarIKGoal.RightFoot:
                        targetColor = Color.green;
                        break;

                    default:
                        Debug.Log("Invalid IK component!");
                        break;
                    }

                    Handles.color = targetColor;

                    Handles.CubeHandleCap(0, currentIK.target.position, currentIK.target.rotation, 0.05f, EventType.Repaint);

                    if (currentIK.hint != null)
                    {
                        Handles.CubeHandleCap(0, currentIK.hint.position, currentIK.hint.rotation, 0.05f, EventType.Repaint);
                    }
                }
                else
                {
                    // Assign IKs to editor
                    t.IkPositionList = t.transform.GetComponent <Point>().iks;
                }
            }
        }
Exemple #2
0
            void OnSceneGUI()
            {
                DrawWireCube t = target as DrawWireCube;

                if (t.ikPos.Count == 0)
                {
                    t.ikPos = t.transform.GetComponent <Point>().iks;
                }

                for (int i = 0; i < t.ikPos.Count; i++)
                {
                    if (t.ikPos[i].target != null)
                    {
                        Color targetColor = Color.red;

                        switch (t.ikPos[i].ik)
                        {
                        case AvatarIKGoal.LeftFoot:
                            targetColor = Color.magenta;
                            break;

                        case AvatarIKGoal.LeftHand:
                            targetColor = Color.cyan;
                            break;

                        case AvatarIKGoal.RightFoot:
                            targetColor = Color.green;
                            break;

                        case AvatarIKGoal.RightHand:
                            targetColor = Color.yellow;
                            break;
                        }
                        Handles.color = targetColor;
                        Handles.CubeCap(0, t.ikPos[i].target.position, t.ikPos[i].target.rotation, 0.05f);
                        if (t.ikPos[i].hint != null)
                        {
                            Handles.CubeCap(0, t.ikPos[i].hint.position, t.ikPos[i].hint.rotation, 0.05f);
                        }
                    }
                    else
                    {
                        t.ikPos = t.transform.GetComponent <Point>().iks;
                    }
                }
            }
        void OnSceneGUI()
        {
            DrawWireCube t = target as DrawWireCube;

            if (t.ikPos.Count == 0)
            {
                t.ikPos = t.transform.GetComponent <Point>().iks;
            }

            foreach (var ik in t.ikPos)
            {
                if (ik.target == null)
                {
                    continue;
                }

                var targetColor = Color.red;
                switch (ik.ik)
                {
                case AvatarIKGoal.LeftFoot:
                    targetColor = Color.blue;
                    break;

                case AvatarIKGoal.RightFoot:
                    targetColor = Color.green;
                    break;

                case AvatarIKGoal.LeftHand:
                    targetColor = Color.cyan;
                    break;

                case AvatarIKGoal.RightHand:
                    targetColor = Color.yellow;
                    break;
                }

                Handles.color = targetColor;

                Handles.CubeCap(0, ik.target.position, ik.target.rotation, 0.05f);
                if (ik.hint != null)
                {
                    Handles.CubeCap(0, ik.hint.position, ik.hint.rotation, 0.05f);
                }
            }
        }