Add image.shader property.

This commit is contained in:
2023-02-19 21:56:30 +08:00
parent e9b2a7f894
commit 393947db9f
2 changed files with 16 additions and 0 deletions

View File

@@ -61,6 +61,7 @@ namespace Cryville.Crtr.Components {
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));
}
static Vector2[] _origuv;
@@ -123,10 +124,23 @@ namespace Cryville.Crtr.Components {
}
mesh.Renderer.enabled = true;
mesh.Renderer.material.mainTexture = frame.Frame.Texture;
UpdateShader();
UpdateUV();
UpdateScale();
UpdateZIndex();
}
Shader m_shader;
public string Shader {
set {
m_shader = GenericResources.Shaders[value];
UpdateShader();
}
}
void UpdateShader() {
if (!mesh.Initialized) return;
if (m_shader == null) m_shader = GenericResources.Shaders["default"];
mesh.Renderer.sharedMaterial.shader = m_shader;
}
readonly Vector2[] _uvs = new Vector2[4];
protected virtual void UpdateUV() {
var frame = CurrentFrame;

View File

@@ -32,6 +32,8 @@ namespace Cryville.Crtr {
Materials.Add("-SpriteMat", Resources.Load<Material>("Materials/SpriteMat"));
Shaders.Add("default", Shader.Find("Sprites/Default"));
loaded = true;
}
}