OK,上面已经创建了一个Mesh,我们就用Main.cs来代码创建GameObject。
一般是shader附着在Material Material附着在Mesh上。
但是Mesh我们已经生成了,很难用代码得到生成的结果,只好拖入面板中,再将拖入面板的GameObject托给Main.cs
OK,看Main.cs的主代码
using UnityEngine;
using System.Collections;
using UnityEditor;
public class Main : MonoBehaviour
{
// 创建SimpleMesh之后实例化的值 拖入
public GameObject meshObject;
// Use this for initialization
void Awake ()
{
createMesh();
}
// 创建MeshObject
void createMesh()
{
GameObject simpleMesh = new GameObject();
// 定义对象名为 Water
simpleMesh.name = "Water";
// 添加MeshFilter
simpleMesh.AddComponent<MeshFilter>();
// 添加MeshRenderer
simpleMesh.AddComponent<MeshRenderer>();
// 将新建的SimpleMesh赋值给新GameObject
simpleMesh.GetComponent<MeshFilter>().mesh = meshObject.GetComponent<MeshFilter>().mesh;
// 创建shader为VertexColor的Material
Material simpleMaterial = new Material(Shader.Find("Custom/VertexColor"));
// 加入SimpleMaterial
simpleMesh.GetComponent<MeshRenderer>().material = simpleMaterial;
// 加入脚本
simpleMesh.AddComponent<WaterScript>();
}
}
得到的结果为
此图仅说明此GameObject材质、脚本都全了~~