54 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|