public static Vector3 Snap(Vector3 original) { return(new Vector3( PixelPerfect.Snap(original.x), PixelPerfect.Snap(original.y), PixelPerfect.Snap(original.z) )); }
private void AllNestedCanvases() { EditorGUI.BeginChangeCheck(); pixelPerfect = (PixelPerfect)EditorGUILayout.EnumPopup("Pixel Perfect", pixelPerfect); if (EditorGUI.EndChangeCheck()) { if (pixelPerfect == PixelPerfect.Inherit) { m_PixelPerfectOverride.boolValue = false; } else if (pixelPerfect == PixelPerfect.Off) { m_PixelPerfectOverride.boolValue = true; m_PixelPerfect.boolValue = false; } else { m_PixelPerfectOverride.boolValue = true; m_PixelPerfect.boolValue = true; } } // we need to pass through the property setter to trigger a canvasHierarchyChanged event and so on // see case 787195 EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_OverrideSorting); if (EditorGUI.EndChangeCheck()) { ((Canvas)serializedObject.targetObject).overrideSorting = m_OverrideSorting.boolValue; m_SortingOverride.target = m_OverrideSorting.boolValue; } if (EditorGUILayout.BeginFadeGroup(m_SortingOverride.faded)) { GUIContent sortingOrderStyle = null; if (m_AllOverlay) { sortingOrderStyle = Styles.sortingOrder; } else if (m_NoneOverlay) { sortingOrderStyle = Styles.m_SortingOrderStyle; EditorGUILayout.SortingLayerField(Styles.m_SortingLayerStyle, m_SortingLayerID, EditorStyles.popup); } if (sortingOrderStyle != null) { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_SortingOrder, sortingOrderStyle); if (EditorGUI.EndChangeCheck()) { ((Canvas)serializedObject.targetObject).sortingOrder = m_SortingOrder.intValue; } } } EditorGUILayout.EndFadeGroup(); }
void Awake() { player = transform.root.GetComponent <CharacterController2D>(); image = GetComponent <SpriteRenderer> (); playerCollision1 = GetComponent <BoxCollider2D>(); playerCollision2 = GetComponent <CircleCollider2D>(); maincamera = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <PixelPerfect>(); }
private void OnEnable() { this.m_RenderMode = base.serializedObject.FindProperty("m_RenderMode"); this.m_Camera = base.serializedObject.FindProperty("m_Camera"); this.m_PixelPerfect = base.serializedObject.FindProperty("m_PixelPerfect"); this.m_PlaneDistance = base.serializedObject.FindProperty("m_PlaneDistance"); this.m_SortingLayerID = base.serializedObject.FindProperty("m_SortingLayerID"); this.m_SortingOrder = base.serializedObject.FindProperty("m_SortingOrder"); this.m_TargetDisplay = base.serializedObject.FindProperty("m_TargetDisplay"); this.m_OverrideSorting = base.serializedObject.FindProperty("m_OverrideSorting"); this.m_PixelPerfectOverride = base.serializedObject.FindProperty("m_OverridePixelPerfect"); this.m_OverlayMode = new AnimBool(this.m_RenderMode.intValue == 0); this.m_OverlayMode.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_CameraMode = new AnimBool(this.m_RenderMode.intValue == 1); this.m_CameraMode.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_WorldMode = new AnimBool(this.m_RenderMode.intValue == 2); this.m_WorldMode.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_SortingOverride = new AnimBool(this.m_OverrideSorting.boolValue); this.m_SortingOverride.valueChanged.AddListener(new UnityAction(this.Repaint)); if (this.m_PixelPerfectOverride.boolValue) { this.pixelPerfect = !this.m_PixelPerfect.boolValue ? PixelPerfect.Off : PixelPerfect.On; } else { this.pixelPerfect = PixelPerfect.Inherit; } this.m_AllNested = true; this.m_AllRoot = true; this.m_AllOverlay = true; this.m_NoneOverlay = true; for (int i = 0; i < base.targets.Length; i++) { Canvas canvas = base.targets[i] as Canvas; if (canvas.transform.parent == null) { this.m_AllNested = false; } else if (canvas.transform.parent.GetComponentInParent <Canvas>() == null) { this.m_AllNested = false; } else { this.m_AllRoot = false; } if (canvas.renderMode == UnityEngine.RenderMode.ScreenSpaceOverlay) { this.m_NoneOverlay = false; } else { this.m_AllOverlay = false; } } }
private void OnEnable() { this.m_RenderMode = base.serializedObject.FindProperty("m_RenderMode"); this.m_Camera = base.serializedObject.FindProperty("m_Camera"); this.m_PixelPerfect = base.serializedObject.FindProperty("m_PixelPerfect"); this.m_PlaneDistance = base.serializedObject.FindProperty("m_PlaneDistance"); this.m_SortingLayerID = base.serializedObject.FindProperty("m_SortingLayerID"); this.m_SortingOrder = base.serializedObject.FindProperty("m_SortingOrder"); this.m_TargetDisplay = base.serializedObject.FindProperty("m_TargetDisplay"); this.m_OverrideSorting = base.serializedObject.FindProperty("m_OverrideSorting"); this.m_PixelPerfectOverride = base.serializedObject.FindProperty("m_OverridePixelPerfect"); this.m_OverlayMode = new AnimBool(this.m_RenderMode.intValue == 0); this.m_OverlayMode.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_CameraMode = new AnimBool(this.m_RenderMode.intValue == 1); this.m_CameraMode.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_WorldMode = new AnimBool(this.m_RenderMode.intValue == 2); this.m_WorldMode.valueChanged.AddListener(new UnityAction(this.Repaint)); this.m_SortingOverride = new AnimBool(this.m_OverrideSorting.boolValue); this.m_SortingOverride.valueChanged.AddListener(new UnityAction(this.Repaint)); if (this.m_PixelPerfectOverride.boolValue) { this.pixelPerfect = !this.m_PixelPerfect.boolValue ? PixelPerfect.Off : PixelPerfect.On; } else { this.pixelPerfect = PixelPerfect.Inherit; } this.m_AllNested = true; this.m_AllRoot = true; this.m_AllOverlay = true; this.m_NoneOverlay = true; for (int i = 0; i < base.targets.Length; i++) { Canvas canvas = base.targets[i] as Canvas; if (canvas.transform.parent == null) { this.m_AllNested = false; } else if (canvas.transform.parent.GetComponentInParent<Canvas>() == null) { this.m_AllNested = false; } else { this.m_AllRoot = false; } if (canvas.renderMode == RenderMode.ScreenSpaceOverlay) { this.m_NoneOverlay = false; } else { this.m_AllOverlay = false; } } }
public void AdjustSize() { if (targetWidth != currentWidth || targetHeight != currentHeight || checkedPixelZoom != pixelScale) { PixelPerfect.SetPixelPerfect(pixelsPerUnit, pixelScale); GetComponent <Camera>().orthographicSize = (float)((targetHeight / (PixelPerfect.pixelsPerUnit * PixelPerfect.pixelScale)) * 0.5d); currentWidth = targetWidth; currentHeight = targetHeight; checkedPixelZoom = pixelScale; } }
Vector2 FitToPixelPerfectGrid(Vector2 vector) { if (fitType == PixelPerfectFitType.Smooth) { return(PixelPerfect.FitToGrid(vector, PixelPerfect.worldPixelSize / cameraZoom)); } else { return(PixelPerfect.FitToGrid(vector, PixelPerfect.worldPixelSize)); } }
public void Update() { if (spriteRenderer == null) { spriteRenderer = GetComponent <SpriteRenderer>(); } Vector2 spriteSize = new Vector2(spriteRenderer.sprite.rect.width, spriteRenderer.sprite.rect.height) * PixelPerfect.unitsPerPixel * 0.5f; if (zoomsWithCamera && PixelPerfect.pixelScale != 0) { spriteSize = spriteSize / (float)PixelPerfect.pixelScale; transform.localScale = Vector3.one * 1f / (float)PixelPerfect.pixelScale; } else { transform.localScale = Vector3.one; } Vector2 size = (PixelPerfect.GetMainGameViewSize() * 0.5f) * PixelPerfect.unitsPerPixel / PixelPerfect.pixelScale - spriteSize; Vector3 cameraPosition = new Vector3(anchorCamera.transform.position.x, anchorCamera.transform.position.y, 0); int i = 0, j = 0; switch (anchorType) { case AnchorType.UpperLeft: i = -1; j = 1; break; case AnchorType.UpperMiddle: i = 0; j = 1; break; case AnchorType.UpperRight: i = 1; j = 1; break; case AnchorType.MiddleLeft: i = -1; j = 0; break; case AnchorType.MiddleCenter: i = 0; j = 0; break; case AnchorType.MiddleRight: i = 1; j = 0; break; case AnchorType.LowerLeft: i = -1; j = -1; break; case AnchorType.LowerCenter: i = 0; j = -1; break; case AnchorType.LowerRight: i = 1; j = -1; break; } Vector3 newPos = cameraPosition + Vector3.right * size.x * i + Vector3.up * size.y * j; if (Mathf.Abs(newPos.x) < float.MaxValue) { transform.position = newPos; if (!zoomsWithCamera) { transform.position += (Vector3.up - Vector3.right) * PixelPerfect.pixelOffset * PixelPerfect.unitsPerPixel; } } }
void OnEnable() { m_RenderMode = serializedObject.FindProperty("m_RenderMode"); m_Camera = serializedObject.FindProperty("m_Camera"); m_PixelPerfect = serializedObject.FindProperty("m_PixelPerfect"); m_PlaneDistance = serializedObject.FindProperty("m_PlaneDistance"); m_SortingLayerID = serializedObject.FindProperty("m_SortingLayerID"); m_SortingOrder = serializedObject.FindProperty("m_SortingOrder"); m_TargetDisplay = serializedObject.FindProperty("m_TargetDisplay"); m_OverrideSorting = serializedObject.FindProperty("m_OverrideSorting"); m_PixelPerfectOverride = serializedObject.FindProperty("m_OverridePixelPerfect"); m_ShaderChannels = serializedObject.FindProperty("m_AdditionalShaderChannelsFlag"); m_OverlayMode = new AnimBool(m_RenderMode.intValue == 0); m_OverlayMode.valueChanged.AddListener(Repaint); m_CameraMode = new AnimBool(m_RenderMode.intValue == 1); m_CameraMode.valueChanged.AddListener(Repaint); m_WorldMode = new AnimBool(m_RenderMode.intValue == 2); m_WorldMode.valueChanged.AddListener(Repaint); m_SortingOverride = new AnimBool(m_OverrideSorting.boolValue); m_SortingOverride.valueChanged.AddListener(Repaint); if (m_PixelPerfectOverride.boolValue) pixelPerfect = m_PixelPerfect.boolValue ? PixelPerfect.On : PixelPerfect.Off; else pixelPerfect = PixelPerfect.Inherit; m_AllNested = true; m_AllRoot = true; m_AllOverlay = true; m_NoneOverlay = true; for (int i = 0; i < targets.Length; i++) { Canvas canvas = targets[i] as Canvas; if (canvas.transform.parent == null || canvas.transform.parent.GetComponentInParent<Canvas>() == null) m_AllNested = false; else m_AllRoot = false; if (canvas.renderMode == RenderMode.ScreenSpaceOverlay) m_NoneOverlay = false; else m_AllOverlay = false; } }
public void AdjustSize() { PixelPerfect.SetPixelPerfect(pixelsPerUnit, pixelZoom); float targetHeight; if (Application.isEditor) { targetHeight = PixelPerfect.GetMainGameViewSize().y; } else { targetHeight = Screen.height; } camera.orthographicSize = (float)(((double)targetHeight / (double)PixelPerfect.pixelsPerUnit / (double)PixelPerfect.pixelScale) * 0.5d); }
void SetPixelPerfectPosition() { if (name == "Shadow" && transform.parent.tag != "Character") { if (((int)(transform.parent.position.x * 2)) % 2 != 0) { transform.localPosition = new Vector3(0.5f, 0.0f, 0.0f); } else { transform.localPosition = new Vector3(-0.5f, 0.0f, 0.0f); } return; } if (useParentTransform) { transform.localPosition = Vector3.zero; } transform.position = new Vector3(transform.position.x, transform.position.y, GetPixelPerfectDepth()); spriteOrigin = (Vector2)(transform.position) + GetPivotToOrigin(); fixedSpriteOrigin = PixelPerfect.FitToGrid(spriteOrigin, PixelPerfect.worldPixelSize * pixelCompoundScale); if ((int)GetPivotToCenter().x % 2 == 1) { if (fixedSpriteOrigin.x > 1.0f) { fixedSpriteOrigin = fixedSpriteOrigin - new Vector2(1.0f, 0); } else { fixedSpriteOrigin = fixedSpriteOrigin + new Vector2(1.0f, 0); } } fixedSpriteCenter = fixedSpriteOrigin - GetPivotToOrigin(); pixelCorrection = fixedSpriteCenter - (Vector2)(transform.position); transform.position += (Vector3)pixelCorrection; }
private void AllNestedCanvases() { EditorGUI.BeginChangeCheck(); pixelPerfect = (PixelPerfect)EditorGUILayout.EnumPopup("Pixel Perfect", pixelPerfect); if (EditorGUI.EndChangeCheck()) { if (pixelPerfect == PixelPerfect.Inherit) { m_PixelPerfectOverride.boolValue = false; } else if (pixelPerfect == PixelPerfect.Off) { m_PixelPerfectOverride.boolValue = true; m_PixelPerfect.boolValue = false; } else { m_PixelPerfectOverride.boolValue = true; m_PixelPerfect.boolValue = true; } } EditorGUILayout.PropertyField(m_OverrideSorting); m_SortingOverride.target = m_OverrideSorting.boolValue; if (EditorGUILayout.BeginFadeGroup(m_SortingOverride.faded)) { GUIContent sortingOrderStyle = null; if (m_AllOverlay) { sortingOrderStyle = Styles.sortingOrder; } else if (m_NoneOverlay) { sortingOrderStyle = Styles.m_SortingOrderStyle; sortingLayerField.Invoke(null, new object[] { Styles.m_SortingLayerStyle, m_SortingLayerID, EditorStyles.popup }); } if (sortingOrderStyle != null) { EditorGUILayout.PropertyField(m_SortingOrder, sortingOrderStyle); } } EditorGUILayout.EndFadeGroup(); }
void SetPixelPerfectPosition() { if (useParentTransform) { transform.localPosition = Vector3.zero; } transform.position = new Vector3(transform.position.x, transform.position.y, GetPixelPerfectDepth()); spriteOrigin = (Vector2)(transform.position) + GetPivotToOrigin(); fixedSpriteOrigin = PixelPerfect.FitToGrid(spriteOrigin, PixelPerfect.worldPixelSize * pixelCompoundScale); fixedSpriteCenter = fixedSpriteOrigin - GetPivotToOrigin(); pixelCorrection = fixedSpriteCenter - (Vector2)(transform.position); transform.position += (Vector3)pixelCorrection; }
void CtrlCollect() { if (isJointed) { return; } isJointed = IsJointedRoot() || IsJointedOther(); if (isJointed) { transform.localPosition = PixelPerfect.Snap(transform.localPosition); return; } transform.position = Vector2.MoveTowards( transform.position, collectedFrom.transform.position, collectedSpeed * Time.deltaTime ); }
public void Update() { if (zoomsWithCamera && PixelPerfect.pixelScale != 0) { transform.localScale = Vector3.one / (float)PixelPerfect.pixelScale; } Vector2 quadSize = new Vector2(transform.localScale.x, transform.localScale.y); Vector2 size = (PixelPerfect.GetMainGameViewSize() * 0.5f) * PixelPerfect.unitsPerPixel / PixelPerfect.pixelScale - quadSize / 2; Vector3 cameraPosition = new Vector3(anchorCamera.transform.position.x, anchorCamera.transform.position.y, 0); int i = 0, j = 0; switch (anchorType) { case AnchorType.UpperLeft: i = -1; j = 1; break; case AnchorType.UpperMiddle: i = 0; j = 1; break; case AnchorType.UpperRight: i = 1; j = 1; break; case AnchorType.MiddleLeft: i = -1; j = 0; break; case AnchorType.MiddleCenter: i = 0; j = 0; break; case AnchorType.MiddleRight: i = 1; j = 0; break; case AnchorType.LowerLeft: i = -1; j = -1; break; case AnchorType.LowerCenter: i = 0; j = -1; break; case AnchorType.LowerRight: i = 1; j = -1; break; } Vector3 newPos = cameraPosition + Vector3.right * size.x * i + Vector3.up * size.y * j; if (Mathf.Abs(newPos.x) < float.MaxValue) { transform.position = newPos; if (!zoomsWithCamera) { transform.position += (Vector3.up - Vector3.right) * PixelPerfect.pixelOffset * PixelPerfect.unitsPerPixel; } } }
// Update is called once per frame void SoftUpdate(GameObject dispatcher) { deltaVector = new Vector3(0, 0, 0); if (followX) { deltaVector.x = target.position.x - previousVector.x; } if (followY) { deltaVector.y = target.position.y - previousVector.y; } if (followZ) { deltaVector.z = target.position.z - previousVector.z; } Vector3 pixelPerfectVector = new Vector3(PixelPerfect.RoundToNearestPixel((deltaVector.x * relativeSpeed), camera), PixelPerfect.RoundToNearestPixel((deltaVector.y * relativeSpeed), camera), PixelPerfect.RoundToNearestPixel((deltaVector.z * relativeSpeed), camera)); myTransform.Translate(pixelPerfectVector); previousVector = target.position; }
private void DoPixelPerfectGUIForNested() { EditorGUI.BeginChangeCheck(); pixelPerfect = (PixelPerfect)EditorGUILayout.EnumPopup(Styles.pixelPerfectContent, pixelPerfect); if (EditorGUI.EndChangeCheck()) { if (pixelPerfect == PixelPerfect.Inherit) { m_PixelPerfectOverride.boolValue = false; } else { m_PixelPerfectOverride.boolValue = true; for (int i = 0; i < targets.Length; i++) { Canvas canvas = targets[i] as Canvas; Undo.RecordObject(canvas, "Set Pixel Perfect"); canvas.pixelPerfect = pixelPerfect == PixelPerfect.On; } } } }
public override void OnInspectorGUI() { base.serializedObject.Update(); if (this.m_AllRoot) { EditorGUILayout.PropertyField(this.m_RenderMode, new GUILayoutOption[0]); this.m_OverlayMode.target = this.m_RenderMode.intValue == 0; this.m_CameraMode.target = this.m_RenderMode.intValue == 1; this.m_WorldMode.target = this.m_RenderMode.intValue == 2; EditorGUI.indentLevel++; if (EditorGUILayout.BeginFadeGroup(this.m_OverlayMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_SortingOrder, Styles.sortingOrder, new GUILayoutOption[0]); GUIContent[] displayNames = DisplayUtility.GetDisplayNames(); EditorGUILayout.IntPopup(this.m_TargetDisplay, displayNames, DisplayUtility.GetDisplayIndices(), Styles.targetDisplay, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_CameraMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_Camera, Styles.renderCamera, new GUILayoutOption[0]); if (this.m_Camera.objectReferenceValue != null) { EditorGUILayout.PropertyField(this.m_PlaneDistance, new GUILayoutOption[0]); } EditorGUILayout.Space(); if (this.m_Camera.objectReferenceValue != null) { EditorGUILayout.SortingLayerField(Styles.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup, EditorStyles.label); } EditorGUILayout.PropertyField(this.m_SortingOrder, Styles.m_SortingOrderStyle, new GUILayoutOption[0]); if (this.m_Camera.objectReferenceValue == null) { EditorGUILayout.HelpBox("Screen Space - A canvas with no specified camera acts like a Overlay Canvas. Please assign a camera to it in the 'Render Camera' field.", MessageType.Warning); } } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_WorldMode.faded)) { EditorGUILayout.PropertyField(this.m_Camera, Styles.eventCamera, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUILayout.SortingLayerField(Styles.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); EditorGUILayout.PropertyField(this.m_SortingOrder, Styles.m_SortingOrderStyle, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); EditorGUI.indentLevel--; } else if (this.m_AllNested) { EditorGUI.BeginChangeCheck(); this.pixelPerfect = (PixelPerfect) EditorGUILayout.EnumPopup("Pixel Perfect", this.pixelPerfect, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { if (this.pixelPerfect == PixelPerfect.Inherit) { this.m_PixelPerfectOverride.boolValue = false; } else if (this.pixelPerfect == PixelPerfect.Off) { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = false; } else { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = true; } } EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(this.m_OverrideSorting, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { ((Canvas) base.serializedObject.targetObject).overrideSorting = this.m_OverrideSorting.boolValue; this.m_SortingOverride.target = this.m_OverrideSorting.boolValue; } if (EditorGUILayout.BeginFadeGroup(this.m_SortingOverride.faded)) { GUIContent label = null; if (this.m_AllOverlay) { label = Styles.sortingOrder; } else if (this.m_NoneOverlay) { label = Styles.m_SortingOrderStyle; EditorGUILayout.SortingLayerField(Styles.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); } if (label != null) { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(this.m_SortingOrder, label, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { ((Canvas) base.serializedObject.targetObject).sortingOrder = this.m_SortingOrder.intValue; } } } EditorGUILayout.EndFadeGroup(); } else { GUILayout.Label(Styles.s_RootAndNestedMessage, EditorStyles.helpBox, new GUILayoutOption[0]); } base.serializedObject.ApplyModifiedProperties(); }
private float snap = 0F; //Distancia de divisiĆ³n del grid void Awake() { instance = this; Zoom(1F); }
public override void OnInspectorGUI() { base.serializedObject.Update(); if (this.m_AllRoot) { EditorGUILayout.PropertyField(this.m_RenderMode, new GUILayoutOption[0]); this.m_OverlayMode.target = this.m_RenderMode.intValue == 0; this.m_CameraMode.target = this.m_RenderMode.intValue == 1; this.m_WorldMode.target = this.m_RenderMode.intValue == 2; EditorGUI.indentLevel++; if (EditorGUILayout.BeginFadeGroup(this.m_OverlayMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_SortingOrder, Styles.sortingOrder, new GUILayoutOption[0]); GUIContent[] displayNames = DisplayUtility.GetDisplayNames(); EditorGUILayout.IntPopup(this.m_TargetDisplay, displayNames, DisplayUtility.GetDisplayIndices(), Styles.targetDisplay, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_CameraMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_Camera, Styles.renderCamera, new GUILayoutOption[0]); if (this.m_Camera.objectReferenceValue != null) { EditorGUILayout.PropertyField(this.m_PlaneDistance, new GUILayoutOption[0]); } EditorGUILayout.Space(); if (this.m_Camera.objectReferenceValue != null) { EditorGUILayout.SortingLayerField(Styles.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup, EditorStyles.label); } EditorGUILayout.PropertyField(this.m_SortingOrder, Styles.m_SortingOrderStyle, new GUILayoutOption[0]); if (this.m_Camera.objectReferenceValue == null) { EditorGUILayout.HelpBox("Screen Space - A canvas with no specified camera acts like a Overlay Canvas. Please assign a camera to it in the 'Render Camera' field.", MessageType.Warning); } } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_WorldMode.faded)) { EditorGUILayout.PropertyField(this.m_Camera, Styles.eventCamera, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUILayout.SortingLayerField(Styles.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); EditorGUILayout.PropertyField(this.m_SortingOrder, Styles.m_SortingOrderStyle, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); EditorGUI.indentLevel--; } else if (this.m_AllNested) { EditorGUI.BeginChangeCheck(); this.pixelPerfect = (PixelPerfect)EditorGUILayout.EnumPopup("Pixel Perfect", this.pixelPerfect, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { if (this.pixelPerfect == PixelPerfect.Inherit) { this.m_PixelPerfectOverride.boolValue = false; } else if (this.pixelPerfect == PixelPerfect.Off) { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = false; } else { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = true; } } EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(this.m_OverrideSorting, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { ((Canvas)base.serializedObject.targetObject).overrideSorting = this.m_OverrideSorting.boolValue; this.m_SortingOverride.target = this.m_OverrideSorting.boolValue; } if (EditorGUILayout.BeginFadeGroup(this.m_SortingOverride.faded)) { GUIContent label = null; if (this.m_AllOverlay) { label = Styles.sortingOrder; } else if (this.m_NoneOverlay) { label = Styles.m_SortingOrderStyle; EditorGUILayout.SortingLayerField(Styles.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); } if (label != null) { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(this.m_SortingOrder, label, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { ((Canvas)base.serializedObject.targetObject).sortingOrder = this.m_SortingOrder.intValue; } } } EditorGUILayout.EndFadeGroup(); } else { GUILayout.Label(Styles.s_RootAndNestedMessage, EditorStyles.helpBox, new GUILayoutOption[0]); } base.serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { base.serializedObject.Update(); if (this.m_AllRoot) { EditorGUILayout.PropertyField(this.m_RenderMode, new GUILayoutOption[0]); this.m_OverlayMode.target = this.m_RenderMode.intValue == 0; this.m_CameraMode.target = this.m_RenderMode.intValue == 1; this.m_WorldMode.target = this.m_RenderMode.intValue == 2; EditorGUI.indentLevel++; if (EditorGUILayout.BeginFadeGroup(this.m_OverlayMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_SortingOrder, this.sortingOrder, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_CameraMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_Camera, this.renderCamera, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_PlaneDistance, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUILayout.SortingLayerField(this.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup, EditorStyles.label); EditorGUILayout.PropertyField(this.m_SortingOrder, this.m_SortingOrderStyle, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_WorldMode.faded)) { EditorGUILayout.PropertyField(this.m_Camera, this.eventCamera, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUILayout.SortingLayerField(this.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); EditorGUILayout.PropertyField(this.m_SortingOrder, this.m_SortingOrderStyle, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); EditorGUI.indentLevel--; } else if (this.m_AllNested) { EditorGUI.BeginChangeCheck(); this.pixelPerfect = (PixelPerfect)EditorGUILayout.EnumPopup("Pixel Perfect", this.pixelPerfect, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { if (this.pixelPerfect == PixelPerfect.Inherit) { this.m_PixelPerfectOverride.boolValue = false; } else if (this.pixelPerfect == PixelPerfect.Off) { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = false; } else { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = true; } } EditorGUILayout.PropertyField(this.m_OverrideSorting, new GUILayoutOption[0]); this.m_SortingOverride.target = this.m_OverrideSorting.boolValue; if (EditorGUILayout.BeginFadeGroup(this.m_SortingOverride.faded)) { if (this.m_AllOverlay) { EditorGUILayout.PropertyField(this.m_SortingOrder, this.sortingOrder, new GUILayoutOption[0]); } else if (this.m_NoneOverlay) { EditorGUILayout.SortingLayerField(this.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); EditorGUILayout.PropertyField(this.m_SortingOrder, this.m_SortingOrderStyle, new GUILayoutOption[0]); } } EditorGUILayout.EndFadeGroup(); } else { GUILayout.Label(s_RootAndNestedMessage, EditorStyles.helpBox, new GUILayoutOption[0]); } base.serializedObject.ApplyModifiedProperties(); }
void OnEnable() { sortingLayerField = typeof(EditorGUILayout).GetMethod("SortingLayerField", BindingFlags.Static | BindingFlags.NonPublic, null, CallingConventions.Standard, new System.Type[] { typeof(GUIContent), typeof(SerializedProperty), typeof(GUIStyle) }, null); System.Type canvasEditorType = typeof(TransformUtils).Assembly.GetType("UnityEditor.DisplayUtility"); if (canvasEditorType != null) { getDisplayNames = canvasEditorType.GetMethod("GetDisplayNames", BindingFlags.Static | BindingFlags.Public); getDisplayIndices = canvasEditorType.GetMethod("GetDisplayIndices", BindingFlags.Static | BindingFlags.Public); } m_RenderMode = serializedObject.FindProperty("m_RenderMode"); m_Camera = serializedObject.FindProperty("m_Camera"); m_PixelPerfect = serializedObject.FindProperty("m_PixelPerfect"); m_PlaneDistance = serializedObject.FindProperty("m_PlaneDistance"); m_SortingLayerID = serializedObject.FindProperty("m_SortingLayerID"); m_SortingOrder = serializedObject.FindProperty("m_SortingOrder"); m_TargetDisplay = serializedObject.FindProperty("m_TargetDisplay"); m_OverrideSorting = serializedObject.FindProperty("m_OverrideSorting"); m_PixelPerfectOverride = serializedObject.FindProperty("m_OverridePixelPerfect"); m_ShaderChannels = serializedObject.FindProperty("m_AdditionalShaderChannelsFlag"); m_OverlayMode = new AnimBool(m_RenderMode.intValue == 0); m_OverlayMode.valueChanged.AddListener(Repaint); m_CameraMode = new AnimBool(m_RenderMode.intValue == 1); m_CameraMode.valueChanged.AddListener(Repaint); m_WorldMode = new AnimBool(m_RenderMode.intValue == 2); m_WorldMode.valueChanged.AddListener(Repaint); m_SortingOverride = new AnimBool(m_OverrideSorting.boolValue); m_SortingOverride.valueChanged.AddListener(Repaint); if (m_PixelPerfectOverride.boolValue) { pixelPerfect = m_PixelPerfect.boolValue ? PixelPerfect.On : PixelPerfect.Off; } else { pixelPerfect = PixelPerfect.Inherit; } m_AllNested = true; m_AllRoot = true; m_AllOverlay = true; m_NoneOverlay = true; for (int i = 0; i < targets.Length; i++) { Canvas canvas = targets[i] as Canvas; if (canvas.transform.parent == null || canvas.transform.parent.GetComponentInParent <Canvas>() == null) { m_AllNested = false; } else { m_AllRoot = false; } if (canvas.renderMode == RenderMode.ScreenSpaceOverlay) { m_NoneOverlay = false; } else { m_AllOverlay = false; } } }
public override void OnInspectorGUI() { base.serializedObject.Update(); if (this.m_AllRoot) { EditorGUILayout.PropertyField(this.m_RenderMode, new GUILayoutOption[0]); this.m_OverlayMode.target = this.m_RenderMode.intValue == 0; this.m_CameraMode.target = this.m_RenderMode.intValue == 1; this.m_WorldMode.target = this.m_RenderMode.intValue == 2; EditorGUI.indentLevel++; if (EditorGUILayout.BeginFadeGroup(this.m_OverlayMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_SortingOrder, this.sortingOrder, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_CameraMode.faded)) { EditorGUILayout.PropertyField(this.m_PixelPerfect, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_Camera, this.renderCamera, new GUILayoutOption[0]); EditorGUILayout.PropertyField(this.m_PlaneDistance, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUILayout.SortingLayerField(this.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup, EditorStyles.label); EditorGUILayout.PropertyField(this.m_SortingOrder, this.m_SortingOrderStyle, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); if (EditorGUILayout.BeginFadeGroup(this.m_WorldMode.faded)) { EditorGUILayout.PropertyField(this.m_Camera, this.eventCamera, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUILayout.SortingLayerField(this.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); EditorGUILayout.PropertyField(this.m_SortingOrder, this.m_SortingOrderStyle, new GUILayoutOption[0]); } EditorGUILayout.EndFadeGroup(); EditorGUI.indentLevel--; } else if (this.m_AllNested) { EditorGUI.BeginChangeCheck(); this.pixelPerfect = (PixelPerfect) EditorGUILayout.EnumPopup("Pixel Perfect", this.pixelPerfect, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { if (this.pixelPerfect == PixelPerfect.Inherit) { this.m_PixelPerfectOverride.boolValue = false; } else if (this.pixelPerfect == PixelPerfect.Off) { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = false; } else { this.m_PixelPerfectOverride.boolValue = true; this.m_PixelPerfect.boolValue = true; } } EditorGUILayout.PropertyField(this.m_OverrideSorting, new GUILayoutOption[0]); this.m_SortingOverride.target = this.m_OverrideSorting.boolValue; if (EditorGUILayout.BeginFadeGroup(this.m_SortingOverride.faded)) { if (this.m_AllOverlay) { EditorGUILayout.PropertyField(this.m_SortingOrder, this.sortingOrder, new GUILayoutOption[0]); } else if (this.m_NoneOverlay) { EditorGUILayout.SortingLayerField(this.m_SortingLayerStyle, this.m_SortingLayerID, EditorStyles.popup); EditorGUILayout.PropertyField(this.m_SortingOrder, this.m_SortingOrderStyle, new GUILayoutOption[0]); } } EditorGUILayout.EndFadeGroup(); } else { GUILayout.Label(s_RootAndNestedMessage, EditorStyles.helpBox, new GUILayoutOption[0]); } base.serializedObject.ApplyModifiedProperties(); }
void OnEnable() { m_RenderMode = serializedObject.FindProperty("m_RenderMode"); m_Camera = serializedObject.FindProperty("m_Camera"); m_PixelPerfect = serializedObject.FindProperty("m_PixelPerfect"); m_PlaneDistance = serializedObject.FindProperty("m_PlaneDistance"); m_SortingLayerID = serializedObject.FindProperty("m_SortingLayerID"); m_SortingOrder = serializedObject.FindProperty("m_SortingOrder"); m_TargetDisplay = serializedObject.FindProperty("m_TargetDisplay"); m_OverrideSorting = serializedObject.FindProperty("m_OverrideSorting"); m_PixelPerfectOverride = serializedObject.FindProperty("m_OverridePixelPerfect"); m_ShaderChannels = serializedObject.FindProperty("m_AdditionalShaderChannelsFlag"); m_UpdateRectTransformForStandalone = serializedObject.FindProperty("m_UpdateRectTransformForStandalone"); m_OverlayMode = new AnimBool(m_RenderMode.intValue == 0); m_OverlayMode.valueChanged.AddListener(Repaint); m_CameraMode = new AnimBool(m_RenderMode.intValue == 1); m_CameraMode.valueChanged.AddListener(Repaint); m_WorldMode = new AnimBool(m_RenderMode.intValue == 2); m_WorldMode.valueChanged.AddListener(Repaint); m_SortingOverride = new AnimBool(m_OverrideSorting.boolValue); m_SortingOverride.valueChanged.AddListener(Repaint); if (m_PixelPerfectOverride.boolValue) { pixelPerfect = m_PixelPerfect.boolValue ? PixelPerfect.On : PixelPerfect.Off; } else { pixelPerfect = PixelPerfect.Inherit; } m_AllNested = true; m_AllRoot = true; m_AllOverlay = true; m_NoneOverlay = true; for (int i = 0; i < targets.Length; i++) { Canvas canvas = targets[i] as Canvas; Canvas[] parentCanvas = canvas.transform.parent != null?canvas.transform.parent.GetComponentsInParent <Canvas>(true) : null; if (canvas.transform.parent == null || (parentCanvas != null && parentCanvas.Length == 0)) { m_AllNested = false; } else { m_AllRoot = false; } RenderMode renderMode = canvas.renderMode; if (parentCanvas != null && parentCanvas.Length > 0) { renderMode = parentCanvas[parentCanvas.Length - 1].renderMode; } if (renderMode == RenderMode.ScreenSpaceOverlay) { m_NoneOverlay = false; } else { m_AllOverlay = false; } } }