Pull up mesh.color. Remove *.opacity properties.

This commit is contained in:
2023-02-19 22:06:20 +08:00
parent a115999aab
commit ba3238614b
6 changed files with 20 additions and 53 deletions

View File

@@ -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) {

View File

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

View File

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

View File

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

View File

@@ -84,7 +84,6 @@ namespace Cryville.Crtr.Components {
public override void Init() {
InternalInit("quad_scale3h");
OnFrameUpdate();
UpdateOpacity();
}
}
}

View File

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