Inheritance: MonoBehaviour
Example #1
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        tk2dCamera _target = (tk2dCamera)target;

        EditorGUILayout.LabelField("Camera resolution", EditorStyles.boldLabel);
        GUIContent toggleLabel = new GUIContent("Force Editor Resolution",
                                                "When enabled, forces the resolution in the editor regardless of the size of the game window.");

        EditorGUI.indentLevel++;
        _target.forceResolutionInEditor = EditorGUILayout.Toggle(toggleLabel, _target.forceResolutionInEditor);
        if (_target.forceResolutionInEditor)
        {
            _target.forceResolution.x = EditorGUILayout.IntField("Width", (int)_target.forceResolution.x);
            _target.forceResolution.y = EditorGUILayout.IntField("Height", (int)_target.forceResolution.y);
        }
        else
        {
            EditorGUILayout.FloatField("Width", _target.resolution.x);
            EditorGUILayout.FloatField("Height", _target.resolution.y);
        }
        EditorGUI.indentLevel--;

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
            tk2dCameraAnchor[] allAlignmentObjects = GameObject.FindObjectsOfType(typeof(tk2dCameraAnchor)) as tk2dCameraAnchor[];
            foreach (var v in allAlignmentObjects)
            {
                EditorUtility.SetDirty(v);
            }
        }

        GUILayout.Space(16.0f);

        EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
        if (GUILayout.Button("Create Anchor", EditorStyles.miniButton, GUILayout.ExpandWidth(false)))
        {
            tk2dCamera cam = (tk2dCamera)target;

            GameObject go = new GameObject("Anchor");
            go.transform.parent = cam.transform;
            tk2dCameraAnchor cameraAnchor = go.AddComponent <tk2dCameraAnchor>();
            cameraAnchor.tk2dCamera = cam;
            cameraAnchor.mainCamera = cam.mainCamera;

            EditorGUIUtility.PingObject(go);
        }

        EditorGUILayout.EndHorizontal();
    }
Example #2
0
    void Awake()
    {
        cameraAnchor = GameObject.Find("2DAnchor").GetComponent <tk2dCameraAnchor>();

        var platformGO = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Run/Platform"));

        platform = platformGO.GetComponent <Platform> ();

        var playerGO = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Run/Player"));

        //playerGO.transform.parent = cameraAnchor.transform;
        player = playerGO.GetComponent <Player> ();
    }
Example #3
0
    void DrawToolsGUI()
    {
        EditorGUILayout.LabelField("Tools", EditorStyles.boldLabel);
        EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
        if (GUILayout.Button("Create Anchor", EditorStyles.miniButton, GUILayout.ExpandWidth(false)))
        {
            tk2dCamera cam = (tk2dCamera)target;

            GameObject go = new GameObject("Anchor");
            go.transform.parent = cam.transform;
            tk2dCameraAnchor cameraAnchor = go.AddComponent <tk2dCameraAnchor>();
            cameraAnchor.AnchorCamera = cam.camera;
            tk2dCameraAnchorEditor.UpdateAnchorName(cameraAnchor);

            EditorGUIUtility.PingObject(go);
        }
        EditorGUILayout.EndHorizontal();
    }
