private void DrawEffectTimeScale()
 {
     ShiroiFXGUI.DrawTitle(TimeScaleTitle, TimeScaleSubtitleHeader);
     ShiroiFXGUI.DrawAnimatedOrConstantValue(TimeScaleContent, TimeScaleModeContent, ref effect.Mode,
                                             ref usesContantValue, ref effect.ConstantTimeScale, ref effect.AnimatedTimeScale);
     effect.Duration = EditorGUILayout.FloatField(DurationContent, effect.Duration);
 }
Example #2
0
        private void DrawVolume()
        {
            ShiroiFXGUI.DrawTitle(GeneralTitle, GeneralSubtitle);
            clipList.DoLayoutList();
            var useAudioController = serializedObject.FindProperty("UseAudioControllerIfPresent");

            EditorGUILayout.PropertyField(serializedObject.FindProperty("Volume"));
            if (!showPitch.target)
            {
                var volume      = ((AudioEffect)target).Volume;
                var volumeCurve = volume.Value;
                if (volumeCurve.mode == ParticleSystemCurveMode.Curve ||
                    volumeCurve.mode == ParticleSystemCurveMode.TwoCurves)
                {
                    serializedObject.ApplyModifiedProperties();
                    volumeCurve.mode = ParticleSystemCurveMode.Constant;
                    volume.Value     = volumeCurve;
                    serializedObject.Update();
                }
            }

            using (var group = new EditorGUILayout.FadeGroupScope(showPitch.faded)) {
                if (group.visible)
                {
                    EditorGUILayout.PropertyField(serializedObject.FindProperty("Pitch"));
                }
            }

            EditorGUILayout.PropertyField(useAudioController);
            showPitch.target = useAudioController.boolValue;
        }
Example #3
0
 private void DrawControllerConfig()
 {
     ShiroiFXGUI.DrawTitle(ControllerConfigTitle, ControllerConfigSubtitle);
     effect.ServicePriority = (ushort)EditorGUILayout.IntSlider(
         ServicePriorityContent,
         effect.ServicePriority,
         ushort.MinValue,
         ushort.MaxValue);
 }
Example #4
0
        public override void OnInspectorGUI()
        {
            header.DoLayout();
            var skin = EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector);

            EditorGUILayout.BeginVertical(skin.box);
            ShiroiFXGUI.DrawTitle(FOVTitle, FOVSubtitle);
            DrawEffect();
            DrawControllerConfig();
            EditorGUILayout.EndVertical();
        }
        public override void OnInspectorGUI()
        {
            header.DoLayout();
            var skin = EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector);

            EditorGUILayout.BeginVertical(skin.box);
            ShiroiFXGUI.DrawTitle(FreezeFrameTitle, FreezeFrameSubtitle);
            DrawEffectTimeScale();
            DrawUseTimeController();
            EditorGUILayout.EndVertical();
        }
Example #6
0
 private void DrawLoop()
 {
     ShiroiFXGUI.DrawTitle(LoopTitle, LoopSubtitle);
     ShiroiFXGUI.DrawFadeProperty(
         ref loops,
         serializedObject.FindProperty("Loop"),
         delegate {
         EditorGUI.indentLevel++;
         EditorGUILayout.PropertyField(serializedObject.FindProperty("LoopDuration"));
         EditorGUI.indentLevel--;
     }
         );
 }
        private void DrawUseTimeController()
        {
            ShiroiFXGUI.DrawTitle(TimeControllerTitle, TimeControllerSubtitle);
            usesTimeController.target = effect.UseTimeControllerIfPresent =
                EditorGUILayout.Toggle(UseTimeControllerContent, effect.UseTimeControllerIfPresent);
            if (EditorGUILayout.BeginFadeGroup(usesTimeController.faded))
            {
                effect.ServicePriority = (ushort)EditorGUILayout.IntSlider(
                    ServicePriority,
                    effect.ServicePriority,
                    ushort.MinValue,
                    ushort.MaxValue);
            }

            EditorGUILayout.EndFadeGroup();
        }
Example #8
0
        public override void OnInspectorGUI()
        {
            header.DoLayout();
            var skin = EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector);

            EditorGUILayout.BeginVertical(skin.box);
            ShiroiFXGUI.DrawTitle(HeaderTitle, HeaderSubtitle);
            EditorGUI.BeginChangeCheck();
            DrawVolume();
            DrawLoop();
            if (EditorGUI.EndChangeCheck())
            {
                serializedObject.ApplyModifiedProperties();
            }

            EditorGUILayout.EndVertical();
        }
Example #9
0
        public override void OnInspectorGUI()
        {
            var skin = EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector);

            EditorGUILayout.BeginVertical(skin.box);
            ShiroiFXGUI.DrawTitle(CompositeEffectTitle, CompositeEffectSubtitle);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Sub Effects", EditorStyles.boldLabel);
            var r          = GUILayout.Button(ShiroiFXEditorResources.AddEffect);
            var buttonRect = Event.current.type == EventType.Repaint ? GUILayoutUtility.GetLastRect() : default(Rect);

            if (r)
            {
                PopupWindow.Show(buttonRect, effectSelector);
            }

            EditorGUILayout.EndHorizontal();
            var toRemove = new List <Effect>();

            foreach (var subEffect in effect.Effects)
            {
                bool remove;
                DrawFX(subEffect, skin, out remove);
                if (remove)
                {
                    toRemove.Add(subEffect);
                }
            }

            foreach (var fx in toRemove)
            {
                effect.Effects.Remove(fx);
                DestroyImmediate(fx, true);
            }

            if (toRemove.Count > 0)
            {
                AssetDatabase.SaveAssets();
            }

            EditorGUILayout.EndVertical();
        }
        public override void OnInspectorGUI()
        {
            EffectHeader.DoLayout();
            GUISkin skin;

            using (var boxScope = ShiroiFXGUI.EffectBox(out skin)) {
                ShiroiFXGUI.DrawTitle(Title, Subtitle);
                ShiroiFXGUI.DrawAndApplyProperties(
                    serializedObject,
                    "UseShakeControllerIfPresent",
                    "Frequency",
                    "Intensity",
                    "Duration",
                    "Mode"
                    );
                effect.Dimensions =
                    (ObjectShakeEffect.ShakeDimension)EditorGUILayout.EnumFlagsField(DimensionsContent,
                                                                                     effect.Dimensions);
                serializedObject.Update();
            }
        }