// Use this for initialization
 void Start()
 {
     timer           = minDistBomb;
     dir             = 1;
     maxEdge         = 12;
     landing         = 0;
     landingPosition = landingPositionObj.transform.position;
     maxX            = 8f;
     minX            = -8f;
     maxY            = 4f;
     minY            = 0f;
     butImage        = button.GetComponent <Image>();
 }
Example #2
0
    public override void OnInspectorGUI()
    {
        ETCButton t = (ETCButton)target;


        EditorGUILayout.Space();


        t.gameObject.name = EditorGUILayout.TextField("Button name", t.gameObject.name);
        t.axis.name       = t.gameObject.name;

        t.activated = ETCGuiTools.Toggle("Activated", t.activated, true);
        t.visible   = ETCGuiTools.Toggle("Visible", t.visible, true);

        EditorGUILayout.Space();
        t.useFixedUpdate        = ETCGuiTools.Toggle("Use Fixed Update", t.useFixedUpdate, true);
        t.isUnregisterAtDisable = ETCGuiTools.Toggle("Unregister at disabling time", t.isUnregisterAtDisable, true);

        #region Position & Size
        t.showPSInspector = ETCGuiTools.BeginFoldOut("Position & Size", t.showPSInspector);
        if (t.showPSInspector)
        {
            ETCGuiTools.BeginGroup(); {
                // Anchor
                t.anchor = (ETCBase.RectAnchor)EditorGUILayout.EnumPopup("Anchor", t.anchor);
                if (t.anchor != ETCBase.RectAnchor.UserDefined)
                {
                    t.anchorOffet = EditorGUILayout.Vector2Field("Offset", t.anchorOffet);
                }

                EditorGUILayout.Space();

                // Area sprite ratio
                if (t.GetComponent <Image>().sprite != null)
                {
                    Rect  rect  = t.GetComponent <Image>().sprite.rect;
                    float ratio = rect.width / rect.height;

                    // Area Size
                    if (ratio >= 1)
                    {
                        float s = EditorGUILayout.FloatField("Size", t.rectTransform().rect.width);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, s);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, s / ratio);
                    }
                    else
                    {
                        float s = EditorGUILayout.FloatField("Size", t.rectTransform().rect.height);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, s);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, s * ratio);
                    }
                }
            } ETCGuiTools.EndGroup();
        }
        #endregion

        #region Behaviour
        t.showBehaviourInspector = ETCGuiTools.BeginFoldOut("Behaviour", t.showBehaviourInspector);
        if (t.showBehaviourInspector)
        {
            ETCGuiTools.BeginGroup(); {
                EditorGUILayout.Space();
                ETCGuiTools.BeginGroup(5); {
                    t.enableKeySimulation = ETCGuiTools.Toggle("Enable Unity axes", t.enableKeySimulation, true);
                    if (t.enableKeySimulation)
                    {
                        t.allowSimulationStandalone = ETCGuiTools.Toggle("Allow Unity axes on standalone", t.allowSimulationStandalone, true);
                        t.visibleOnStandalone       = ETCGuiTools.Toggle("Force visible", t.visibleOnStandalone, true);
                    }
                } ETCGuiTools.EndGroup();

                #region General propertie
                EditorGUI.indentLevel++;
                t.axis.showGeneralInspector = EditorGUILayout.Foldout(t.axis.showGeneralInspector, "General setting");
                if (t.axis.showGeneralInspector)
                {
                    ETCGuiTools.BeginGroup(20); {
                        EditorGUI.indentLevel--;

                        t.isSwipeIn  = ETCGuiTools.Toggle("Swipe in", t.isSwipeIn, true);
                        t.isSwipeOut = ETCGuiTools.Toggle("Swipe out", t.isSwipeOut, true);

                        t.axis.isValueOverTime = ETCGuiTools.Toggle("Value over the time", t.axis.isValueOverTime, true);
                        if (t.axis.isValueOverTime)
                        {
                            ETCGuiTools.BeginGroup(5); {
                                t.axis.overTimeStep     = EditorGUILayout.FloatField("Step", t.axis.overTimeStep);
                                t.axis.maxOverTimeValue = EditorGUILayout.FloatField("Max value", t.axis.maxOverTimeValue);
                            } ETCGuiTools.EndGroup();
                        }
                        t.axis.speed = EditorGUILayout.FloatField("Value", t.axis.speed);

                        EditorGUI.indentLevel++;
                    } ETCGuiTools.EndGroup();
                }
                EditorGUI.indentLevel--;
                #endregion

                #region Direct Action
                EditorGUI.indentLevel++;
                t.axis.showDirectInspector = EditorGUILayout.Foldout(t.axis.showDirectInspector, "Direction ation");
                if (t.axis.showDirectInspector)
                {
                    ETCGuiTools.BeginGroup(20); {
                        EditorGUI.indentLevel--;

                        t.axis.autoLinkTagPlayer = EditorGUILayout.ToggleLeft("Auto link on tag", t.axis.autoLinkTagPlayer, GUILayout.Width(200));
                        if (t.axis.autoLinkTagPlayer)
                        {
                            t.axis.autoTag = EditorGUILayout.TagField("", t.axis.autoTag);
                        }
                        else
                        {
                            t.axis.directTransform = (Transform)EditorGUILayout.ObjectField("Direct action to", t.axis.directTransform, typeof(Transform), true);
                        }

                        EditorGUILayout.Space();

                        t.axis.actionOn = (ETCAxis.ActionOn)EditorGUILayout.EnumPopup("Action on", t.axis.actionOn);

                        t.axis.directAction = (ETCAxis.DirectAction)EditorGUILayout.EnumPopup("Action", t.axis.directAction);

                        if (t.axis.directAction != ETCAxis.DirectAction.Jump)
                        {
                            t.axis.axisInfluenced = (ETCAxis.AxisInfluenced)EditorGUILayout.EnumPopup("Affected axis", t.axis.axisInfluenced);
                        }
                        else
                        {
                            EditorGUILayout.HelpBox("Required character controller", MessageType.Info);
                            t.axis.gravity = EditorGUILayout.FloatField("Gravity", t.axis.gravity);
                        }
                        EditorGUI.indentLevel++;
                    } ETCGuiTools.EndGroup();
                }
                EditorGUI.indentLevel--;
                #endregion

                #region Unity axis
                EditorGUI.indentLevel++;
                t.axis.showSimulatinInspector = EditorGUILayout.Foldout(t.axis.showSimulatinInspector, "Unity axes");
                if (t.axis.showSimulatinInspector)
                {
                    ETCGuiTools.BeginGroup(20); {
                        EditorGUI.indentLevel--;
                        int index    = System.Array.IndexOf(unityAxes, t.axis.unityAxis);
                        int tmpIndex = EditorGUILayout.Popup(index, unityAxes);
                        if (tmpIndex != index)
                        {
                            t.axis.unityAxis = unityAxes[tmpIndex];
                        }
                        EditorGUI.indentLevel++;
                    } ETCGuiTools.EndGroup();
                }

                EditorGUI.indentLevel--;
                #endregion
            } ETCGuiTools.EndGroup();
        }
        #endregion

        #region Sprite
        t.showSpriteInspector = ETCGuiTools.BeginFoldOut("Sprites", t.showSpriteInspector);
        if (t.showSpriteInspector)
        {
            ETCGuiTools.BeginGroup(); {
                // Normal state
                EditorGUILayout.BeginHorizontal();
                EditorGUI.BeginChangeCheck();
                t.normalSprite = (Sprite)EditorGUILayout.ObjectField("Normal", t.normalSprite, typeof(Sprite), true, GUILayout.MinWidth(100));
                t.normalColor  = EditorGUILayout.ColorField("", t.normalColor, GUILayout.Width(50));
                if (EditorGUI.EndChangeCheck())
                {
                    t.GetComponent <Image>().sprite = t.normalSprite;
                    t.GetComponent <Image>().color  = t.normalColor;
                }

                EditorGUILayout.EndHorizontal();
                EditorGUILayout.Space();

                if (t.normalSprite)
                {
                    Rect spriteRect = new Rect(t.normalSprite.rect.x / t.normalSprite.texture.width,
                                               t.normalSprite.rect.y / t.normalSprite.texture.height,
                                               t.normalSprite.rect.width / t.normalSprite.texture.width,
                                               t.normalSprite.rect.height / t.normalSprite.texture.height);
                    GUILayout.Space(8);
                    Rect lastRect = GUILayoutUtility.GetLastRect();
                    lastRect.x      = 20;
                    lastRect.width  = 100;
                    lastRect.height = 100;

                    GUILayout.Space(100);

                    ETCGuiTools.DrawTextureRectPreview(lastRect, spriteRect, t.normalSprite.texture, Color.white);
                }

                // Press state
                EditorGUILayout.BeginHorizontal();
                t.pressedSprite = (Sprite)EditorGUILayout.ObjectField("Pressed", t.pressedSprite, typeof(Sprite), true, GUILayout.MinWidth(100));
                t.pressedColor  = EditorGUILayout.ColorField("", t.pressedColor, GUILayout.Width(50));
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.Space();

                if (t.pressedSprite)
                {
                    Rect spriteRect = new Rect(t.pressedSprite.rect.x / t.pressedSprite.texture.width,
                                               t.pressedSprite.rect.y / t.pressedSprite.texture.height,
                                               t.pressedSprite.rect.width / t.pressedSprite.texture.width,
                                               t.pressedSprite.rect.height / t.pressedSprite.texture.height);
                    GUILayout.Space(8);
                    Rect lastRect = GUILayoutUtility.GetLastRect();
                    lastRect.x      = 20;
                    lastRect.width  = 100;
                    lastRect.height = 100;

                    GUILayout.Space(100);

                    ETCGuiTools.DrawTextureRectPreview(lastRect, spriteRect, t.pressedSprite.texture, Color.white);
                }
            } ETCGuiTools.EndGroup();
        }
        #endregion

        #region Events
        t.showEventInspector = ETCGuiTools.BeginFoldOut("Events", t.showEventInspector);
        if (t.showEventInspector)
        {
            ETCGuiTools.BeginGroup(); {
                serializedObject.Update();
                SerializedProperty down = serializedObject.FindProperty("onDown");
                EditorGUILayout.PropertyField(down, true, null);
                serializedObject.ApplyModifiedProperties();

                serializedObject.Update();
                SerializedProperty press = serializedObject.FindProperty("onPressed");
                EditorGUILayout.PropertyField(press, true, null);
                serializedObject.ApplyModifiedProperties();

                serializedObject.Update();
                SerializedProperty pressTime = serializedObject.FindProperty("onPressedValue");
                EditorGUILayout.PropertyField(pressTime, true, null);
                serializedObject.ApplyModifiedProperties();

                serializedObject.Update();
                SerializedProperty up = serializedObject.FindProperty("onUp");
                EditorGUILayout.PropertyField(up, true, null);
                serializedObject.ApplyModifiedProperties();
            } ETCGuiTools.EndGroup();
        }
        #endregion

        if (t.anchor != ETCBase.RectAnchor.UserDefined)
        {
            t.SetAnchorPosition();
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(t);
                        #if UNITY_5_3_OR_NEWER
            EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
                        #endif
        }
    }
