Пример #1
0
        private void DrawGUI_Anim(DialogPortrait port)
        {
            Say say = target as Say;

            var preset = port.GetPresetData();

            if (preset == null)
            {
                return;
            }
            var animPreset = say.animPressetIndex;

            string[] animPresetNames = null;
            if (preset.animPresets != null && preset.animPresets.Length > 0)
            {
                animPresetNames = new string[preset.animPresets.Length + 1];
                for (int i = 0; i < preset.animPresets.Length; i++)
                {
                    animPresetNames[0] = "Custom";
                    var item = preset.animPresets[i];
                    if (string.IsNullOrEmpty(item.name))
                    {
                        animPresetNames[i + 1] = "Unkonw-" + i;
                    }
                    else
                    {
                        animPresetNames[i + 1] = item.name;
                    }
                }
            }
            if (animPresetNames != null && animPresetNames.Length > 0)
            {
                animPreset = EditorGUILayout.Popup("AnimPreset:", animPreset + 1, animPresetNames) - 1;
            }
            else
            {
                animPreset = -1;
            }
            //say.portraitPresetIndex = portPreset;
            animPressetIndexProp.intValue = animPreset;

            if (animPreset >= 0)
            {
                GUILayout.Label("Anim:" + animPresetNames[animPreset]);
            }
            else
            if (animPreset < 0 && port != null &&
                port.charLayers.Length > 0)
            {
                //GUILayout.Label("Custom Anim:");
                //var setting = say.animClips;

                //if (setting == null
                //|| setting.Length != port.charLayers.Length
                //)
                //{
                //    setting = new int[port.charLayers.Length];
                //    for (int i = 0 ; i < setting.Length ; i++)
                //    {
                //        setting[i] = -1;
                //    }
                //}
                //for (int i = 0 ; i < port.charLayers.Length ; i++)
                //{
                //    string[] popStr = null;
                //    if (port.charLayers[i].sps != null && port.charLayers[i].sps.Count > 0)
                //    {
                //        popStr = new string[port.charLayers[i].sps.Count + 1];
                //        popStr[0] = "Default";
                //        for (int j = 0 ; j < port.charLayers[i].sps.Count ; j++)
                //        {
                //            Sprite sp = port.charLayers[i].sps[j];
                //            popStr[j + 1] = ((sp == null) ? "Null" : sp.name);
                //        }

                //        setting[i] = EditorGUILayout.Popup(
                //            new GUIContent(string.Format("    Layer{0} :", i), "")
                //            , setting[i] + 1
                //            , popStr) - 1;
                //    }
                //}

                //portraitLayerSettingProp.ClearArray();
                //for (int i = setting.Length - 1 ; i >= 0 ; i--)
                //{
                //    portraitLayerSettingProp.InsertArrayElementAtIndex(0);
                //    var prop = portraitLayerSettingProp.GetArrayElementAtIndex(0);
                //    prop.intValue = setting[i];
                //}

                EditorGUILayout.PropertyField(animClipsProp, new GUIContent("Custom Anim"), true);
            }
        }
Пример #2
0
        private void DrawGUI_Portraits(DialogPortrait port)
        {
            Say say = target as Say;

            var preset = port.GetPresetData();

            if (preset == null)
            {
                return;
            }
            var portPreset = say.portraitPresetIndex;

            string[] portPresetNames = null;
            if (preset.portraitPresets != null && preset.portraitPresets.Length > 0)
            {
                portPresetNames = new string[preset.portraitPresets.Length + 1];
                for (int i = 0; i < preset.portraitPresets.Length; i++)
                {
                    portPresetNames[0] = "Custom";
                    PortraitPresetToken item = preset.portraitPresets[i];
                    if (string.IsNullOrEmpty(item.name))
                    {
                        portPresetNames[i + 1] = "Unkonw-" + i;
                    }
                    else
                    {
                        portPresetNames[i + 1] = item.name;
                    }
                }
            }
            if (portPresetNames != null && portPresetNames.Length > 0)
            {
                portPreset = EditorGUILayout.Popup("PortPreset:", portPreset + 1, portPresetNames) - 1;
            }
            else
            {
                portPreset = -1;
            }
            //say.portraitPresetIndex = portPreset;
            portraitPresetIndexProp.intValue = portPreset;

            if (portPreset >= 0)
            {
                GUILayout.Label("Portrait:" + portPresetNames[portPreset]);
            }
            else
            if (portPreset < 0 && port != null &&
                port.charLayers.Length > 0)
            {
                GUILayout.Label("Custom Portrait:");
                var setting = say.portraitLayerSetting;

                if (setting == null ||
                    setting.Length != port.charLayers.Length
                    )
                {
                    setting = new int[port.charLayers.Length];
                    for (int i = 0; i < setting.Length; i++)
                    {
                        setting[i] = -1;
                    }
                }
                for (int i = 0; i < port.charLayers.Length; i++)
                {
                    string[] popStr = null;
                    if (port.charLayers[i].sps != null && port.charLayers[i].sps.Count > 0)
                    {
                        popStr    = new string[port.charLayers[i].sps.Count + 1];
                        popStr[0] = "Default";
                        for (int j = 0; j < port.charLayers[i].sps.Count; j++)
                        {
                            Sprite sp = port.charLayers[i].sps[j];
                            popStr[j + 1] = ((sp == null) ? "Null" : sp.name);
                        }

                        setting[i] = EditorGUILayout.Popup(
                            new GUIContent(string.Format("    Layer{0} :", i), "")
                            , setting[i] + 1
                            , popStr) - 1;
                    }
                }

                portraitLayerSettingProp.ClearArray();
                for (int i = setting.Length - 1; i >= 0; i--)
                {
                    portraitLayerSettingProp.InsertArrayElementAtIndex(0);
                    var prop = portraitLayerSettingProp.GetArrayElementAtIndex(0);
                    prop.intValue = setting[i];
                }
            }
        }