/// <summary> /// This function is called when the object becomes enabled and active. /// </summary> protected override void OnEnable() { _initialized = false; SetVerticesDirty(); #if TMP_PRESENT if (textMeshPro) { TMPro_EventManager.TEXT_CHANGED_EVENT.Add(OnTextChanged); } #endif #if UNITY_EDITOR && TMP_PRESENT if (graphic && textMeshPro) { GraphicRebuildTracker.TrackGraphic(graphic); } #endif #if UNITY_5_6_OR_NEWER if (graphic) { AdditionalCanvasShaderChannels channels = requiredChannels; var canvas = graphic.canvas; if (canvas && (canvas.additionalShaderChannels & channels) != channels) { Debug.LogWarningFormat(this, "Enable {1} of Canvas.additionalShaderChannels to use {0}.", GetType().Name, channels); } } #endif }
internal static bool HasAdditionalShaderChannels(Canvas c) { AdditionalCanvasShaderChannels asc = c.additionalShaderChannels; return((asc & AdditionalCanvasShaderChannels.TexCoord1) != 0 && (asc & AdditionalCanvasShaderChannels.TexCoord2) != 0); }
public CanvasSpec( ICanvasRenderMode renderMode = null, AdditionalCanvasShaderChannels additionalShaderChannels = AdditionalCanvasShaderChannels.None) { RenderMode = renderMode ?? new ScreenSpaceOverlayRenderMode(); AdditionalShaderChannels = additionalShaderChannels; }
internal static void AddAdditionalShaderChannelsToCanvas(Canvas c) { AdditionalCanvasShaderChannels additionalShaderChannels = c.additionalShaderChannels; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord1; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord2; c.additionalShaderChannels = additionalShaderChannels; }
public override void Deserialize(BinaryReader binaryReader) { base.Deserialize(binaryReader); renderMode = (RenderMode)binaryReader.ReadInt32(); pixelPerfect = binaryReader.ReadBoolean(); sortingOrder = binaryReader.ReadInt32(); targetDisplay = binaryReader.ReadInt32(); additionalShaderChannels = (AdditionalCanvasShaderChannels)binaryReader.ReadInt32(); worldCamera = SerializerKun.DesirializeObject <CameraKun>(binaryReader); sortingLayerID = binaryReader.ReadInt32(); sortingLayerName = binaryReader.ReadString(); }
/// <summary> Add additional shader channel to the Canvas that renders this UIImage </summary> public void UpdateRenderCanvasShaderChannels() { if (canvas == null) { return; } Canvas renderCanvas = canvas; AdditionalCanvasShaderChannels additionalShaderChannels = renderCanvas.additionalShaderChannels; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord1; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord2; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord3; renderCanvas.additionalShaderChannels = additionalShaderChannels; }
public CanvasSerializable(Canvas canvas) : base(canvas) { sortingLayerName = canvas.sortingLayerName; additionalShaderChannels = canvas.additionalShaderChannels; sortingLayerID = canvas.sortingLayerID; targetDisplay = canvas.targetDisplay; sortingOrder = canvas.sortingOrder; overrideSorting = canvas.overrideSorting; planeDistance = canvas.planeDistance; overridePixelPerfect = canvas.overridePixelPerfect; referencePixelsPerUnit = canvas.referencePixelsPerUnit; scaleFactor = canvas.scaleFactor; worldCamera = canvas.worldCamera != null ? new CameraReference(canvas.worldCamera) : null; renderMode = canvas.renderMode; pixelPerfect = canvas.pixelPerfect; }
private Transform AddCanvas(Transform layer, AdditionalCanvasShaderChannels shaderChannels = 0) { GameObject go = layer.gameObject; Canvas canvas = go.AddComponent <Canvas>(); GraphicRaycaster raycaster = go.AddComponent <GraphicRaycaster>(); canvas.overrideSorting = true; this.mLayerSortingOrder += 10; canvas.sortingOrder = this.mLayerSortingOrder; this.mLayerSortingOrderList[layer] = this.mLayerSortingOrder; if (shaderChannels != 0) { canvas.additionalShaderChannels = shaderChannels; } return(MovePosZ(layer)); }
public CanvasKun(Component component) : base(component) { componentKunType = ComponentKunType.Canvas; Canvas canvas = component as Canvas; if (canvas != null) { renderMode = canvas.renderMode; pixelPerfect = canvas.pixelPerfect; sortingOrder = canvas.sortingOrder; targetDisplay = canvas.targetDisplay; additionalShaderChannels = canvas.additionalShaderChannels; worldCamera = new CameraKun(canvas.worldCamera); sortingLayerID = canvas.sortingLayerID; sortingLayerName = canvas.sortingLayerName; } }
internal static void FixAdditionalShaderChannelsInCanvas(Canvas canvas) { Canvas c = canvas; if (canvas == null) { return; } AdditionalCanvasShaderChannels additionalShaderChannels = c.additionalShaderChannels; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord1; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord2; additionalShaderChannels |= AdditionalCanvasShaderChannels.TexCoord3; additionalShaderChannels |= AdditionalCanvasShaderChannels.Normal; additionalShaderChannels |= AdditionalCanvasShaderChannels.Tangent; c.additionalShaderChannels = additionalShaderChannels; }
protected override void ReadFromImpl(object obj) { base.ReadFromImpl(obj); Canvas uo = (Canvas)obj; renderMode = uo.renderMode; scaleFactor = uo.scaleFactor; referencePixelsPerUnit = uo.referencePixelsPerUnit; overridePixelPerfect = uo.overridePixelPerfect; pixelPerfect = uo.pixelPerfect; planeDistance = uo.planeDistance; overrideSorting = uo.overrideSorting; sortingOrder = uo.sortingOrder; targetDisplay = uo.targetDisplay; sortingLayerID = uo.sortingLayerID; additionalShaderChannels = uo.additionalShaderChannels; sortingLayerName = uo.sortingLayerName; worldCamera = ToID(uo.worldCamera); normalizedSortingGridSize = uo.normalizedSortingGridSize; }
protected void ShowCanvasChannelsWarning() { BaseMeshEffect effect = target as BaseMeshEffect; if (!effect || !effect.graphic) { return; } AdditionalCanvasShaderChannels channels = effect.requiredChannels; var canvas = effect.graphic.canvas; if (canvas && (canvas.additionalShaderChannels & channels) != channels) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox(string.Format("Enable {1} of Canvas.additionalShaderChannels to use {0}.", effect.GetType().Name, channels), MessageType.Warning); if (GUILayout.Button("Fix")) { canvas.additionalShaderChannels |= channels; } EditorGUILayout.EndHorizontal(); } }