Пример #1
0
    ///////////////////////////////////////////////////////////////////////////////
    // functions
    ///////////////////////////////////////////////////////////////////////////////

    // ------------------------------------------------------------------
    // Desc:
    // ------------------------------------------------------------------

    void OnEnable()
    {
        if (target != curEdit)
        {
            curEdit = target as exScreenPosition;
        }
    }
Пример #2
0
    // ------------------------------------------------------------------
    // Desc:
    // ------------------------------------------------------------------

    public static void ScreenPrint(Vector2 _pos, string _text, GUIStyle _style = null)
    {
        if (instance.showScreenDebugText)
        {
#if EX2D
            exSpriteFont debugText = instance.debugTextPool.Request <exSpriteFont>();

            Vector2          screenPos      = debugText.renderCamera.WorldToScreenPoint(_pos);
            exScreenPosition screenPosition = debugText.GetComponent <exScreenPosition>();
            screenPosition.x = screenPos.x;
            screenPosition.y = Screen.height - screenPos.y;

            debugText.text    = _text;
            debugText.enabled = true;
#else
            TextInfo info = new TextInfo(_pos, _text, _style);
            instance.debugTextPool.Add(info);
#endif
        }
    }
Пример #3
0
 ///////////////////////////////////////////////////////////////////////////////
 // functions
 ///////////////////////////////////////////////////////////////////////////////
 // ------------------------------------------------------------------
 // Desc:
 // ------------------------------------------------------------------
 void OnEnable()
 {
     if ( target != curEdit ) {
         curEdit = target as exScreenPosition;
     }
 }