Example #4
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        tk2dCamera _target = (tk2dCamera)target;

        GUIContent toggleLabel = new GUIContent("Force Resolution In Editor",
                                                "When enabled, forces the resolution in the editor regardless of the size of the game window.");

        _target.forceResolutionInEditor = EditorGUILayout.Toggle(toggleLabel, _target.forceResolutionInEditor);
        if (_target.forceResolutionInEditor)
        {
            EditorGUI.indentLevel++;
            _target.forceResolution.x = EditorGUILayout.IntField("Width", (int)_target.forceResolution.x);
            _target.forceResolution.y = EditorGUILayout.IntField("Height", (int)_target.forceResolution.y);
            EditorGUI.indentLevel--;
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
            tk2dCameraAnchor[] allAlignmentObjects = GameObject.FindObjectsOfType(typeof(tk2dCameraAnchor)) as tk2dCameraAnchor[];
            foreach (var v in allAlignmentObjects)
            {
                EditorUtility.SetDirty(v);
            }
        }

        if (GUILayout.Button("Create Anchor"))
        {
            tk2dCamera cam = (tk2dCamera)target;

            GameObject go = new GameObject("Anchor");
            go.transform.parent = cam.transform;
            tk2dCameraAnchor cameraAnchor = go.AddComponent <tk2dCameraAnchor>();
            cameraAnchor.tk2dCamera = cam;
            cameraAnchor.mainCamera = cam.mainCamera;
        }
    }
    static void DoCreateCameraAnchorObject()
    {
        if (Selection.activeGameObject == null || Selection.activeGameObject.camera == null)
        {
            EditorUtility.DisplayDialog(
                "Camera Anchor Error",
                "You will need to select a camera before creating an anchor attached to it",
                "Ok");
        }
        else
        {
            GameObject go = new GameObject("");
            go.transform.parent        = Selection.activeGameObject.transform;
            go.transform.localPosition = new Vector3(0, 0, 10);
            go.transform.localRotation = Quaternion.identity;
            go.transform.localScale    = Vector3.one;
            tk2dCameraAnchor anchor = go.AddComponent <tk2dCameraAnchor>();
            anchor.AnchorCamera = Selection.activeGameObject.camera;
            UpdateAnchorName(anchor);

            EditorGUIUtility.PingObject(go);
            Selection.activeGameObject = go;
        }
    }
    public override void OnInspectorGUI()
    {
        tk2dCameraAnchor _target = (tk2dCameraAnchor)this.target;

        tk2dBaseSprite.Anchor prevAnchorPoint = _target.AnchorPoint;
        _target.AnchorCamera = EditorGUILayout.ObjectField("Camera", _target.AnchorCamera, typeof(Camera), true) as Camera;
        _target.AnchorPoint  = (tk2dBaseSprite.Anchor)EditorGUILayout.EnumPopup("Anchor Point", _target.AnchorPoint);

        if (_target.AnchorCamera != null && _target.AnchorCamera.GetComponent <tk2dCamera>() != null)
        {
            EditorGUI.indentLevel++;

            GUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Offset");
            Vector2 anchorOffset = _target.AnchorOffsetPixels;
            anchorOffset.x             = EditorGUILayout.FloatField(anchorOffset.x, GUILayout.MaxWidth(60));
            anchorOffset.y             = EditorGUILayout.FloatField(anchorOffset.y, GUILayout.MaxWidth(60));
            _target.AnchorOffsetPixels = anchorOffset;
            GUILayout.EndHorizontal();

            _target.AnchorToNativeBounds = EditorGUILayout.Toggle("To Native Bounds", _target.AnchorToNativeBounds);

            EditorGUI.indentLevel--;
        }

        if (GUI.changed)
        {
            _target.ForceUpdateTransform();
            if (prevAnchorPoint != _target.AnchorPoint &&
                _target.gameObject.name == GetAnchorPointName(prevAnchorPoint))
            {
                UpdateAnchorName(_target);
            }
            EditorUtility.SetDirty(_target);
        }
    }
 public static void UpdateAnchorName(tk2dCameraAnchor anchor)
 {
     anchor.gameObject.name = GetAnchorPointName(anchor.AnchorPoint);
 }
Example #8
0
	public static void UpdateAnchorName(tk2dCameraAnchor anchor) {
		anchor.gameObject.name = GetAnchorPointName(anchor.AnchorPoint);
	}
