Beispiel #1
0
        private void DrawParts(Rect rect)
        {
            GUILayout.BeginArea(rect);
            {
                EditorGUILayout.BeginVertical();
                {
                    EGUILayout.DrawBoxHeader("Part Data", EGUIStyles.BoxedHeaderCenterStyle, GUILayout.ExpandWidth(true));
                    if (currentCreatorData != null && partOutputDataDrawer != null)
                    {
                        partOutputDataDrawer.OnGUILayout();


                        GUILayout.FlexibleSpace();

                        if (GUILayout.Button("Create Parts"))
                        {
                            AvatarSkeletonPartCreatorData partOutputData = currentCreatorData.skeletonPartData;
                            foreach (var data in partOutputData.partDatas)
                            {
                                if (!CreatePart(data))
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
                EditorGUILayout.EndVertical();
            }
            GUILayout.EndArea();
        }
Beispiel #2
0
        protected override void OnDrawProperty(string label)
        {
            if (drawerObject == null)
            {
                drawerObject = new DrawerObject(Property.Value);
            }
            if (Property.IsArrayElement)
            {
                AvatarPartCreatorData partCreatorData = (AvatarPartCreatorData)Property.Value;
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.LabelField(label, UnityEngine.GUILayout.Width(25));
                    EditorGUILayout.BeginVertical();
                    {
                        drawerObject.OnGUILayout();
                    }
                    EditorGUILayout.EndVertical();
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.Space();

                EGUI.BeginGUIBackgroundColor(Color.cyan);
                {
                    if (GUILayout.Button("Create Part"))
                    {
                        CreatePartBtnClick?.Invoke(partCreatorData);
                    }
                    if (GUILayout.Button("Preview Part"))
                    {
                        PreviewPartBtnClick?.Invoke(partCreatorData);
                    }
                }
                EGUI.EndGUIBackgroundColor();
            }
            else
            {
                EditorGUILayout.LabelField(label);
                EditorGUI.indentLevel++;
                {
                    drawerObject.OnGUILayout();
                }
                EditorGUI.indentLevel--;
            }
        }
Beispiel #3
0
        public void OnDrawProperty(Rect rect)
        {
            if (!string.IsNullOrEmpty(DetailName))
            {
                EditorGUILayout.LabelField(DetailName, EditorStyles.wordWrappedLabel);
            }
            Type actionType = Data.GetType();

            EditorGUILayout.LabelField(actionType.Name);

            dataDrawerObject.OnGUILayout();
        }
Beispiel #4
0
        private void DrawSkeleton(Rect rect)
        {
            GUILayout.BeginArea(rect);
            {
                EditorGUILayout.BeginVertical();
                {
                    EGUILayout.DrawBoxHeader("Skeleton Data", EGUIStyles.BoxedHeaderCenterStyle, GUILayout.ExpandWidth(true));
                    if (currentCreatorData != null && skeletonCreatorDataDrawer != null)
                    {
                        skeletonCreatorDataDrawer.OnGUILayout();

                        AvatarSkeletonCreatorData skeletonCreatorData = currentCreatorData.skeletonData;

                        string     targetPrefabPath = skeletonCreatorData.GetSkeletonPrefabPath();
                        GameObject targetPrefab     = null;
                        if (!string.IsNullOrEmpty(targetPrefabPath))
                        {
                            targetPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(targetPrefabPath);
                        }
                        EditorGUILayout.Space();
                        EditorGUILayout.Space();

                        EditorGUILayout.ObjectField("Output", targetPrefab, typeof(GameObject), false);

                        EditorGUILayout.Space();

                        GUILayout.FlexibleSpace();

                        if (GUILayout.Button("Create Skeleton"))
                        {
                            GameObject skeletonPrefab = AvatarCreatorUtil.CreateSkeleton(skeletonCreatorData);
                            if (skeletonPrefab == null)
                            {
                                EditorUtility.DisplayDialog("Error", "Create Failed.\n Please view the details from the console!!!", "OK");
                            }
                            else
                            {
                                SelectionUtility.PingObject(skeletonPrefab);
                            }
                        }

                        if (GUILayout.Button("Preview Skeleton"))
                        {
                            PreviewSkeleton();
                        }
                    }
                }
                EditorGUILayout.EndVertical();
            }
            GUILayout.EndArea();
        }
Beispiel #5
0
 private void OnGUI()
 {
     drawerObj.OnGUILayout();
 }