Example #3
0
    public override void OnInspectorGUI()
    {
        ETCButton t = (ETCButton)target;


        EditorGUILayout.Space();


        t.gameObject.name = EditorGUILayout.TextField("Button name", t.gameObject.name);
        t.axis.name       = t.gameObject.name;

        t.activated = ETCGuiTools.Toggle("Activated", t.activated, true);
        t.visible   = ETCGuiTools.Toggle("Visible", t.visible, true);

        EditorGUILayout.Space();
        t.useFixedUpdate        = ETCGuiTools.Toggle("Use Fixed Update", t.useFixedUpdate, true);
        t.isUnregisterAtDisable = ETCGuiTools.Toggle("Unregister at disabling time", t.isUnregisterAtDisable, true);

        #region Position & Size
        t.showPSInspector = ETCGuiTools.BeginFoldOut("Position & Size", t.showPSInspector);
        if (t.showPSInspector)
        {
            ETCGuiTools.BeginGroup(); {
                // Anchor
                t.anchor = (ETCBase.RectAnchor)EditorGUILayout.EnumPopup("Anchor", t.anchor);
                if (t.anchor != ETCBase.RectAnchor.UserDefined)
                {
                    t.anchorOffet = EditorGUILayout.Vector2Field("Offset", t.anchorOffet);
                }

                EditorGUILayout.Space();

                // Area sprite ratio
                if (t.GetComponent <Image>().sprite != null)
                {
                    Rect  rect  = t.GetComponent <Image>().sprite.rect;
                    float ratio = rect.width / rect.height;

                    // Area Size
                    if (ratio >= 1)
                    {
                        float s = EditorGUILayout.FloatField("Size", t.rectTransform().rect.width);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, s);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, s / ratio);
                    }
                    else
                    {
                        float s = EditorGUILayout.FloatField("Size", t.rectTransform().rect.height);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, s);
                        t.rectTransform().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, s * ratio);
                    }
                }
            } ETCGuiTools.EndGroup();
        }
        #endregion

        #region Behaviour
        t.showBehaviourInspector = ETCGuiTools.BeginFoldOut("Behaviour", t.showBehaviourInspector);
        if (t.showBehaviourInspector)
        {
            ETCGuiTools.BeginGroup(); {
                EditorGUILayout.Space();
                t.enableKeySimulation = ETCGuiTools.Toggle("Enable key simulation", t.enableKeySimulation, true);
                if (t.enableKeySimulation)
                {
                    t.allowSimulationStandalone = ETCGuiTools.Toggle("Allow simulation on standalone", t.allowSimulationStandalone, true);
                }
                EditorGUILayout.Space();

                t.isSwipeIn  = ETCGuiTools.Toggle("Swipe in", t.isSwipeIn, true);
                t.isSwipeOut = ETCGuiTools.Toggle("Swipe out", t.isSwipeOut, true);

                t.axis.isValueOverTime = ETCGuiTools.Toggle("Value over the time", t.axis.isValueOverTime, true);
                if (t.axis.isValueOverTime)
                {
                    //EditorGUI.indentLevel--;
                    ETCGuiTools.BeginGroup(5); {
                        t.axis.overTimeStep     = EditorGUILayout.FloatField("Step", t.axis.overTimeStep);
                        t.axis.maxOverTimeValue = EditorGUILayout.FloatField("Max value", t.axis.maxOverTimeValue);
                    } ETCGuiTools.EndGroup();
                    //EditorGUI.indentLevel++;
                }

                EditorGUILayout.Space();

                t.axis.speed = EditorGUILayout.FloatField("Speed", t.axis.speed);

                EditorGUILayout.Space();

                t.axis.actionOn        = (ETCAxis.ActionOn)EditorGUILayout.EnumPopup("Action on", t.axis.actionOn);
                t.axis.directTransform = (Transform)EditorGUILayout.ObjectField("Direct action to", t.axis.directTransform, typeof(Transform), true);

                t.axis.directAction   = (ETCAxis.DirectAction)EditorGUILayout.EnumPopup("Action", t.axis.directAction);
                t.axis.axisInfluenced = (ETCAxis.AxisInfluenced)EditorGUILayout.EnumPopup("Affected axis", t.axis.axisInfluenced);

                EditorGUILayout.Space();
                t.axis.positivekey = (UnityEngine.KeyCode)EditorGUILayout.EnumPopup("Positive key", t.axis.positivekey);
            } ETCGuiTools.EndGroup();
        }
        #endregion

        #region Sprite
        t.showSpriteInspector = ETCGuiTools.BeginFoldOut("Sprites", t.showSpriteInspector);
        if (t.showSpriteInspector)
        {
            ETCGuiTools.BeginGroup(); {
                // Normal state
                EditorGUILayout.BeginHorizontal();
                EditorGUI.BeginChangeCheck();
                t.normalSprite = (Sprite)EditorGUILayout.ObjectField("Normal", t.normalSprite, typeof(Sprite), true, GUILayout.MinWidth(100));
                t.normalColor  = EditorGUILayout.ColorField("", t.normalColor, GUILayout.Width(50));
                if (EditorGUI.EndChangeCheck())
                {
                    t.GetComponent <Image>().sprite = t.normalSprite;
                    t.GetComponent <Image>().color  = t.normalColor;
                }

                EditorGUILayout.EndHorizontal();
                EditorGUILayout.Space();

                if (t.normalSprite)
                {
                    Rect spriteRect = new Rect(t.normalSprite.rect.x / t.normalSprite.texture.width,
                                               t.normalSprite.rect.y / t.normalSprite.texture.height,
                                               t.normalSprite.rect.width / t.normalSprite.texture.width,
                                               t.normalSprite.rect.height / t.normalSprite.texture.height);
                    GUILayout.Space(8);
                    Rect lastRect = GUILayoutUtility.GetLastRect();
                    lastRect.x      = 20;
                    lastRect.width  = 100;
                    lastRect.height = 100;

                    GUILayout.Space(100);

                    ETCGuiTools.DrawTextureRectPreview(lastRect, spriteRect, t.normalSprite.texture, Color.white);
                }

                // Press state
                EditorGUILayout.BeginHorizontal();
                t.pressedSprite = (Sprite)EditorGUILayout.ObjectField("Pressed", t.pressedSprite, typeof(Sprite), true, GUILayout.MinWidth(100));
                t.pressedColor  = EditorGUILayout.ColorField("", t.pressedColor, GUILayout.Width(50));
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.Space();

                if (t.pressedSprite)
                {
                    Rect spriteRect = new Rect(t.pressedSprite.rect.x / t.pressedSprite.texture.width,
                                               t.pressedSprite.rect.y / t.pressedSprite.texture.height,
                                               t.pressedSprite.rect.width / t.pressedSprite.texture.width,
                                               t.pressedSprite.rect.height / t.pressedSprite.texture.height);
                    GUILayout.Space(8);
                    Rect lastRect = GUILayoutUtility.GetLastRect();
                    lastRect.x      = 20;
                    lastRect.width  = 100;
                    lastRect.height = 100;

                    GUILayout.Space(100);

                    ETCGuiTools.DrawTextureRectPreview(lastRect, spriteRect, t.pressedSprite.texture, Color.white);
                }
            } ETCGuiTools.EndGroup();
        }
        #endregion

        #region Events
        t.showEventInspector = ETCGuiTools.BeginFoldOut("Events", t.showEventInspector);
        if (t.showEventInspector)
        {
            ETCGuiTools.BeginGroup(); {
                serializedObject.Update();
                SerializedProperty down = serializedObject.FindProperty("onDown");
                EditorGUILayout.PropertyField(down, true, null);
                serializedObject.ApplyModifiedProperties();

                serializedObject.Update();
                SerializedProperty press = serializedObject.FindProperty("onPressed");
                EditorGUILayout.PropertyField(press, true, null);
                serializedObject.ApplyModifiedProperties();

                serializedObject.Update();
                SerializedProperty pressTime = serializedObject.FindProperty("onPressedValue");
                EditorGUILayout.PropertyField(pressTime, true, null);
                serializedObject.ApplyModifiedProperties();

                serializedObject.Update();
                SerializedProperty up = serializedObject.FindProperty("onUp");
                EditorGUILayout.PropertyField(up, true, null);
                serializedObject.ApplyModifiedProperties();
            } ETCGuiTools.EndGroup();
        }
        #endregion

        if (GUI.changed)
        {
            EditorUtility.SetDirty(t);
        }

        if (t.anchor != ETCBase.RectAnchor.UserDefined)
        {
            t.SetAnchorPosition();
        }
    }