Example #9
0
    public override void OnInspectorGUI()
    {
        //DrawDefaultInspector();

        tk2dCamera _target          = (tk2dCamera)target;
        var        frameBorderStyle = EditorStyles.textField;

        // sanity
        if (_target.resolutionOverride == null)
        {
            _target.resolutionOverride = new tk2dCameraResolutionOverride[0];
            GUI.changed = true;
        }

        _target.enableResolutionOverrides = EditorGUILayout.Toggle("Resolution overrides", _target.enableResolutionOverrides);
        if (_target.enableResolutionOverrides)
        {
            EditorGUILayout.LabelField("Native resolution", EditorStyles.boldLabel);
            EditorGUI.indentLevel++;
            _target.nativeResolutionWidth  = EditorGUILayout.IntField("Width", _target.nativeResolutionWidth);
            _target.nativeResolutionHeight = EditorGUILayout.IntField("Height", _target.nativeResolutionHeight);
            EditorGUI.indentLevel--;

            // Overrides
            EditorGUILayout.LabelField("Overrides", EditorStyles.boldLabel);
            EditorGUI.indentLevel++;

            int deleteId = -1;
            for (int i = 0; i < _target.resolutionOverride.Length; ++i)
            {
                var ovr = _target.resolutionOverride[i];
                EditorGUILayout.BeginVertical(frameBorderStyle);
                GUILayout.Space(8);
                ovr.name          = EditorGUILayout.TextField("Name", ovr.name);
                ovr.width         = EditorGUILayout.IntField("Width", ovr.width);
                ovr.height        = EditorGUILayout.IntField("Height", ovr.height);
                ovr.autoScaleMode = (tk2dCameraResolutionOverride.AutoScaleMode)EditorGUILayout.EnumPopup("Auto Scale", ovr.autoScaleMode);
                if (ovr.autoScaleMode == tk2dCameraResolutionOverride.AutoScaleMode.None)
                {
                    EditorGUI.indentLevel++;
                    ovr.scale = EditorGUILayout.FloatField("Scale", ovr.scale);
                    EditorGUI.indentLevel--;
                }
                if (ovr.autoScaleMode == tk2dCameraResolutionOverride.AutoScaleMode.StretchToFit)
                {
                    string msg = "The native resolution image will be stretched to fit the target display. " +
                                 "Image quality will suffer if non-uniform scaling occurs.";
                    tk2dGuiUtility.InfoBox(msg, tk2dGuiUtility.WarningLevel.Info);
                }
                else
                {
                    ovr.fitMode = (tk2dCameraResolutionOverride.FitMode)EditorGUILayout.EnumPopup("Fit Mode", ovr.fitMode);
                    if (ovr.fitMode == tk2dCameraResolutionOverride.FitMode.Constant)
                    {
                        EditorGUI.indentLevel++;
                        ovr.offsetPixels.x = EditorGUILayout.FloatField("X", ovr.offsetPixels.x);
                        ovr.offsetPixels.y = EditorGUILayout.FloatField("Y", ovr.offsetPixels.y);
                        EditorGUI.indentLevel--;
                    }
                }
                GUILayout.BeginHorizontal();
                EditorGUILayout.PrefixLabel(" ");
                if (GUILayout.Button("Delete", EditorStyles.miniButton))
                {
                    deleteId = i;
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(4);
                EditorGUILayout.EndVertical();
            }

            if (deleteId != -1)
            {
                List <tk2dCameraResolutionOverride> ovr = new List <tk2dCameraResolutionOverride>(_target.resolutionOverride);
                ovr.RemoveAt(deleteId);
                _target.resolutionOverride = ovr.ToArray();
                GUI.changed = true;
                Repaint();
            }

            EditorGUILayout.BeginVertical(frameBorderStyle);
            GUILayout.Space(32);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Add override", GUILayout.ExpandWidth(false)))
            {
                tk2dCameraResolutionOverride ovr = new tk2dCameraResolutionOverride();
                ovr.name          = "Wildcard Override";
                ovr.width         = -1;
                ovr.height        = -1;
                ovr.autoScaleMode = tk2dCameraResolutionOverride.AutoScaleMode.FitVisible;
                ovr.fitMode       = tk2dCameraResolutionOverride.FitMode.Center;
                System.Array.Resize(ref _target.resolutionOverride, _target.resolutionOverride.Length + 1);
                _target.resolutionOverride[_target.resolutionOverride.Length - 1] = ovr;
                GUI.changed = true;
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.Space(32);
            EditorGUILayout.EndVertical();
            EditorGUI.indentLevel--;
        }
        EditorGUILayout.Space();


        EditorGUILayout.LabelField("Camera resolution", EditorStyles.boldLabel);
        GUIContent toggleLabel = new GUIContent("Force Editor Resolution",
                                                "When enabled, forces the resolution in the editor regardless of the size of the game window.");

        EditorGUI.indentLevel++;

        bool cameraOverrideChanged = false;

        tk2dGuiUtility.BeginChangeCheck();
        _target.forceResolutionInEditor = EditorGUILayout.Toggle(toggleLabel, _target.forceResolutionInEditor);
        if (tk2dGuiUtility.EndChangeCheck())
        {
            cameraOverrideChanged = true;
        }

        if (_target.forceResolutionInEditor)
        {
            tk2dGuiUtility.BeginChangeCheck();

            int selectedResolution = EditorGUILayout.Popup("Preset", 0, presetListStr);
            if (selectedResolution != 0)
            {
                var preset = presets[selectedResolution - 1];
                _target.forceResolution.x = preset.width;
                _target.forceResolution.y = preset.height;
                GUI.changed = true;
            }

            _target.forceResolution.x = EditorGUILayout.IntField("Width", (int)_target.forceResolution.x);
            _target.forceResolution.y = EditorGUILayout.IntField("Height", (int)_target.forceResolution.y);

            // clamp to a sensible value
            _target.forceResolution.x = Mathf.Max(_target.forceResolution.x, 50);
            _target.forceResolution.y = Mathf.Max(_target.forceResolution.y, 50);

            Rect r = GUILayoutUtility.GetRect(1, 1, GUILayout.ExpandWidth(true), GUILayout.MinHeight(43));
            EditorGUI.HelpBox(new Rect(r.x + 4, r.y, r.width - 8, r.height), "Ensure that the the game view resolution is the same as the override chosen here, otherwise the game window will not display correctly.", MessageType.Warning);

            if (tk2dGuiUtility.EndChangeCheck())
            {
                cameraOverrideChanged = true;
            }
        }
        else
        {
            EditorGUILayout.FloatField("Width", _target.TargetResolution.x);
            EditorGUILayout.FloatField("Height", _target.TargetResolution.y);
        }
        EditorGUI.indentLevel--;

        if (cameraOverrideChanged)
        {
            // Propagate values to all tk2dCameras in scene
            tk2dCamera[] otherCameras = Resources.FindObjectsOfTypeAll(typeof(tk2dCamera)) as tk2dCamera[];
            foreach (tk2dCamera thisCamera in otherCameras)
            {
                thisCamera.forceResolutionInEditor = _target.forceResolutionInEditor;
                thisCamera.forceResolution         = _target.forceResolution;
                thisCamera.UpdateCameraMatrix();
            }

            // Update all anchors after that
            tk2dCameraAnchor[] anchors = Resources.FindObjectsOfTypeAll(typeof(tk2dCameraAnchor)) as tk2dCameraAnchor[];
            foreach (var anchor in anchors)
            {
                anchor.ForceUpdateTransform();
            }
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
            tk2dCameraAnchor[] allAlignmentObjects = GameObject.FindObjectsOfType(typeof(tk2dCameraAnchor)) as tk2dCameraAnchor[];
            foreach (var v in allAlignmentObjects)
            {
                EditorUtility.SetDirty(v);
            }
        }

        GUILayout.Space(16.0f);

        EditorGUILayout.LabelField("Tools", EditorStyles.boldLabel);
        EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
        if (GUILayout.Button("Create Anchor", EditorStyles.miniButton, GUILayout.ExpandWidth(false)))
        {
            tk2dCamera cam = (tk2dCamera)target;

            GameObject go = new GameObject("Anchor");
            go.transform.parent = cam.transform;
            tk2dCameraAnchor cameraAnchor = go.AddComponent <tk2dCameraAnchor>();
            cameraAnchor.tk2dCamera = cam;

            EditorGUIUtility.PingObject(go);
        }

        EditorGUILayout.EndHorizontal();

        // {
        //  tk2dCamera cam = (tk2dCamera)target;
        //  cam.zoomScale = EditorGUILayout.FloatField("Zoom scale", cam.zoomScale);
        // }
    }
Example #10
0
    public override void OnInspectorGUI()
    {
        //DrawDefaultInspector();

        tk2dCamera _target          = (tk2dCamera)target;
        var        frameBorderStyle = EditorStyles.textField;

        // sanity
        if (_target.resolutionOverride == null)
        {
            _target.resolutionOverride = new tk2dCameraResolutionOverride[0];
            GUI.changed = true;
        }

        _target.enableResolutionOverrides = EditorGUILayout.Toggle("Resolution overrides", _target.enableResolutionOverrides);
        if (_target.enableResolutionOverrides)
        {
            EditorGUILayout.LabelField("Native resolution", EditorStyles.boldLabel);
            EditorGUI.indentLevel++;
            _target.nativeResolutionWidth  = EditorGUILayout.IntField("Width", _target.nativeResolutionWidth);
            _target.nativeResolutionHeight = EditorGUILayout.IntField("Height", _target.nativeResolutionHeight);
            EditorGUI.indentLevel--;

            // Overrides
            EditorGUILayout.LabelField("Overrides", EditorStyles.boldLabel);
            EditorGUI.indentLevel++;

            int deleteId = -1;
            for (int i = 0; i < _target.resolutionOverride.Length; ++i)
            {
                var ovr = _target.resolutionOverride[i];
                EditorGUILayout.BeginVertical(frameBorderStyle);
                GUILayout.Space(8);
                ovr.name          = EditorGUILayout.TextField("Name", ovr.name);
                ovr.width         = EditorGUILayout.IntField("Width", ovr.width);
                ovr.height        = EditorGUILayout.IntField("Height", ovr.height);
                ovr.autoScaleMode = (tk2dCameraResolutionOverride.AutoScaleMode)EditorGUILayout.EnumPopup("Auto Scale", ovr.autoScaleMode);
                if (ovr.autoScaleMode == tk2dCameraResolutionOverride.AutoScaleMode.None)
                {
                    EditorGUI.indentLevel++;
                    ovr.scale = EditorGUILayout.FloatField("Scale", ovr.scale);
                    EditorGUI.indentLevel--;
                }
                ovr.fitMode = (tk2dCameraResolutionOverride.FitMode)EditorGUILayout.EnumPopup("Fit Mode", ovr.fitMode);
                if (ovr.fitMode == tk2dCameraResolutionOverride.FitMode.Constant)
                {
                    EditorGUI.indentLevel++;
                    ovr.offsetPixels.x = EditorGUILayout.FloatField("X", ovr.offsetPixels.x);
                    ovr.offsetPixels.y = EditorGUILayout.FloatField("Y", ovr.offsetPixels.y);
                    EditorGUI.indentLevel--;
                }
                GUILayout.BeginHorizontal();
                EditorGUILayout.PrefixLabel(" ");
                if (GUILayout.Button("Delete", EditorStyles.miniButton))
                {
                    deleteId = i;
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(4);
                EditorGUILayout.EndVertical();
            }

            if (deleteId != -1)
            {
                List <tk2dCameraResolutionOverride> ovr = new List <tk2dCameraResolutionOverride>(_target.resolutionOverride);
                ovr.RemoveAt(deleteId);
                _target.resolutionOverride = ovr.ToArray();
                GUI.changed = true;
                Repaint();
            }

            EditorGUILayout.BeginVertical(frameBorderStyle);
            GUILayout.Space(32);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Add override", GUILayout.ExpandWidth(false)))
            {
                tk2dCameraResolutionOverride ovr = new tk2dCameraResolutionOverride();
                ovr.name          = "Wildcard Override";
                ovr.width         = -1;
                ovr.height        = -1;
                ovr.autoScaleMode = tk2dCameraResolutionOverride.AutoScaleMode.FitVisible;
                ovr.fitMode       = tk2dCameraResolutionOverride.FitMode.Center;
                System.Array.Resize(ref _target.resolutionOverride, _target.resolutionOverride.Length + 1);
                _target.resolutionOverride[_target.resolutionOverride.Length - 1] = ovr;
                GUI.changed = true;
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.Space(32);
            EditorGUILayout.EndVertical();
            EditorGUI.indentLevel--;
        }
        EditorGUILayout.Space();


        EditorGUILayout.LabelField("Camera resolution", EditorStyles.boldLabel);
        GUIContent toggleLabel = new GUIContent("Force Editor Resolution",
                                                "When enabled, forces the resolution in the editor regardless of the size of the game window.");

        EditorGUI.indentLevel++;
        _target.forceResolutionInEditor = EditorGUILayout.Toggle(toggleLabel, _target.forceResolutionInEditor);
        if (_target.forceResolutionInEditor)
        {
            _target.forceResolution.x = EditorGUILayout.IntField("Width", (int)_target.forceResolution.x);
            _target.forceResolution.y = EditorGUILayout.IntField("Height", (int)_target.forceResolution.y);
        }
        else
        {
            EditorGUILayout.FloatField("Width", _target.resolution.x);
            EditorGUILayout.FloatField("Height", _target.resolution.y);
        }
        EditorGUI.indentLevel--;

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
            tk2dCameraAnchor[] allAlignmentObjects = GameObject.FindObjectsOfType(typeof(tk2dCameraAnchor)) as tk2dCameraAnchor[];
            foreach (var v in allAlignmentObjects)
            {
                EditorUtility.SetDirty(v);
            }
        }

        GUILayout.Space(16.0f);

        EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
        if (GUILayout.Button("Create Anchor", EditorStyles.miniButton, GUILayout.ExpandWidth(false)))
        {
            tk2dCamera cam = (tk2dCamera)target;

            GameObject go = new GameObject("Anchor");
            go.transform.parent = cam.transform;
            tk2dCameraAnchor cameraAnchor = go.AddComponent <tk2dCameraAnchor>();
            cameraAnchor.tk2dCamera = cam;
            cameraAnchor.mainCamera = cam.mainCamera;

            EditorGUIUtility.PingObject(go);
        }

        EditorGUILayout.EndHorizontal();
    }