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(); }
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> (); }
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(); }
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); }
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); // } }
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(); }