Change materials to shared mode in components.
This commit is contained in:
@@ -46,11 +46,15 @@ namespace Cryville.Crtr.Components {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy() {
|
protected override void OnDestroy() {
|
||||||
if (materials != null)
|
DestroyMaterials();
|
||||||
foreach (var mat in materials) {
|
|
||||||
Material.Destroy(mat);
|
|
||||||
}
|
|
||||||
mesh.Destroy();
|
mesh.Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void DestroyMaterials() {
|
||||||
|
if (materials == null) return;
|
||||||
|
foreach (var mat in materials) {
|
||||||
|
Material.Destroy(mat);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ namespace Cryville.Crtr.Components {
|
|||||||
base.Init();
|
base.Init();
|
||||||
mesh.Init(transform);
|
mesh.Init(transform);
|
||||||
|
|
||||||
mesh.Renderer.materials = materials = new Material[] {
|
mesh.Renderer.sharedMaterials = materials = new Material[] {
|
||||||
MeshWrapper.NewMaterial(),
|
MeshWrapper.NewMaterial(),
|
||||||
MeshWrapper.NewMaterial(),
|
MeshWrapper.NewMaterial(),
|
||||||
MeshWrapper.NewMaterial(),
|
MeshWrapper.NewMaterial(),
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ namespace Cryville.Crtr.Components {
|
|||||||
|
|
||||||
protected void InternalInit(string meshName = "quad") {
|
protected void InternalInit(string meshName = "quad") {
|
||||||
mesh.Init(transform);
|
mesh.Init(transform);
|
||||||
mesh.Renderer.materials = materials = new Material[] { MeshWrapper.NewMaterial() };
|
mesh.Renderer.sharedMaterials = materials = new Material[] { MeshWrapper.NewMaterial() };
|
||||||
mesh.Mesh = GenericResources.Meshes[meshName];
|
mesh.Mesh = GenericResources.Meshes[meshName];
|
||||||
UpdateColor();
|
UpdateColor();
|
||||||
UpdateScale();
|
UpdateScale();
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ namespace Cryville.Crtr.Components {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mesh.Renderer.enabled = true;
|
mesh.Renderer.enabled = true;
|
||||||
mesh.Renderer.material.mainTexture = frame.Frame.Texture;
|
mesh.Renderer.sharedMaterial.mainTexture = frame.Frame.Texture;
|
||||||
UpdateShader();
|
UpdateShader();
|
||||||
UpdateUV();
|
UpdateUV();
|
||||||
UpdateScale();
|
UpdateScale();
|
||||||
|
|||||||
@@ -77,6 +77,9 @@ namespace Cryville.Crtr.Components {
|
|||||||
meshes.Clear();
|
meshes.Clear();
|
||||||
verts.Clear();
|
verts.Clear();
|
||||||
uvs.Clear();
|
uvs.Clear();
|
||||||
|
DestroyMaterials();
|
||||||
|
materials = new Material[m_frames.Count];
|
||||||
|
int i = 0;
|
||||||
foreach (var f in m_frames) {
|
foreach (var f in m_frames) {
|
||||||
if (frameHeight == 0) frameHeight = f.Value.Rect.height;
|
if (frameHeight == 0) frameHeight = f.Value.Rect.height;
|
||||||
else if (frameHeight != f.Value.Rect.height) throw new Exception("Inconsistent frame height for text component");
|
else if (frameHeight != f.Value.Rect.height) throw new Exception("Inconsistent frame height for text component");
|
||||||
@@ -85,8 +88,9 @@ namespace Cryville.Crtr.Components {
|
|||||||
var m = new MeshWrapper();
|
var m = new MeshWrapper();
|
||||||
m.Init(mesh.MeshTransform);
|
m.Init(mesh.MeshTransform);
|
||||||
m.Mesh = new Mesh();
|
m.Mesh = new Mesh();
|
||||||
m.Renderer.material = MeshWrapper.NewMaterial(); // TODO Destroy or add to `materials`
|
var mat = MeshWrapper.NewMaterial();
|
||||||
m.Renderer.material.mainTexture = tex;
|
mat.mainTexture = tex;
|
||||||
|
m.Renderer.sharedMaterial = materials[i++] = mat;
|
||||||
meshes.Add(tex, m);
|
meshes.Add(tex, m);
|
||||||
verts.Add(tex, new List<Vector3>());
|
verts.Add(tex, new List<Vector3>());
|
||||||
uvs.Add(tex, new List<Vector2>());
|
uvs.Add(tex, new List<Vector2>());
|
||||||
|
|||||||
Reference in New Issue
Block a user