Files
crtr/Assets/Cryville/Crtr/Components/MeshBase.cs

40 lines
872 B
C#

using System;
using UnityEngine;
namespace Cryville.Crtr.Components {
public abstract class MeshBase : SkinComponent {
public MeshBase() {
SubmitProperty("zindex", new PropOp.Integer(v => ZIndex = (short)v));
}
protected MeshWrapper mesh = new MeshWrapper();
protected Material[] materials;
short _zindex;
public short ZIndex {
get {
return _zindex;
}
set {
if (value < 0 || value > 5000)
throw new ArgumentOutOfRangeException("value", "Z-index must be in [0..5000]");
_zindex = value;
UpdateZIndex();
}
}
protected void UpdateZIndex() {
if (!mesh.Initialized) return;
foreach (var mat in materials) {
mat.renderQueue = _zindex;
}
}
protected override void OnDestroy() {
if (materials != null)
foreach (var mat in materials) {
Material.Destroy(mat);
}
mesh.Destroy();
}
}
}