Files
crtr/Assets/Cryville/Crtr/MeshWrapper.cs

54 lines
1.3 KiB
C#

using UnityEngine;
namespace Cryville.Crtr {
public class MeshWrapper {
public GameObject MeshObject {
get;
private set;
}
public MeshFilter MeshFilter {
get;
private set;
}
public Mesh Mesh {
get { return MeshFilter.mesh; }
set { MeshFilter.mesh = value; }
}
public Transform MeshTransform {
get;
private set;
}
public Renderer Renderer {
get;
private set;
}
public bool Initialized {
get;
private set;
}
public Material NewMaterial {
get {
return Material.Instantiate(GenericResources.Materials["-SpriteMat"]);
}
}
public void Init(Transform parent) {
MeshObject = new GameObject("__mesh__");
MeshTransform = MeshObject.transform;
MeshTransform.SetParent(parent, false);
if (MeshObject.GetComponent<MeshFilter>() == null)
MeshObject.AddComponent<MeshFilter>();
if (MeshObject.GetComponent<MeshRenderer>() == null)
MeshObject.AddComponent<MeshRenderer>();
MeshFilter = MeshObject.GetComponent<MeshFilter>();
Renderer = MeshObject.GetComponent<Renderer>();
Renderer.material = NewMaterial;
Initialized = true;
}
public void Destroy() {
Mesh.Destroy(Mesh);
if (Renderer.material != null) Material.Destroy(Renderer.material);
GameObject.Destroy(MeshObject);
}
}
}