Пример #4
0
    // ------------------------------------------------------------------
    // Desc:
    // ------------------------------------------------------------------

    public override void OnInspectorGUI()
    {
        exSprite editSprite = target as exSprite;

        inAnimMode = AnimationUtility.InAnimationMode();

#if UNITY_3_4
        isPrefab = (EditorUtility.GetPrefabType(target) == PrefabType.Prefab);
#else
        isPrefab = (PrefabUtility.GetPrefabType(target) == PrefabType.Prefab);
#endif

        // TEMP: not sure this is good {
        Event e = Event.current;
        if (e.type == EventType.MouseDown && e.button == 0 && e.clickCount == 1)
        {
            if (isPrefab)
            {
                Undo.RegisterUndo(editPlane, "editPlane");
            }
            else
            {
                Undo.RegisterSceneUndo("ex2D.Scene");
            }
        }
        // } TEMP end

        EditorGUIUtility.LookLikeInspector();
        EditorGUILayout.Space();
        ++EditorGUI.indentLevel;

        if (isPrefab && editPlane.meshFilter && editPlane.meshFilter.sharedMesh)
        {
            editPlane.meshFilter.sharedMesh = null;
        }

        // TODO: I do not know how to do it. {
        // // ========================================================
        // // Script
        // // ========================================================

        // MonoScript script = (MonoScript)AssetDatabase.LoadAssetAtPath( AssetDatabase.GetAssetPath (target), typeof(MonoScript) );
        // script = (MonoScript)EditorGUILayout.ObjectField( "Script", script, typeof(MonoScript) );
        // } TODO end

        // ========================================================
        // trans2d
        // ========================================================

        GUI.enabled = !inAnimMode;
        EditorGUIUtility.LookLikeControls();
        Transform2D newTrans2D = (Transform2D)EditorGUILayout.EnumPopup("Transform 2D", trans2d, GUILayout.Width(200), GUILayout.ExpandWidth(false));
        EditorGUIUtility.LookLikeInspector();
        GUI.enabled = true;

        //
        if (newTrans2D != trans2d)
        {
            trans2d = newTrans2D;

            exScreenPosition screenPos = editPlane.GetComponent <exScreenPosition>();
            if (screenPos != null)
            {
                Object.DestroyImmediate(screenPos, true);
            }
            exViewportPosition vpPos = editPlane.GetComponent <exViewportPosition>();
            if (vpPos != null)
            {
                Object.DestroyImmediate(vpPos, true);
            }

            switch (trans2d)
            {
            case Transform2D.None:
                break;

            case Transform2D.Screen:
                editPlane.gameObject.AddComponent <exScreenPosition>();
                break;

            case Transform2D.Viewport:
                editPlane.gameObject.AddComponent <exViewportPosition>();
                break;
            }
        }

        // ========================================================
        // use animation helper
        // ========================================================

        GUILayout.BeginHorizontal();
        GUILayout.Space(15);
        GUI.enabled = !inAnimMode;
        exAnimationHelper compAnimHelper = editPlane.GetComponent <exAnimationHelper>();
        bool hasAnimHelper = compAnimHelper != null;
        bool useAnimHelper = GUILayout.Toggle(hasAnimHelper, "Use Animation Helper");
        if (useAnimHelper != hasAnimHelper)
        {
            if (useAnimHelper)
            {
                AddAnimationHelper();
            }
            else
            {
                Object.DestroyImmediate(compAnimHelper, true);
            }
            GUI.changed = true;
        }
        GUI.enabled = true;
        GUILayout.EndHorizontal();

        // ========================================================
        // camera type
        // ========================================================

        GUI.enabled = !inAnimMode;
        EditorGUIUtility.LookLikeControls();
        if (isPrefab)
        {
            GUILayout.BeginHorizontal();
            bool isPrefabCamera = false;
            if (editPlane.renderCameraForPrefab != null)
            {
#if UNITY_3_4
                isPrefabCamera = (EditorUtility.GetPrefabType(editPlane.renderCameraForPrefab) == PrefabType.Prefab);
#else
                isPrefabCamera = (PrefabUtility.GetPrefabType(editPlane.renderCameraForPrefab) == PrefabType.Prefab);
#endif
            }
            editPlane.renderCamera = (Camera)EditorGUILayout.ObjectField("Camera"
                                                                         , isPrefabCamera ? editPlane.renderCameraForPrefab : null
                                                                         , typeof(Camera)
                                                                         , false
                                                                         , GUILayout.Width(300));
            labelStyle.fontStyle        = FontStyle.Bold;
            labelStyle.normal.textColor = Color.yellow;
            GUILayout.Label("(Prefab Only)", labelStyle);
            GUILayout.EndHorizontal();
            GUILayout.Space(5);
        }
        else
        {
            editPlane.renderCamera = (Camera)EditorGUILayout.ObjectField("Camera"
                                                                         , editPlane.renderCamera
                                                                         , typeof(Camera)
                                                                         , true
                                                                         , GUILayout.Width(300));
        }
        EditorGUIUtility.LookLikeInspector();

        // ========================================================
        // anchor
        // ========================================================

        EditorGUILayout.LabelField("Anchor", "");
        GUILayout.BeginHorizontal();
        GUILayout.Space(30);
        editPlane.anchor
            = (exPlane.Anchor)GUILayout.SelectionGrid((int)editPlane.anchor,
                                                      anchorTexts,
                                                      3,
                                                      GUILayout.Width(80));
        GUILayout.EndHorizontal();

        // ========================================================
        // use texture offset
        // ========================================================

        if (editSprite != null)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Space(30);
            editSprite.useTextureOffset = GUILayout.Toggle(editSprite.useTextureOffset, "Use Texture Offset");
            GUILayout.EndHorizontal();
        }
        GUI.enabled = true;

        // ========================================================
        // offset
        // ========================================================

        EditorGUIUtility.LookLikeControls();
        editPlane.offset = EditorGUILayout.Vector2Field("Offset", editPlane.offset);
        EditorGUIUtility.LookLikeInspector();

        // ========================================================
        // check dirty
        // ========================================================

        if (GUI.changed)
        {
            EditorUtility.SetDirty(editPlane);
        }
        --EditorGUI.indentLevel;
    }