From ba3238614b1b9d0c0e753f0870525ae20d156e75 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Sun, 19 Feb 2023 22:06:20 +0800 Subject: [PATCH] Pull up `mesh.color`. Remove `*.opacity` properties. --- Assets/Cryville/Crtr/Components/MeshBase.cs | 17 +++++++++++++++++ Assets/Cryville/Crtr/Components/SpriteBase.cs | 1 + .../Cryville/Crtr/Components/SpritePlane.cs | 17 ----------------- Assets/Cryville/Crtr/Components/SpriteRect.cs | 18 +----------------- .../Cryville/Crtr/Components/SpriteScale3.cs | 1 - Assets/Cryville/Crtr/Components/SpriteText.cs | 19 +------------------ 6 files changed, 20 insertions(+), 53 deletions(-) diff --git a/Assets/Cryville/Crtr/Components/MeshBase.cs b/Assets/Cryville/Crtr/Components/MeshBase.cs index cd9e953..e09df21 100644 --- a/Assets/Cryville/Crtr/Components/MeshBase.cs +++ b/Assets/Cryville/Crtr/Components/MeshBase.cs @@ -4,6 +4,7 @@ using UnityEngine; namespace Cryville.Crtr.Components { public abstract class MeshBase : SkinComponent { public MeshBase() { + SubmitProperty("color", new PropOp.Color(v => Color = v)); SubmitProperty("zindex", new PropOp.Integer(v => ZIndex = (short)v)); } @@ -28,6 +29,22 @@ namespace Cryville.Crtr.Components { mat.renderQueue = _zindex; } } + + Color _color = Color.white; + public Color Color { + get { return _color; } + set { + _color = value; + UpdateColor(); + } + } + protected void UpdateColor() { + if (!mesh.Initialized) return; + foreach (var mat in materials) { + mat.color = _color; + } + } + protected override void OnDestroy() { if (materials != null) foreach (var mat in materials) { diff --git a/Assets/Cryville/Crtr/Components/SpriteBase.cs b/Assets/Cryville/Crtr/Components/SpriteBase.cs index f9dc0fa..a61cb32 100644 --- a/Assets/Cryville/Crtr/Components/SpriteBase.cs +++ b/Assets/Cryville/Crtr/Components/SpriteBase.cs @@ -90,6 +90,7 @@ namespace Cryville.Crtr.Components { mesh.Init(transform); mesh.Renderer.materials = materials = new Material[] { MeshWrapper.NewMaterial() }; mesh.Mesh = GenericResources.Meshes[meshName]; + UpdateColor(); UpdateScale(); UpdateZIndex(); } diff --git a/Assets/Cryville/Crtr/Components/SpritePlane.cs b/Assets/Cryville/Crtr/Components/SpritePlane.cs index 039efef..b3b5fd1 100644 --- a/Assets/Cryville/Crtr/Components/SpritePlane.cs +++ b/Assets/Cryville/Crtr/Components/SpritePlane.cs @@ -60,7 +60,6 @@ namespace Cryville.Crtr.Components { SubmitProperty("frames", new PropOp.StringArray(v => Frames = v)); SubmitProperty("index", new PropOp.Integer(v => Index = v)); SubmitProperty("fit", new PropOp.Enum(v => Fit = v, v => (FitMode)v)); - SubmitProperty("opacity", new PropOp.Float(v => Opacity = v)); SubmitProperty("shader", new PropOp.String(v => Shader = v)); } @@ -152,21 +151,6 @@ namespace Cryville.Crtr.Components { mesh.Mesh.uv = _uvs; } - float _opacity = 1; - public float Opacity { - get { return _opacity; } - set { - _opacity = value; - UpdateOpacity(); - } - } - protected void UpdateOpacity() { - if (!mesh.Initialized) return; - var c = mesh.Renderer.material.color; - c.a = _opacity; - mesh.Renderer.material.color = c; - } - private FitMode m_fit = FitMode.height; public FitMode Fit { get { return m_fit; } @@ -199,7 +183,6 @@ namespace Cryville.Crtr.Components { public override void Init() { InternalInit(); OnFrameUpdate(); - UpdateOpacity(); } } } diff --git a/Assets/Cryville/Crtr/Components/SpriteRect.cs b/Assets/Cryville/Crtr/Components/SpriteRect.cs index 76bbbb6..8bf3051 100644 --- a/Assets/Cryville/Crtr/Components/SpriteRect.cs +++ b/Assets/Cryville/Crtr/Components/SpriteRect.cs @@ -2,22 +2,7 @@ namespace Cryville.Crtr.Components { public class SpriteRect : SpriteBase { - public SpriteRect() { - SubmitProperty("color", new PropOp.Color(v => Color = v)); - } - - Color _color; - public Color Color { - get { return _color; } - set { - _color = value; - OnColorUpdate(); - } - } - void OnColorUpdate() { - if (!mesh.Initialized) return; - mesh.Renderer.material.SetColor("_Color", _color); - } + public SpriteRect() { } protected override Vector3 BaseScale { get { return Vector3.one; } @@ -25,7 +10,6 @@ namespace Cryville.Crtr.Components { public override void Init() { InternalInit(); - OnColorUpdate(); } } } diff --git a/Assets/Cryville/Crtr/Components/SpriteScale3.cs b/Assets/Cryville/Crtr/Components/SpriteScale3.cs index 3697b9b..21dae88 100644 --- a/Assets/Cryville/Crtr/Components/SpriteScale3.cs +++ b/Assets/Cryville/Crtr/Components/SpriteScale3.cs @@ -84,7 +84,6 @@ namespace Cryville.Crtr.Components { public override void Init() { InternalInit("quad_scale3h"); OnFrameUpdate(); - UpdateOpacity(); } } } diff --git a/Assets/Cryville/Crtr/Components/SpriteText.cs b/Assets/Cryville/Crtr/Components/SpriteText.cs index 3fc475b..84b2a9b 100644 --- a/Assets/Cryville/Crtr/Components/SpriteText.cs +++ b/Assets/Cryville/Crtr/Components/SpriteText.cs @@ -11,7 +11,6 @@ namespace Cryville.Crtr.Components { SubmitProperty("value", new PropOp.TargetString(() => Value)); SubmitProperty("size", new PropOp.Float(v => Size = v)); SubmitProperty("spacing", new PropOp.Float(v => Spacing = v)); - SubmitProperty("opacity", new PropOp.Float(v => Opacity = v)); } #pragma warning disable IDE1006 @@ -94,6 +93,7 @@ namespace Cryville.Crtr.Components { tris.Add(tex, new List()); } } + UpdateColor(); } float sum_x; @@ -158,23 +158,6 @@ namespace Cryville.Crtr.Components { get { return new Vector2(-0.5f, -0.5f); } } - float _opacity = 1; - public float Opacity { - get { return _opacity; } - set { - _opacity = value; - UpdateOpacity(); - } - } - void UpdateOpacity() { - if (!mesh.Initialized) return; - foreach (var m in meshes) { - var c = m.Value.Renderer.material.color; - c.a = _opacity; - m.Value.Renderer.material.color = c; - } - } - public override void Init() { InternalInit(); UpdateFrames();