コード例 #1
0
    private void ShowIk()
    {
        EditorGUILayout.Space();

        if (_melee)
        {
            EditorGUILayout.LabelField("NOTE: Melee Weapons are handled entirely by animation. Ik is not used.", EditorStyles.helpBox);
            EditorGUILayout.Space();
            return;
        }

        EditorGUILayout.LabelField("NOTE: Configure weapons for the Right Hand. Weapons held by the Left Hand is currently disabled.", EditorStyles.helpBox);

        EditorGUILayout.Space();
        EditorUtils.AddBlackLine();
        EditorUtils.AddBlackLine();
        EditorGUILayout.Space();

        EditorGUILayout.LabelField("Relative Weapon Position:", EditorStyles.boldLabel);
        GUI.color = Color.yellow;
        EditorGUILayout.LabelField("Specify the weapon's relative offset from the Pivot.", EditorStyles.helpBox);
        GUI.color = Color.white;
        EditorGUIUtility.labelWidth = 150;

        EditorGUILayout.BeginHorizontal();
        EditorGUIUtility.labelWidth = 60;
        _x.Stats.MountPivot         = (MountPivot)EditorGUILayout.EnumPopup(_pivot, _x.Stats.MountPivot);
        _x.Stats.WeaponHeldInHand   = (Hand)EditorGUILayout.EnumPopup(_hand, _x.Stats.WeaponHeldInHand);
        EditorGUILayout.EndHorizontal();



        bool wm = EditorGUIUtility.wideMode;

        EditorGUIUtility.wideMode = false;

        EditorGUILayout.BeginHorizontal();
        EditorGUIUtility.labelWidth = 1;
        GUILayout.Label(EditorGUIUtility.IconContent("MoveTool"));
        EditorGUIUtility.labelWidth = 200;
        _x.Stats.PositionOffset     = EditorGUILayout.Vector3Field(_offsetP, _x.Stats.PositionOffset);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        EditorGUIUtility.labelWidth = 1;
        GUILayout.Label(EditorGUIUtility.IconContent("RotateTool"));
        EditorGUIUtility.labelWidth = 200;
        _x.Stats.RotationOffset     = EditorGUILayout.Vector3Field(_offsetR, _x.Stats.RotationOffset);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        EditorGUIUtility.labelWidth = 1;
        GUILayout.Label(EditorGUIUtility.IconContent("RectTool"));
        _x.Stats.UseElbowHintR       = EditorGUILayout.Toggle("", _x.Stats.UseElbowHintR);
        EditorGUIUtility.labelWidth  = 200;
        _x.Stats.DominantElbowOffset = EditorGUILayout.Vector3Field(_offsetElbowD, _x.Stats.DominantElbowOffset);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        EditorGUIUtility.labelWidth = 1;
        GUILayout.Label(EditorGUIUtility.IconContent("RectTool"));
        _x.Stats.UseElbowHintL          = EditorGUILayout.Toggle("", _x.Stats.UseElbowHintL);
        EditorGUIUtility.labelWidth     = 200;
        _x.Stats.NonDominantElbowOffset = EditorGUILayout.Vector3Field(_offsetElbowN, _x.Stats.NonDominantElbowOffset);
        EditorGUILayout.EndHorizontal();

        EditorGUIUtility.wideMode = wm;
        EditorGUILayout.LabelField("Hint: Do not use 0,0,0 for elbow goals (that's the shoulder position).", EditorStyles.helpBox);
        EditorGUILayout.Space();
        EditorUtils.AddBlackLine();
        EditorUtils.AddBlackLine();
        EditorGUILayout.Space();


        EditorGUILayout.LabelField("IK (Non-Dominant) Hand Position:", EditorStyles.boldLabel);
        EditorGUIUtility.labelWidth  = 150;
        _x.Stats.NonDominantHandGoal = EditorGUILayout.ObjectField(_nonDomGoal, _x.Stats.NonDominantHandGoal, typeof(Transform), true) as Transform;

        // I don't think these are necessary anymore.
        //_x.Stats.NonDominantHandPos = EditorGUILayout.Vector3Field(_nonDomHandP, _x.Stats.NonDominantHandPos);
        //_x.Stats.NonDominantHandRot = EditorGUILayout.Vector3Field(_nonDomHandR, _x.Stats.NonDominantHandRot);


        EditorGUILayout.Space();
        EditorUtils.AddBlackLine();
        EditorUtils.AddBlackLine();
        EditorGUILayout.Space();
    }